第19章 分布式架构总结
目前已经介绍了基于Dubbo与Spring Cloud框架构建的分布式微服务应用,并且基于Spring Boot Starter集成的第三方工具解决了项目中遇见的绝大部分需求,现在将这些全部整合起来,绘制出完整的架构图谱以便于更加清晰地理解各工具之间的关系。
注册中心
无论是Dubbo的Zookeeper还是Spring Cloud的Eureka都负责所有服务模块的自动注册与发现,是整个分布式架构最为核心的部分,所以在生产环境中通常部署多个注册中心实现集群化以提高可用性。
业务模块
大部分的企业级应用都是围绕着数据库(MySQL)的CURD操作编写,当数据库达到I/O瓶颈后,一般会对其进行分库分表,使用主从库的方式部署在多台机器上以获得更大的计算量。分布式架构中的各业务模块天生就支持这一特性,各业务模块部署在不同的计算机上,只需让每个模块拥有各自独立的数据源便可。
分布式架构师基于网络进行远程调用,为了更高的可用性甚至可以将服务模块部署在异地的多个机房,当其中一个机器发生故障后依然可以由远程的机房中的应用实例提供服务,并且可以与CDN配合起来组建网络。
独立服务
消息队列(RabbitMQ)、缓存服务(Redis)、索引服务(ElasticSearch)并不直接参与到业务逻辑中,而是为各个独立业务模块提供公共服务,为了更好的稳定性也可以将各独立服务进行集群化部署。
服务监控平台
Dubbo的Moc