分类
Java

微服务 – Spring Cloud 2.0

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud 2.0 正式版发布已有一段时间,这次写了一个Demo方便入门学习和测试。

学习Spring Cloud前需要对Spring Boot有所了解,可以去查找相关资料。该Demo是用IntelliJ IDEA创建的,共分为6个模块,主要展示一些基本功能。


服务注册中心:
eureka-server
Spring Cloud采用的是eureka作为服务注册中心。eureka与zookeeper各有优缺点,这里不作详述,可以查找相关资料,多做一些实验。
分布式配置:
config-server
config-client
Spring Cloud可以把系统配置集中在一个服务里。默认配置文件从git中取得。这里我用的是svn,换成git只需更改配置文件即可。
远程服务调用:
service-producer
service-consume
Spring Cloud的远程调用使用的http协议。这点和dubbo不一样,duboo使用rpc方式,自己实现的协议。好处是效率高,响应快。缺点是在开发过程中,调用方需要实现被调用方的接口,服务之间不能做到完全解耦,如果一方有变动,另一方也要做出相应改变。rpc调用对于跨语言支持也不好,如果对外界提供服务,需要从新开发http接口。dubbox在bubbo基础上针对这个问题有做优化。而Spring Cloud从开始就采用http,兼容性,扩展性都会好很多。
网关:
gateway
所有的微服务可以通过网关调用。如果一个业务逻辑需要调用多个微服务,网关可以把它封装起来提供一个接口。另外网关可以做监控,负载均衡等。
总结:
在做这个demo时,发现Spring Cloud 2.0的一些jar名已改变,发现都是与eureka有关的。据了解eureka 2.0停止维护。在Spring Cloud 1.0中的eureka是1.4.*版本。在Spring Cloud 2.0中,eureka似乎与Cloud版本号同步了。估计是Spring团队单独维护和开发eureka了,这点在引入jar时要注意。
demo下载:spring-cloud-demo

发表评论

电子邮件地址不会被公开。