1 EJB、Dubbo、SpringCloud对比(SOA,微服务)
EJB |
Dubbo |
SpringCloud |
|
开发方 |
标准由oracle开发 |
阿里 |
Spring社区 |
最新版本及时间 |
3.1,2009年 |
2.5.3,2012年10月23号 |
Finchley.SR1,2018年8月1号 |
维护状态 |
不活跃,3.2只是草案 |
不再继续维护 |
活跃 |
互联网应用案例 |
暂未发现 |
阿里、京东、当当等 |
中国联通 华为 |
基于协议 |
Rmi |
可选,默认dobbo |
http |
可用的语言 |
Java |
Java |
所有语言 |
分布式事物 |
是 |
否 |
否 |
无状态部署 |
否 |
是 |
是 |
服务器治理 |
服务发现、负载均衡 |
服务发现、服务路由、服务负载均衡、服务列表、服务分组、服务依赖管理、服务权重、服务授权、服务直连、上下文隐式传参、分组聚合、结果缓存 |
除dubbo有的外:服务网关、断路器、服务跟踪、消息总线、批量任务 |
分布式配置 |
无 |
第三方 |
有 |
基于的web容器 |
Jboss |
Tomcat内嵌 |
Tomcat内嵌 |
单元测试 |
支持 |
支持 |
支持 |
性能对比:(引用网上一张图)
2 版本说明
SRx=Service Release x:服务发布版,正式版本
Finchley.SR1 (2.0.1)于2018年8月1日发布,有厂商已经从1.x升级过来,1.x和2.x的组件对比如下图:
其中,相比版本2.0.0,版本2.0.1组件版本如下:
SpringCloud 2.0.1相比1.x主要配置区别如下:
(1)SpringBoot从1.x(最新发布版1.5.17 GA,发布日2018.10.16)升级为2.x(最新发布版为2.0.6GA,发布日2018.10.16),SpringCloud 2.x必须基于SpringBoot2.x,SpringCloud1.x必须基于SpringBoot1.x
(2)Eureka服务器依赖org.springframework.cloud需要变更
<artifactId>spring-cloud-starter-eureka-server</artifactId>变为:
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
(3)Eureka客户端依赖org.springframework.cloud需要变更
<artifactId>spring-cloud-starter-eureka</artifactId>变为:
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
(4)注册中心IP地址配置
${spring.cloud.client.ipAddress}变为:
${spring.cloud.client.ip-address}
(5)安全加密Spring Security的用户密码配置在security前面加spring
spring:
security:
user:
name:
password:
(6)安全加密Spring Security默认开启CSRF防御(可能导致两个注册中心无法相互注册),使用:
http.csrf().ignoringAntMatchers(“/eureka/**”);
(7)安全加密Spring Security模块导致配置中心无法加解密
因为认证方式有改变,可以改回 basic auth认证方式
(8)maven需要修改run.profiles为spring-boot.run.profiles
spring-boot:run -Drun.profiles= …改为:
spring-boot:run -Dspring-boot.run.profiles=
(9)Spring Cloud Gateway代替了Spring Cloud Zuul,主要原因是Zuul 2.0没有及时开源(后来Netfilx已经开源)。
3 源码
SpringCloud源码位置:
https://github.com/spring-cloud
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/193857.html