01. 微服务 - 概述
微服务
什么是微服务?
采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,例如 RPC、HTTP 等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。
有什么好处?
- 技术多样化
- 系统更具有弹性。当部分服务失败时,我们可以将这个失败隔离,让系统其他部分正常工作
- 系统伸缩性。我们可以根据业务需要在横向或纵向伸缩,提供更匹配的能力输出
- 系统更易于部署
- 更易于团队管理
- 系统可分解,更利于大型系统的组织
- 易于对部分能力进行优化
SOA怎么样?
- SOA聚合的是大量整体的应用程序
- 实施时往往是企业强制进行整合,因此在各大提供商之间缺乏协议、中间件整合的支持,从而使问题重重
- SOA并不会帮助企业切分他们的业务
- 微服务是SOA的一致特别的实现,尤其适合XP等敏捷迭代研发管理流程中进行
其他相关技术
因此我们的共享库应该仅限于非业务相关的能力部分。
没有银弹,有什么不足呢
- 分布式系统增加系统复杂度,我们需要话费大量的时间和精力来管理这个系统
- 如果是从整体框架迁移到服务架构,你需要经过大量的部署、测试和监控
- 你需要重新思考如何设计才可以保证系统的伸缩性
- 你也会遇到分布式事务、CAP定律等诸多困扰
参考
http://blog.csdn.net/mindfloating/article/details/24583369