1.Dubbo 核心部件
Provider : 暴露服务的提供方,可以通过jar或者容器方式启动。
Consumer :调用远程服务的服务消费方。
Registry : 服务注册中心和发现中心。
Monitor :统计服务和调用次数,调用时间监控中心。
Container :服务运行的容器。
2 .微服务架构核心要素
服务注册中心: Zookeeper 、 Redis
服务调用方式: RPC 服务网关: 无
断路器: 不完善
分布式配置 : 无
分布式追踪系统:无
消息总线:无
数据流:无
批量任务 :无
3.支持协议:Dubbo使用RPC通讯协议
dubbo :缺省,采用单一长连接和NIO异步通讯,适合小数据量大并发的服务调用,以及消费者机器数远大于提供者机器数的情况。
RMI:采用JDK标准的java.rmi.*实现,采用阻塞式短连接和JDK标准序列化方式。
Hessian:用于集成Hessian的服务,底层采用HTTP通讯,采用 Servlet暴露服务,Dubbo缺省内嵌Jetty作为服务器实现。 HTTP:采用Spring的HttpInvoker实现。
WebService:基于CXF的frontend-simple和transports-http实现。
4. 与Spring Cloud 对比
(1)总体架构
Service Provider :暴露服务的提供方。
Servie Consumer :调用服务的服务消费方。
EureKa Server :服务注册中心和服务发现中心。
(2)微服务架构核心要素:
服务注册:Spring Cloud Netflix EureKa
服务调用方式:REST API
服务网关:Spring Cloud Netflix Zuul
断路器:Spring Cloud Netflix Hystrix
分布式配置:Spring Cloud Config
分布式追踪系统:Spring Cloud Sleuth
消息总线:Spring Cloud Bus
数据流:Spring Cloud Stream
基于Redis,Rabbit,Kafaka实现的消息微服务
批量服务:Spring Cloud Task