《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(四)服务的发现和消费
来源:互联网 发布:秋风印花分色软件 编辑:程序博客网 时间:2024/05/16 15:55
回顾前面内容,我们已经搭建了一个高可用的服务注册中心,并且将服务的提供者注册到了高可用的注册中心中,使其成为该服务治理体系下的一个服务。所以现在我们应该要做的就是创建一个服务的消费者,服务的消费者主要完成两个工作,发现服务和消费服务。其中服务的发现是由Eureka的客户端来完成的,而服务的消费的任务则是交给Ribbon来完成。所谓的Ribbon其实就是一个客户端的负载均衡器,他可以通过配置服务实例列表去轮询访问以达到负载均衡的作用。Ribbon在后面会详细学习,这里只是用一下。
1、搭建一个Ribbon的spring boot项目,取名为ribbon-consumer,用于实现消费者
2、增加配置
在启动类RibbonConsumerApplication中加上@EnableDiscoveryClient注解,让该应用注册为注册中心Eureka的客户端,以获得服务的发现能力。于此同时为其创建RestTemplate的Spring Bean实例,并通过@LoadBalanced注解为其开启客户端的负载均衡。
@SpringBootApplication@EnableDiscoveryClientpublic class RibbonConsumerApplication { public static void main(String[] args) { SpringApplication.run(RibbonConsumerApplication.class, args); } @Bean @LoadBalanced RestTemplate restTemplate(){ return new RestTemplate(); }}
修改application.properties配置文件,增加以下参数
spring.application.name=ribbon-consumerserver.port=9000eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka
这里消费者指向的注册中心为单点的,地址为http://localhost:1111/eureka
3、创建controller
@RestControllerpublic class ConsumerController { @Autowired RestTemplate restTemplate; @RequestMapping(value="/ribbon-consumer",method = RequestMethod.GET) public String helloConsumer(){ return restTemplate.getForEntity("http://eureka-service/hello",String.class).getBody(); }}
4、启动项目测试结果
启动注册中心,localhost:1111/eureka
通过命令行启动两个服务提供者的实例,端口号分别为8001和8002
步骤和上一篇启动两个注册中心的步骤相同,相关的启动命令如下
java -jar eureka-service-0.0.1-SNAPSHOT.jar --server.port=8001java -jar eureka-service-0.0.1-SNAPSHOT.jar --server.port=8002
注意 上述步骤是有顺序的,先启动注册中心,再启动两个服务提供者的实例,最后再启动消费者。
上述步骤执行完成后,打开浏览器访问http://localhost:1111可以看到
这时候打开浏览器访问http://localhost:9000/ribbon-consumer会发现成功的返回了“hello world”
问题:为什么在消费者的ConsumerController中,红色方框中写的是服务名而不是url?
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(四)服务的发现和消费
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(二)注册一个服务的提供者
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(五)Eureka详解
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(一)搭建一个注册中心
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(三)实现一个高可用的注册中心
- Spring cloud微服务实战——Eureka(一)
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(四)使用详解(一)
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(四)使用详解(二)
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(四)使用详解(三)
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(三)断路器的原理
- 170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?
- 《spring cloud微服务实战》读书笔记------目录
- 《spring cloud微服务实战》读书笔记——Spring Cloud Ribbon(一)RestTemplate
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(一)快速入门案例
- 《spring cloud微服务实战》读书笔记——Spring Cloud Hystrix(二)工作流程
- spring cloud:eureka服务发现
- Spring Cloud Eureka--服务发现
- Spring Cloud Eureka与Ribbon——服务发现与消费
- 实验2.1:交换机VLAN配置
- spark参数调优
- 双忆大脑
- spring cloud 报[Circular view path [refundbbb]: would dispatch back to the current handler URL [/refu
- Python.pygame 开篇
- 《spring cloud微服务实战》读书笔记——Spring Cloud Eureka(四)服务的发现和消费
- Linux安装Pygame
- 263. Ugly Number
- Android EditText 输入回车符自动跳转至下一个EditText
- 面向对象程序设计上机练习三(有默认参数的函数)
- 171218-原码,反码,补码【连续第五十四天】
- 学习jQuery
- struts2中的标签<s:debug></s:debug>
- 容器、Docker与Kubernetes