springcloud中cunsul,ribbon
2022/4/5 6:21:42
本文主要是介绍springcloud中cunsul,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中cunsul,ribbon的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)