基于云平台的微服务架构设计的四个原则

2020-08-22  本文已影响0人  sknfie

概述

微服务架构是一种新的软件体系设计形式,提倡将应用系统按照一定的原则将大系统拆分成一系列细小的服务,每个服务只需要专注于一个单一的业务功能即可,并且服务之间可以互相独立运行,采用轻量级API进行通信,单一功能的改变只需要重新构建部署相应的服务即可。
本文将介绍微服务架构的必要性、优缺点和微服务应用的设计原则。

微服务架构的必要性

云并非把原先在物理服务器上跑的东西放到虚拟机里跑,真正的云化不仅是基础设施和平台的事情,应用也要做出改变,改变传统的做法,实现云化的应用——应用的架构、应用的开发方式、应用部署和维护技术都要做出改变,真正发挥云的弹性、动态调度、自动伸缩这些传统IT所不具备的能力。这里说的“云化的应用”也就是“云原生应用”。为了更好的适应云上的开发和交付,需要涉及一些技术,如容器技术和微服务架构等。

微服务架构的优点

微服务架构的有以下一些优点:

微服务应用4个设计原则

设计原则

1.AKF拆分原则

AKF

AKF扩展立方体(参考《The Art of Scalability》),是一个叫AKF的公司的技术专家抽象总结的应用扩展的三个维度。理论上按照这三个扩展模式,可以将一个单体系统,进行无限扩展。

2.前后端分离

这里的前后端分离不是指的开发过程中仅仅在代码层面去分离前后端开发,而是要求在架构方面分离,后端指处理业务逻辑,前端用vue/angular2+/react等web app单独实现,通过调用统一RESTful接口获取数据。这种分离模式的方式有几个好处:

3.无状态服务

无状态服务原则并不是说在微服务架构里就不允许存在状态,表达的真实意思是要把有状态的业务服务改变为无状态的计算类服务,那么状态数据也就相应的迁移到对应的“有状态数据服务”中。这样便于在云平台实现自动伸缩功能。


无状态服务

场景说明:例如我们以前在本地内存中建立的数据缓存、Session缓存,到现在的微服务架构中就应该把这些数据迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。迁移后,微服务应用在运行时通过设置的阈值自动伸缩,就不再需要考虑缓存数据如何同步的问题。

4.Restful通信风格

后端必须提供符合RESTful API标准的接口,RESTful API接口有以下一些优点:

微服务架构带来的问题

微服务架构有很多优点,但是不可避免也会带来一些问题:

总结

综上所述,微服务架构有很多优点也有不少不足之处,分析到最后终于明白了我们需要的解决方案,需要一个微服务应用治理平台才能整体性的解决这些问题。

上一篇 下一篇

猜你喜欢

热点阅读