微服务架构
1.什么是微服务架构?
微服务框架当下很火,那到底什么是微服务呢?为什么会火呢?
我们传统的应用程序是一个项目,在一个进程里面运行的。这样就会导致各个业务逻辑模块耦合性高,有时代码调整时,牵一发而动全身。传统的项目大部分采用单体式开发,如下图所示:
如上图所示,单体式开发弊端显而易见。我们改动订单模块时,仓储、物流、用户模块也可能会受到影响。
业务推动技术的发展,技术应用于业务。由此,诞生了我们的微服务架构。
微服务架构的定义:是一种程序设计风格,把各种业务分离成单独的服务,在独立进程中运行。这样就可以降低各模块之间的耦合性。
2.微服务的通信方式
微服务把各模块独立分离出来,那么各个模块之间需要进行通信时,通过什么方式通信呢?
微服务的各个模块是单独的一个进程,我们要实现他们之间的通信,只能通过跨进程通信方式。
跨进程通信主要方式有:基于第三方共享存储(如:队列、数据库)、网络协议通信(webservice/WCF/WebApi等)、Remoting(RPC),其中网络协议通信用的最多
3.微服务注册与发现-consul
微服务要求我们任何服务都要集群(提供多个进程处理,避免单一进程挂死带来影响)
集群的好处:提升承载能力、避免单一故障、动态伸缩。
提到集群,很多人会想到用Nginx来集群,如下图所示:
虽然Nginx可以实现服务集群,但是Nginx不能实现动态新增服务实例、同时由于服务可能会挂死,所以必须要经常检查服务的健康状况,这个Nginx也做不到,这就产生了我们的consul。
consul可以动态进行服务的注册与删除,是微服务必须的。
原文地址:https://www.cnblogs.com/zxwDont/p/11496701.html
时间: 2024-11-09 05:59:47