码迷,mamicode.com
首页 > 其他好文 > 详细

微服务架构学习

时间:2019-09-10 13:05:17      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:避免   应用程序   提升   web   程序   服务框架   com   动态   调整   

微服务架构

1.什么是微服务架构?

微服务框架当下很火,那到底什么是微服务呢?为什么会火呢?

我们传统的应用程序是一个项目,在一个进程里面运行的。这样就会导致各个业务逻辑模块耦合性高,有时代码调整时,牵一发而动全身。传统的项目大部分采用单体式开发,如下图所示:技术图片

 

 如上图所示,单体式开发弊端显而易见。我们改动订单模块时,仓储、物流、用户模块也可能会受到影响。

业务推动技术的发展,技术应用于业务。由此,诞生了我们的微服务架构。

微服务架构的定义:是一种程序设计风格,把各种业务分离成单独的服务,在独立进程中运行。这样就可以降低各模块之间的耦合性。

2.微服务的通信方式

微服务把各模块独立分离出来,那么各个模块之间需要进行通信时,通过什么方式通信呢?

微服务的各个模块是单独的一个进程,我们要实现他们之间的通信,只能通过跨进程通信方式

跨进程通信主要方式有:基于第三方共享存储(如:队列、数据库)、网络协议通信(webservice/WCF/WebApi等)、Remoting(RPC),其中网络协议通信用的最多

技术图片

 

3.微服务注册与发现-consul

微服务要求我们任何服务都要集群(提供多个进程处理,避免单一进程挂死带来影响)

集群的好处:提升承载能力、避免单一故障、动态伸缩

提到集群,很多人会想到用Nginx来集群,如下图所示:

技术图片

 

 

 虽然Nginx可以实现服务集群,但是Nginx不能实现动态新增服务实例、同时由于服务可能会挂死,所以必须要经常检查服务的健康状况,这个Nginx也做不到,这就产生了我们的consul。

consul可以动态进行服务的注册与删除,是微服务必须的。

 

微服务架构学习

标签:避免   应用程序   提升   web   程序   服务框架   com   动态   调整   

原文地址:https://www.cnblogs.com/zxwDont/p/11496701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!