从分布式系统到微服务
----------------------------------------------------------------------------------------------------------------
演变过程:分布式系统——>SOA系统——>微服务。
SOA:面向服务的架构;
Paas:平台即服务;
SaaS:软件即服务;
----------------------------------------------------------------------------------------------------------------
举个例子:在分布式系统中,随着公司的业务发展,发现其中一个子系统变得越来越重要,同时还需要向其他系统提供接口服务,那么我们就可以考虑将该子系统独立出来,做一个单独的应用,然后通过调用接口的方式对外提供服务。
随着公司的发展,其他的子系统也可能独立出来形成一个单独的应用。那么原来的分布式架构演变成SOA架构了。甚至到最后公司转型变成一个服务提供商,那么这套就是Paas系统,即是一个对外提供服务的平台。
当独立的应用多了,如何管理这些应用就变成一个十分紧要的问题。想要管理好这些应用,需要考虑一些问题:
1、通信协议,对外提供统一的通信协议;
2、要保证高可用,比如集群;
3、性能、安全等...
最后,即使是独立的应用也会变得十分庞大,系统难于维护,跟不上业务的发展。每个独立的应用也可能有相同的功能,那么就可以重新考虑拆分应用。因此就有了微服务这个概念。
----------------------------------------------------------------------------------------------------------------
微服务:
顾名思义,就是将一个应用的功能进行拆分,拆分成多个相对独立的小模块,那么这个小模块就可以说是一个微服务,但是这个“微”很难把控。
微服务架构和SOA架构很相似。微服务架构是SOA架构的深度抽象结果。要想搭建一个微服务架构,需要考虑如下几个问题:
1、服务之间如何调用,要有一套统一的调用方式;
2、权限控制与安全问题;
3、服务高可用问题,如果服务挂了要如何处理;
4、日志管理
5、服务调用的顺序;
6、session共享;
7、服务配置管理问题;
8、事务管理问题;
9、服务要统一管理统一配置,如何实现;
10、客户端怎样访问服务端。
目前,市场上提供了不少关于微服务的解决方案,而在实际使用中,根据人的不同产品的不同可能会搭建出一套自己使用的微服务架构。微服务是一个概念,具体怎么使用还是要看具体情况。