1
2
以上是很简单的分布式结构,围绕这个结构,我们有时候还需要做如下事情:
1. 哪些微服务是如何彼此调用的? sleuth 服务链路追踪
2. 如何在微服务间共享配置信息?配置服务 Config Server
3. 如何让配置信息在多个微服务之间自动刷新? RabbitMQ 总线 Bus
4. 如果数据微服务集群都不能使用了, 视图微服务如何去处理? 断路器 Hystrix
5. 视图微服务的断路器什么时候开启了?什么时候关闭了? 断路器监控 Hystrix Dashboard
6. 如果视图微服务本身是个集群,那么如何进行对他们进行聚合监控? 断路器聚合监控 Turbine Hystrix Dashboard
7. 如何不暴露微服务名称,并提供服务? Zuul 网关
3 maven 父子( 聚合)项目
4 服务注册中心
5注册数据微服务
6视图微服务-RIBBON
7视图微服务-FEIGN
Feign 是什么呢? Feign 是对 Ribbon的封装,使用注解的方式,调用起来更简单。。。 也是主流的方式~
一下就是代码片段的区别
Ribbon public List<Product> listProdcuts() { return restTemplate.getForObject("http://PRODUCT-DATA-SERVICE/products",List.class); } Feign @FeignClient(value = "PRODUCT-DATA-SERVICE") public interface ProductClientFeign { @GetMapping("/products") public List<Product> listProdcuts(); }
因为 Feign 是对 Ribbon 的封装,而且也是主要方式,所以后续学习我们就会都使用 feign, 而不再使用 Ribbon了。
8 服务链路追踪
在前面的例子里,我们有两个微服务,分别是数据服务和视图服务,随着业务的增加,就会有越来越多的微服务存在,他们之间也会有更加复杂的调用关系。
这个调用关系,仅仅通过观察代码,会越来越难以识别,所以就需要通过 zipkin 服务链路追踪服务器 这个东西来用图片进行识别了。
9配置服务器
10 配置客户端 -----这里又碰到问题了 下载的跑起来了,自己的没有跑起来