微服务设计--(1)
微服务是一宗分布式系统解决方案,推动细粒度服务的试用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域建模,所以避免了有传统的分层架构引发的很多问题。 1、微服务 背景 随着领域驱动设计,持续交付,按需虚拟化,基础设施自动化,小型自制团队,大型集群系统这些实践的流行,微服务孕育而生 定义 微服务就是一些协同工作的小而自制的服务 特点 很小,专注做一件事情 内聚性:把因相同原因而变化的东西聚合在一起,把因不同原因而变化的东西分离出来 边界划分原则:在一两个周内完全可以重写 产生的问题:太小则独立性强,但管理大量的服务就越负责 自治性 尽量避免把多个服务部署到同一个服务器上 服务之间通过网络调用进行通讯,从而避免了服务之间的耦合,加强了隔离性 优点 技术异构性,弹性,扩展,简化部署,与组织结构相匹配,可组合性,对可替代性的优化 SOA 定义: SOA ( Service-Oriented Architecure, 面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。 与微服务的差别:一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行。 问题:通信协议(如 SOAP )选择,第三方中间件选择,服务颗粒如何确定 其他分解技术 共享库 ,