我们看一下微服务原则的最后一个设计原则,RestFul的通信规则,我们来看一下这个图,其实我们的服务设计好以后,
我们的服务要和客户端去建立一个通信通道,还有包括我们的服务和服务之间,也是需要建立通信通道的,客户端它是
通过什么样的通信方式,请求我们的服务呢,而且我们的微服务架构之前也说了,不像RPC的架构方式,RPC的架构方式呢,
服务是没有通信通道的,是完全独立的,但是我们的SOA架构,和我们的微服务架构,比如SOA他加入了企业服务总线,还有我们
的微服务架构呢,加上了更轻量级的注册中心,所以我们服务和服务之间,是可以去通信的,那么服务和服务之间应该用什么样的
通信方式,通信通道去建立通信呢,其实就是摆在我们面前的一个问题,那么这里我们首选的是什么呢,是Restful的通信风格,
要建立客户端和服务,以及服务与服务,之间的通信方式,所以现在网上有这样一句话,面向服务的架构,Restful已经是面向服务
架构的一个首选,一个必要的通信方式了,足可以体现Restful在我们面向服务项目当中一个非常重要的地位,我们来看一下,作为
一个原则来讲,本应该是一个无状态的通信原则,这里我们需要注意,可不是我们讲的无状态服务,这个无状态原则指的是,比如什么
是无状态,像我们HTTP协议,就是一个典型的无状态协议,而且是一个单向性的,本来就是一个无状态的通信原则,在这里我们直接
推荐一个优先首选,Restful通信风格,因为他有这么几个好处,第一个Restful它是支持HTTP协议的,HTTP协议本身就是一个无状态的
协议,符合我们无状态通信原则,然后具备先天优势,扩展能力很强,例如我们需要对请求做加密处理,那么就有线程的方案就是HTTPS,
我们用它就可以了,这是他的第一个优势,第二个优势是什么呢,是JSON报文序列化,我们其实在Restful的请求当中呢,就可以对数据
做序列化处理,而且JSON序列过程当中呢,是比较轻量简单,人与机器都可读,学习成本比较低,搜索引擎友好,还有第三个优势就是语言
无关,各大热门语言都提供了成熟的Restful API框架,相对于其他的一些RPC框架,他的生态更加完善一些,所以都是用Restful来建立
我们服务与服务之间的通信方式,其实现在一些比较主流的电商平台当中,我们在用电商平台也能发现,通过他的URL的一些格式,
他有Restful的一个风格,比如我们现在去查询商品,通过搜索去查询商品,查询到商品以后呢,去看一下商品的详情,当我点击这个
商品的时候,发现URL后面会带一串数字,那么其实这一串数字呢,是你当前要查询的商品的ID,然后我们在服务端,在我们服务端某个
特定的服务当中,去获取商品的ID,有状态的服务去做数据的检索,我们去做数据的渲染,前后端分离的服务了,拿到返回的数据做
渲染,结果返回给我们的客户端,所以说呢,我们现在对于通信的方式,已经在电商平台已经有体现了,这一块是比较简单的,我们自己
做的电商当中,也是这么去实现的,不去做过多的解释了,那么以上就讲解了微服务的四大原则,在这四大原则当中,需要注意的就是,
重点是AKF拆分原则,为什么说它是重点呢,AKF拆分原则,从宏观的一个角度,来设计我们的微服务的,像除了AKF以外的三个原则,
都是在宏观基础之上的,微观的一些设计原则,所以为了学的更清晰一些,关键还是好看AKF拆分原则,那么我们把设计原则讲完以后呢