简单对比一下微服务和单体服务
2019-03-01 本文已影响100人
Vongola々骸
最近有好些同学(当然主要是有小姐姐)找我讨论分布式和微服务。我自己是从传统行业转到互联网的,也能看到互联网和传统行业技术架构上的一些差异,但是毕竟没有进行过系统的学习,所以讨论起来总感觉找不到重点,所以抽时间看了一些微服务相关的资料。接下来将会花几篇文档来整理一下微服务相关的概念
单体服务架构
单体服务架构的特点
- 各个功能模块写在同一个项目中,部署到一台机器上
- 一个项目由多个开发人员甚至多个团队一起进行开发维护
随着业务发展和需求迭代,单体架构会面临一些问题
- 不灵活:改一个功能需要对整个服务进行重新编译打包部署,某个功能达到瓶颈需要整个服务进行扩容
- 不稳定:某个模块的故障可能影响整个服务
- 迭代低效:一个庞大的单体服务往往是由多个开发人员甚至团队合作管理的,这回大大提高需求推进中的沟通成本
微服务架构
传统的单体架构难以适应互联网快速迭代、大规模、高并发等需求,微服务架构也就应运而生,微服务架构一般有以下特点
- 将服务拆分成多个单一职责的小的服务,进行单独部署,服务之间通过网络进行通信
- 每个服务应该有自己单独的管理团队,高度自治
微服务架构能有效解决单体架构遇到的一些问题
- 灵活扩展:可以根据各个服务的瓶颈灵活水平伸缩
- 稳定:服务各自有自己单独的职责,服务之间松耦合,避免因一个模块的问题导致服务崩溃
- 高效迭代: 各个服务独立开发、迭代,高度自治,提升效率
总结
微服务将应用拆分为更小的、职责更单一的服务,通过服务的组合来实现应用完整的功能,整体更加灵活,开发迭代也更加高效。但是由于微服务的粒度更细,加上本身的分布式特性,使得微服务架构在服务治理上也存在不小的挑战。如何解决这些问题,也就成了微服务学习中及其重要的一环
参考
- 《分布式服务架构:原理、设计与实战》 [1] 一书作者李艳鹏、杨彪,电子工业出版社2017年8月出版》