微服务架构学习

Posted zxwdont

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务架构学习相关的知识,希望对你有一定的参考价值。

微服务架构

1.什么是微服务架构?

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

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

 

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

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

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

2.微服务的通信方式

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

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

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

技术图片

 

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

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

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

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

技术图片

 

 

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

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

 

以上是关于微服务架构学习的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记SpringCloud微服务架构

SpringCloud学习--微服务架构

微服务学习之路——微服务架构

成小胖学习微服务架构·基础篇

微服务学习:微服务介绍

微服务架构学习