微服务篇1
定义
对于微服务,业界没有一个严格统一的定义,可以理解为:
-
微服务架构的风格,就是将单一程序开发成一个微服务,每个微服务运行在自己的进程中,并使用轻量级机制通信,通常是 HTTP RESTFUL API。
-
这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署。
-
这些服务可以使用不同的编程语言,以及不同的数据存储技术,以保证低限度的集中式管理
总结微服务特点
1 按业务划分为一个独立运行的程序,即服务单元
微服务可以从3个方面来进行界定:
1、 根据代码量
2、 根据开发时间长短
3、 根据业务的大小;
一个大的业务可以才分成若干个小的业务,一个小的业务又可以拆分成若干和更小的业务,具体的微粒度需要开发人员自己去决定
服务之间通过HTTP协议相互通信
- 微服务单元之间的通信方式一般倾向于使用HTTP这种简单的通信机制,更多的时候是使用RESTful API的。
- 这种请求、处理业务逻辑、返回数据的HTTP模式分成高效
- 并且这种机制与平台和语言无关;
例如使用java写的服务可以消费用Go语言写的服务、用Go写的服务又可以消费用Ruby写的服务
- 服务于服务之间通信的数据格式,一般为JSON、XML这两种
这两种数据格式与语言、平台、通信协议无关;一般来说,JSON格式的数据比XML轻量,可读性更好
服务于服务通过HTTP或者消息总线的方式也存在弊端、其通信机制是不可靠的,虽然成功率很高,但还是有失败的时候