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