SpringCloud入门到高级

news/2024/11/7 14:34:08/文章来源:https://www.cnblogs.com/gongbw/p/18532181

服务注册与发现

服务调用和负载均衡(LoadBalancer/OpenFeign)

LoadBalancer

案例:80通过轮询负载访问8001/8002/8003

LoadBalancer 在工作时分成两步:

第一步,先选择ConsulServer从服务端查询并拉取服务列表,知道了它有多个服务(上图3个服务),这3个实现是完全一样的,

默认轮询调用谁都可以正常执行。类似生活中求医挂号,某个科室今日出诊的全部医生,客户端你自己选一个。

第二步,按照指定的负载均衡策略从server取到的服务注册列表中由客户端自己选择一个地址,所以LoadBalancer是一个客户端的负载均衡器。
1、消费者添加loadbalancer启动器

<!--loadbalancer-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

2、添加RestTemplateConfig配置

@Configuration
public class RestTemplateConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate {return new RestTemplate();}
}

3、修改消费者Controller

@RestController
public class OrderController
{//public static final String PaymentSrv_URL = "http://localhost:8001";//先写死,硬编码public static final String PaymentSrv_URL = "http://cloud-payment-service";//服务注册中心上的微服务名称@Autowiredprivate RestTemplate restTemplate;/*** 一般情况下,通过浏览器的地址栏输入url,发送的只能是get请求* 我们模拟消费者发送get请求,but底层调用post方法,客户端消费者参数PayDTO可以不添加@RequestBody* @param payDTO* @return*/@GetMapping("/consumer/pay/add")public ResultData addOrder(PayDTO payDTO){return restTemplate.postForObject(PaymentSrv_URL + "/pay/add",payDTO,ResultData.class);}// 删除+修改操作作为家庭作业,O(∩_∩)O。。。。。。。@GetMapping("/consumer/pay/get/{id}")public ResultData getPayInfo(@PathVariable Integer id){return restTemplate.getForObject(PaymentSrv_URL + "/pay/get/"+id, ResultData.class, id);}@GetMapping(value = "/consumer/pay/get/info")private String getInfoByConsul(){return restTemplate.getForObject(PaymentSrv_URL + "/pay/get/info", String.class);}
}

OpenFeign

服务网关

分布式事务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/828296.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索高效项目管理新境界:项目管理应用深度解析

在当今这个快节奏、高效率的时代,项目管理已成为企业成功的关键要素之一。无论是初创公司还是大型企业,都需要借助高效的项目管理工具来确保项目按时、按质、按量完成。今天,我们将一起探索几款备受推崇的项目管理应用,它们各自拥有独特的优势和功能,旨在帮助团队提升协作…

Wgpu图文详解(02)渲染管线与着色器

在本系列的第一篇文章中(《Wgpu图文详解(01)窗口与基本渲染》),我们介绍了如何基于0.30+版本的winit搭建Wgpu的桌面环境,同时也讲解了关于Wgpu一些基本的概念、模块以及架构思路,并基于wgpu库实现了一个能展示有颜色背景的窗体。而在本篇文章中,我们将开始介绍Wgpu中的…

ES IK分词器配置本地词典 远程词典

修改IK分词器配置文件路径一般在:xxx/plugins/xxx/config/IKAnalyzer.cfg.xml 配置本地词典本地词典,放到同级目录下,重启ES服务即可;配置远程词典新建springboot工程,将文件放到statis目录下;远程词典,放到其他共享地址也可以哈~,没必要非得springboot工程中修改配置配…

(触摸屏cMT2079x + 路由器DAYUA-BE30) 实现PC,手机,平板端的设备监控

1, 华为路由器设置 2, 威纶通触摸屏cMT2079x设置 (1)网络连接, 可以连接LAN1, 也可以连接LAN2, 同网段即可;

移远EC200U-EU欧洲版 CAT1模组使用

1. 外观如下,CAT1模组,主要是用来做一个欧洲的电压检测设备

UE5 GameFeature示例项目《古代山谷(Valley of the Ancient)》中Action_SpawnActor无法动态拔插的问题

前因 最近在研究GameFeature这个功能,UE官方推荐的是《古代山谷》这个项目,因为在其中用到了很多的新功能,GameFeature也在其中。观察到原来的GameFeature默认提供的action中其实功能比较有限,于是就从《古代山谷》拷贝了一些Action来用,结果Action_SpawnActor并无法在我自…

Java并发编程 --- 线程安全

为什么会有线程安全问题? 为什么会存在线程安全问题呢?那我们先来探究一下JMM(Java内存模型)线程与JMM 每个线程都有自己的工作内存,它会存储主内存中变量的Copy值,再对变量进行操作的时候,也是操作工作内存中变量的Copy值。 当线程Dead(生命周期结束)时,才会将自己工作内…

WEB_方案查询F7的类型设置为F7某个字段的查询

如下图,在方案查询条件中,【票据号码】与【软通票据】在单据上其实都是F7字段,但是票据号码在这里是字符串查询,而软通票据是F7的样式,这是怎么样将F7的字段查询弄成文本框查询的呢,实际上是通过修改单据列表的query里的属性来实现的,具体修改如下:如果选择的使用F7,则…

Apache DolphinScheduler + OceanBase,搭建分布式大数据调度平台的实践

本文整理自白鲸开源联合创始人,Apache DolphinScheduler PMC Chair,Apache Foundation Member 代立冬的演讲。主要介绍了DolphinScheduler及其架构、DolphinScheduler与OceanBase 的联合大数据方案。 DolphinScheduler是什么? Apache DolphinScheduler,作为一款云原生且配备…

.NET 全功能流媒体管理控制接口平台

前言 视频会议、在线教育、直播娱乐还是远程监控,流媒体平台的性能和稳定性直接影响着用户体验。 给大家推荐一个基于 C# 开发的全功能流媒体管理控制接口平台。 项目介绍 AKStream是一个基于 C# 开发的全功能流媒体管理控制接口平台。 它集成了 GB28181、RTSP、RTMP、HTTP 等…

2024-2025-1 20241401 《计算机基础与程序设计》 第七周学习总结

班级链接 2024计算机基础与程序设计作业要求 第七周作业作业目标 ①数组与链表 ②基于数组和基于链表实现数据结构 ③无序表与有序表 ④树 ⑤图 ⑥子程序与参数教材学习内容总结 《计算机科学概论》第八章抽象数据类型: 用于定义数据和对数据的操作,而不需要具体实现细节。 栈…