MSA简介
1.1、MSA是什么
微服务架构MSA是Microservice Architecture的简称,它是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相通讯、互相配合,为用户提供最终价值。它与SOA之间的区别如下:
SOA实现 |
微服务架构实现 |
|
企业级,自顶向下开展实施 |
团队级,自底向上开展实施 |
|
粒度大:服务由多个子系统组成 |
粒度细:一个系统被拆分成多个服务,且服务的定义更加清晰 |
|
重ESB:企业服务总线,集中式的服务架构 |
轻网关:无集中式总线,松散的服务架构 |
|
开发过程复杂 |
易开发:减少了企业ESB开发的复杂性,与敏捷开发的思想高度结合在一起 |
|
单块架构系统,相互依赖,部署复杂 |
服务能被独立部署 |
|
1.2、我们的MSA框架
我们的微服务框架MsaFx.dll是个基于ServiceStack 4.0.60包装实现的.NET Web Services框架,而ServiceStack本身支持通用的轻量级协议和Metadata。MsaFx与普通Web Services框架如WCF相比,主要优势如下:
1、 高性能:性能好、速度快。
2、 支持跨平台运行:基于MsaFx开发出的Web Services既能够运行在Windows环境中,又能够运行在支持Mono的Linux环境中。
3、 支持多协议:如JSON格式的也支持XSD。
4、 更加Web化:RESTful。
5、 服务端实现与客户端实现的完全解耦:MSA基于消息的设计,使得服务端的API改变并不会破坏现有的客户端,达到服务端实现与客户端实现完全解耦的目的。
6、 MSA API可视化说明文档便于你调试。
7、 易学:使用MSA进行开发和维护服务所需的技术和时间投入要小很多。
8、 易用:简化了REST以及WCF SOAP风格的Web Services的开发过程。
1.3、MSA框架实现架构
MSA服务端的架构请见下图的第一张图,MSA的HTTP客户端架构请见下图的第二张图。MSA的内部是建立在原生的ASP.NET IHttpHandler之上实现的,支持JSON、XML、JSV、HTML、Message Pack、ProtoBuf、CSV等消息格式。