高并发高可用微服务架构选型Dubbo与Spring Cloud纯干货,必收藏!

Posted moon0201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高并发高可用微服务架构选型Dubbo与Spring Cloud纯干货,必收藏!相关的知识,希望对你有一定的参考价值。

一.Dubbo

Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点(阿里巴巴现在使用架构为HSF)。 于2012-10-24最后版本2.5.3成为最后一版本,由当当接手维护,命名为dubbox;2017年突然继续dubbo进行维护。

 
技术图片
  • Dubbo 核心部件:
  • Provider: 暴露服务的提供方。
  • Consumer:调用远程服务的服务消费方。
  • Registry: 服务注册中心和发现中心。
  • Monitor: 统计服务和调用次数,调用时间监控中心。(dubbo的控制台页面中可以显示)
  • Container:服务运行的容器。

1.1 Dubbo服务集群-集群容错模式

技术图片

架构技术选型与设计-微服务选型

技术图片

架构技术选型与设计-DUBBO

技术图片

架构技术选型与设计-DUBBO

 
技术图片

二. Spring Cloud

Spring Cloud,从命名我们就可以知道,它是Spring Source的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了Spring Source之外,还有Pivotal和Netfix是其强大的后盾与技术输出。其中Netflix开源的整套微服务架构套件是Spring Cloud的核心。

如果拿Dubbo与Netflix套件做对比,前者在国内影响力较大,后者在国外影响力较大,在背景上可以打个平手;但是若要与Spring Cloud做对比,由于Spring Source的加入,在背书上,Spring Cloud略胜一筹,但是在高并发上dubbo曾经在阿里的运营中实际承载过过亿用户同时在线的,而Netflix 并没有实际的上线应用中体现过。

Spring Cloud下面有19个子项目(可能还会新增)分别覆盖了微服务架构下的方方面面,服务治理只是其中的一个方面,一定程度来说,Dubbo只是Spring Cloud Netflix中的一个子集。但是在选择框架上,方案完整度恰恰是一个需要重点关注的内容,当然从高可用和高并发一起考虑,Spring Cloud 无疑是最佳选择。

2.1 Spring Cloud 工具框架

1、Spring Cloud Config 配置中心,利用git集中管理程序的配置。

2、Spring Cloud Netflix 集成众多Netflix的开源软件

3、Spring Cloud Bus 消息总线,利用分布式消息将服务和服务实例连接在一起,用于在一个集群中传播状态的变化

4、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry集成你的应用程序

5、Spring Cloud Cloud Foundry Service Broker 为建立管理云托管服务的服务代理提供了一个起点。

6、Spring Cloud Cluster 基于Zookeeper, Redis, Hazelcast, Consul实现的领导选举和平民状态模式的抽象和实现。

7、Spring Cloud Consul 基于Hashicorp Consul实现的服务发现和配置管理。

8、Spring Cloud Security 在Zuul代理中为OAuth2 rest客户端和认证头转发提供负载均衡

9、Spring Cloud Sleuth SpringCloud应用的分布式追踪系统,和Zipkin,HTrace,ELK兼容。

10、Spring Cloud Data Flow 一个云本地程序和操作模型,组成数据微服务在一个结构化的平台上。

11、Spring Cloud Stream 基于Redis,Rabbit,Kafka实现的消息微服务,简单声明模型用以在Spring Cloud应用中收发消息。

12、Spring Cloud Stream App Starters 基于Spring Boot为外部系统提供spring的集成

13、Spring Cloud Task 短生命周期的微服务,为SpringBooot应用简单声明添加功能和非功能特性。

14、Spring Cloud Task App Starters

15、Spring Cloud Zookeeper 服务发现和配置管理基于Apache Zookeeper。

16、Spring Cloud for Amazon Web Services 快速和亚马逊网络服务集成。

17、Spring Cloud Connectors 便于PaaS应用在各种平台上连接到后端像数据库和消息经纪服务。

18、Spring Cloud Starters (项目已经终止并且在Angel.SR2后的版本和其他项目合并)

19、Spring Cloud CLI 插件用Groovy快速的创建Spring Cloud组件应用。

Spring Cloud共集成了19个子项目,里面都包含一个或者多个第三方的组件或者框架!

2.2 Spring cloud 实现采用的技术

1、spring cloud : 一个云应用工具,为云应用开发的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁定、决策竞选、分布式会话和集群状态管理等操作

2、spring cloud config :配置管理开发工具包

3、 spring cloud Bus :事件消息总线用于集群(例如:配置变化时间)中传播状态变化,与spring cloud config 联合实现热部署

4、 spring cloud Netflix Eureka : 云端负载均衡基础,一个基于Rest的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移

5、 spring cloud Netflix Hystrix : 容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力

6 、 Netflix ZUUL: 边缘服务工具,提供动态路由、监控、弹性、安全等边缘服务

7、 spring cloud sleuth :日志收集工具包、封装Purpose 、Zipkin和Trace

8、 Spring Cloud Security : 安全工具包,为应用程序添加安全控制,主要是OAuth2

9、 spring cloud turbine :聚合服务器发送时间流,监控集群下Netflix 和 metrics 情况

2.3 Spring cloud 规划设计

 
技术图片
 
技术图片
 
技术图片

2.4 Spring cloud 配置中心

 
技术图片

2.5 Spring cloud 注册中心

技术图片

2.6 Spring cloud 网关

服务路由、安全认证、会话共享、客户端负载均衡、统一异常处理、跨域请求

 
技术图片

2.7 Spring cloud 断路由

 
技术图片
 
技术图片
 

以上是关于高并发高可用微服务架构选型Dubbo与Spring Cloud纯干货,必收藏!的主要内容,如果未能解决你的问题,请参考以下文章

高并发场景下高可靠高可用微服务架构设计与实现

再见,Dubbo!再见,Spring!

16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程

详解主流分布式架构选型与高可用设计

2.Go语言高并发与微服务实战 --- 微服务概述

2.Go语言高并发与微服务实战 --- 微服务概述