微服务是一宗分布式系统解决方案,推动细粒度服务的试用,这些服务协同工作,且每个服务都有自己的生命周期。因为微服务主要围绕业务领域建模,所以避免了有传统的分层架构引发的很多问题。
1、微服务
背景
随着领域驱动设计,持续交付,按需虚拟化,基础设施自动化,小型自制团队,大型集群系统这些实践的流行,微服务孕育而生
定义
微服务就是一些协同工作的小而自制的服务
特点
很小,专注做一件事情
-
- 内聚性:把因相同原因而变化的东西聚合在一起,把因不同原因而变化的东西分离出来
- 边界划分原则:在一两个周内完全可以重写
- 产生的问题:太小则独立性强,但管理大量的服务就越负责
自治性
-
- 尽量避免把多个服务部署到同一个服务器上
- 服务之间通过网络调用进行通讯,从而避免了服务之间的耦合,加强了隔离性
优点
技术异构性,弹性,扩展,简化部署,与组织结构相匹配,可组合性,对可替代性的优化
SOA
定义:SOA(Service-Oriented Architecure,面向服务的架构)是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。
与微服务的差别:一个服务通常以独立的形式存在于操作系统进程中。服务之间通过网络调用,而非采用进程内调用的方式进行。
问题:通信协议(如SOAP)选择,第三方中间件选择,服务颗粒如何确定
其他分解技术
共享库,模块化
2、演化式架构
认识架构师
必须改变哪种从一开始就要设计出完美产品的想法,相反我们应该设计出一个合理的框架,在这个框架下可以慢慢演化出正确的系统,并且一旦我们学到了更多的知识,应该可以很容易地应用到系统中
架构师的责任
-
- 愿景:确保在系统级有一个经过充分沟通的技术愿景,这个愿景应该可以帮助你满足客户和组织的需求
- 合作:和尽量多的同时进行沟通,从而更好地对愿景进行定义,修订以及执行
- 适应性:确保在你的客户和住址需要的时候能调整技术愿景
- 自治性:在标准化和团队自治之间寻找一个正确的平衡
- 治理:确保系统按照技术愿景和要求实现
来源:https://www.cnblogs.com/etmedia/p/7192281.html