ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springcloud中cunsul,ribbon

2022-04-05 01:33:20  阅读:183  来源: 互联网

标签:springcloud consul cunsul eureka 使用 注解 ribbon 客户端


一 、consul

1.什么是consul

consul是用来代替eureka的框架,和eureka使用起来一样,导入的包不同。

<dependencies>
<!--SpringCloud consul-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

因为和eureka相似就不多赘述

 

二、ribbon

1.什么是ribbon

ribbon是用在客户端、控制客户端如何选择服务端口的控制负载均衡的工具

2.怎么使用ribbon

在eureka中,本来就有导入ribbon包,可以直接使用不必再导入

 

 

 

ribbon一般和restTempalte一起使用,这里说明一下restTemplate

RestTemplate 是由 Spring 提供的一个 HTTP 请求工具。

这里一共调用了

getForObject  get方式   Objict可以理解为返回的是json类型的数据
postForObject
getForEntity     Entity 返回的是有规则的显示所有内容的对象,因为需要序列化所以调用的时间长,建议使用object然后在json解析器里剖析
postForEntity

四种方法

使用restTemplate需要在config包里新建配置信息,注入bean对象使用

 

ribbon使用步骤:

为了不让我们自定义的ribbon类被所有要使用ribbon的的客户端共享,我们必须在@ComponentScan扫描的包之外的地方再创建一个新配置

注:@ComponentScan扫描的是当前类所在的包以及子包   @SpringBootApplication注解包含此注解

小方法:点击包的三角形,到看不到该类的时候就不在这包下啦

 

 

 

 如图所示在外包下创建配置

以下是所有ribbon自带的调用服务算法

 

 

在主启动类添加@RibbonClient 

 

总结: ribbon在eureka就已经有包的存在所以不需要自动导包;因为要特殊配置客户端的ribbon类型所以要在CommonpentScan扫描不到的地方创建配置类,并用bean注入;在配置包RestTemplate上添加@LoadBalanced注解;在主启动类要添加@RibbonClient注解。

3.手写ribbon算法

为了清楚的看到效果,我们要在服务端的controller类里添加

 

并在原有的代码上,取消掉上面ribbon使用的注解。

思路:首先要得到在这个application的这个服务下一共有多少个服务端口(使用ServiceInstance),我们才能依据这个设计方法(略过,这个我也不会,正在思考),最后在controller层实现

创建一个接口,该接口的方法是查询有多少个服务端(ServiceInstance.size()) 再创建实现类,继承该接口,再该实现类里写上设计方法。

 

标签:springcloud,consul,cunsul,eureka,使用,注解,ribbon,客户端
来源: https://www.cnblogs.com/VlogChen/p/16101247.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有