.net 分布式系列:微服务
一、背景&问题
之前框架是一个基于SOA思想设计的分布式框架。各应用通过服务方式提供使用,服务之间通信是RPC方式调用,具体实现基于.NET的WCF通信平台。框架存在如下2个问题:
1、高并发处理能力不足。一当高并发请求,可能出现多个服务待定处理,导致整个系统出现瓶颈。
2、随着移动端广泛应用,服务不能灵活支持APP应用。
3、系统持续集成部署过于繁琐,遇到问题不好定位。
基于以上存在问题升级框架,结合当前主流的架构思想,将系统进行服务化思维,就是“微服务架构”。
二、微服务架构
微服务架构(Microservices Architecture)是将系统拆分为多个服务,俗称为应用服务。应用服务实现单一、具体的业务应用功能,支持独立部署维护,多个应用服务构建成系统。应用服务之间通过轻量级通信框架进行,并且支持应用服务用不同技术或者平台实现。微服务架构是SOA架构设计思想另一种实现方式。微服务架构有如下特点:
1、微服务架构好处
(1)横向扩展应用服务提升系统并发处理能力
(2)应用服务独立部署维护,有利于迭代开发升级持续部署
(3)架构灵活支持多种技术实现
(4)有利于应用服务实现高可用性
2、微服务架构不足
(1)对系统设计有一定要求,尤其是拆分技术应用服务接口
(2)导致系统实现复杂度的提高
(3)需要确保系统数据一致性机制
(4)导致系统维护要求和成本提高
系统是否需要采用微服务架构进行构建是由项目需求决定。采用微服务架构进行设计构建系统,对团队成员能力比传统要求高,尤其是设计能力。
三、框架设计原则
1、可扩展:支持不修改系统功能,按需扩展服务器资源。
2、高可用:支持分布式部署双机热备机制,满足系统高可用性的要求。
3、高并发:支持快捷扩张应用服务处理能力,提升系统处理能力,满足并发请求。
4、安全性:访问安全通过统一认证访问;信息安全通过加解密、签名传输;网络安全通过网络隔离及防火墙;数据安全通过定时备份及高容错能力。
5、一致性:采用数据最终一致性策略。