SpringCloud微服务框架提供了目前市面上使用频率比较高的注册中心支持,包括但不限于

zookeeper,eureka,consul,redis

注意:

Eureka在SpringCloud2.0中已经闭源,但是目前仍是官方建议推荐的主流注册中心,如果对Eureka源码感兴趣可以参考SpringCloud1.0中的Eureka源码或者参考netflix视频网站中的Eureka源码。

consul是Apache基金会全新发布的一款consul是Apache基金会全新发布的一款Go语言编写的注册中心,由于和由于和Java兼容性不好,所以目前所以目前SpringCloud2.0官方只是把0官方只是把consul当做备选方案,如果后期如果后期netflix和如果后期如果后期netflix和SpringCloud谈不拢的话,SpringCloud官方推荐SpringCloud官方推荐consul也不是不无可能,说白了,其实consul目前只是备胎。

zookeeper是dubbo和dubbox官方推荐并使用的注册中心,优点是跨平台能力强,但是由于体型较大且安装配置方式较为复杂,被被SpringCloud2.0逐渐淡忘了。。。但是但是SpringCloud2.0还是保留了对zookeeper的部分支持,但是在微服务体系中实际并不常用。

redis新推出的注册中心名气较小并且不稳定,还在SNAPSHOT阶段,目前SpringCloud2.0官方并不推荐使用。

 

补充说明:基于dubbo/dubbox的SOA架构 PK 基于Eureka的SpringCloud微服务架构

传统SOA架构虽然也是面向服务架构,虽然也可以对服务进行调度管理,但是对于日趋庞大的软件系统而言,缺点也是逐渐显现出来:

服务粒度过粗,大量服务的情况下服务治理出现混乱,服务调用机制缺乏灵活性,服务容灾性差,配置和维护复杂性大,经常性出现牵一发动全身问题,数据传输速率很慢,服务经常宕机。

基于基于SpringCloud2.0的微服务架构则提供了一整套微服务体系治理机制,服务粒度更加精细,专门提供了服务治理和监管机制,最大限度确保服务的弹性,伸缩性,进而提高整个应用系统的容灾性和高可用性。拥有单独的微服务分布式配置中心统一管理所有服务配置信息,采用主流REST数据传输机制进行服务和注册中心,服务和服务之间的高性能RPC远程调用,极大提高了系统轻便和灵活性,进而提高开发的敏捷性。拥有单独的熔断和容灾机制,最大限度减少服务雪崩所带来的蝴蝶效应,对于服务器来说服务访问线程分配更加均衡,也避免了线程阻塞导致项目崩溃问题出现的可能性。所以在面向服务设计的架构体系中,基于SpringCloud2.0的微服务架构得到了开源社区开发同行的广泛认可,也正逐渐成为越来越多大厂开发项目首选架构。