SpringCloud
1.服务注册
开发环境,服务提供者和消费者直连,不注册到Eureka Server
配置文件:spring.cloud.service-registry.auto-registration.enabled=false或@EnableDiscoveryClient(autoRegister=false)
生产环境,提供者和消费者注册到Eureka Server(默认是自动注册的)
2.版本
springcloud没有采用版本号的方式,而是采用版本名的方式,避免版本号与其子项目的版本号混淆
这些版本采用的伦敦地铁站的名字,按照字母排序对应版本的时间顺序
比如最早的RELEASE版本是 Angel,第二是Birxton……
版本名后面的SR4、SR5就是版本号了(service Release 4)
3.springcloud sleuth两种方式整合Zipkin
http直连Zipkin
MQ方式,如下
对比及分析
对比后不难发现,从Edgware开始,Sleuth基于MQ整合Zipkin更加的简化!不过,改动还是比较大的。官方为什么要做这个改进呢?答案如下——
- Spring Cloud Edgware之前的版本使用
Zipkin 1.x
,要想MQ方式收集数据,需整合spring-cloud-sleuth-stream
。而在Edgware及更高版本中,使用Zipkin 2.x
。Zipkin 2.x
本身已支持基于MQ的数据收集方式,故而spring-cloud-sleuth-stream
将被废弃! - 两种使用方式不兼容,请读者务必注意!
文章参考:http://www.itmuch.com/spring-cloud/edgware-new-sleuth-zipkin-mq/
4.组件含义
Spring Cloud Eureka(注册中心):服务治理
Spring Cloud Ribbon(负载均衡--服务消费):是一个客户端负载均衡的组件,主要提供客户侧的软件负载均衡算法
Spring Cloud Hystrix(服务容错保护):断路器
Spring Cloud Feign(声明式服务调用--服务消费):Feign的主要目标是将Java Http客户端变得简单。
Spring Cloud Zuul(服务网关)
Spring Cloud Config(分布式配置中心)
Spring Cloud Bus(消息总线):它可以用于广播配置文件的更改或者服务之间的通讯,也可以用于监控。
Spring Cloud Stream(消息驱动的微服务):是一个用来为微服务应用构建消息驱动能力的框架。通过使用Spring Integration来连接消息代理中间件以实现消息事件驱动。引用了发布-订阅、消费组、分区的三个核心概念。目前仅支持RabbitMQ、Kafka。
Spring Cloud Sleuth(分布式服务跟踪):主要功能就是在分布式系统中提供追踪解决方案,并且兼容支持了zipkin
Spring Cloud Swagger(接口管理)
图:
Ribbon和Feign区别联系
Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。Feign默认集成了ribbon。
二者具体代码区别参考博客:http://blog.****.net/forezp/article/details/69808079