一、代码
https://github.com/forezp/SpringCloudLearning
二、阅读总结
基础思路
1、服务注册与发现
1.1 eureka-server实现注册
1.2 高可用注册
启动多个eureka-server
2、服务消费
2.1 ribbon: 通过服务名称消费通过rest接口消费服务
return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class);
2.2 feign: 通过注释消费服务
@FeignClient(value = "service-hi")
public interface SchedualServiceHi {
@RequestMapping(value = "/hi",method = RequestMethod.GET)
String sayHiFromClientOne(@RequestParam(value = "name") String name);
}
3、断路器Hystrix: HystrixCommand命令注释访问失败后调用的函数,函数的返回值就是服务返回值
@HystrixCommand(fallbackMethod = "hiError")
4、路由网关zuul: 通过ZuulFilter的重新实现定义路由
public class MyFilter extends ZuulFilter
路由配置:
zuul:
routes:
api-a:
path: /api-a/**
serviceId: service-ribbon
api-b:
path: /api-b/**
serviceId: service-feign
4.1 路由配置提供的区分的前缀
4.2 过滤实现提供了路由起效的时间和路由处理逻辑
5、分布式配置中心
5.1 配置实现
@EnableConfigServer实现配置
client通过配置可以直接使用配置变量
spring.cloud.config.uri= http://localhost:8888/
5.2 高可用
Eureka实现注册中心:可以是多个
configServer注册:eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
configClient使用:eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/(可以多个)
spring.cloud.config.discovery.serviceId=config-server(可以多个)
6、消息总线
需要好好研究一遍???
7、服务链路追踪
zipkin监控:@EnableZipkinServer注释监控服务
被监控服务配置:spring.zipkin.base-url=http://localhost:9411
8、断路器监控
1.1 监控
服务需要注释:
@EnableHystrix
@EnableHystrixDashboard
断路器地址:http://127.0.0.1:8762/hystrix
选择一个地址:http://127.0.0.1:8762/hystrix。stream 监控8762这台断路器
1.2 聚合监控
turbine服务启动:@EnableTurbine注释服务
turbine服务配置:需要研究集群概念???
turbine:
aggregator:
clusterConfig: default # 指定聚合哪些集群,多个使用","分割,默认为default。可使用http://.../turbine.stream?cluster={clusterConfig之一}访问
appConfig: service-hi,service-lucy ### 配置Eureka中的serviceId列表,表明监控哪些服务
clusterNameExpression: new String("default")
选择turbine地址: http://127.0.0.1:8762/turbine.stream 监控所有的断路器
三、搜索分布式框架
四、grpc融入框架
五、consul融入框架