微服务

简单对比一下微服务和单体服务

2019-03-01  本文已影响100人  Vongola々骸

最近有好些同学(当然主要是有小姐姐)找我讨论分布式和微服务。我自己是从传统行业转到互联网的,也能看到互联网和传统行业技术架构上的一些差异,但是毕竟没有进行过系统的学习,所以讨论起来总感觉找不到重点,所以抽时间看了一些微服务相关的资料。接下来将会花几篇文档来整理一下微服务相关的概念

单体服务架构

单体服务架构的特点

  • 各个功能模块写在同一个项目中,部署到一台机器上
  • 一个项目由多个开发人员甚至多个团队一起进行开发维护

随着业务发展和需求迭代,单体架构会面临一些问题

  • 不灵活:改一个功能需要对整个服务进行重新编译打包部署,某个功能达到瓶颈需要整个服务进行扩容
  • 不稳定:某个模块的故障可能影响整个服务
  • 迭代低效:一个庞大的单体服务往往是由多个开发人员甚至团队合作管理的,这回大大提高需求推进中的沟通成本

微服务架构

  传统的单体架构难以适应互联网快速迭代、大规模、高并发等需求,微服务架构也就应运而生,微服务架构一般有以下特点

  • 将服务拆分成多个单一职责的小的服务,进行单独部署,服务之间通过网络进行通信
  • 每个服务应该有自己单独的管理团队,高度自治

  微服务架构能有效解决单体架构遇到的一些问题

  • 灵活扩展:可以根据各个服务的瓶颈灵活水平伸缩
  • 稳定:服务各自有自己单独的职责,服务之间松耦合,避免因一个模块的问题导致服务崩溃
  • 高效迭代: 各个服务独立开发、迭代,高度自治,提升效率

总结

  微服务将应用拆分为更小的、职责更单一的服务,通过服务的组合来实现应用完整的功能,整体更加灵活,开发迭代也更加高效。但是由于微服务的粒度更细,加上本身的分布式特性,使得微服务架构在服务治理上也存在不小的挑战。如何解决这些问题,也就成了微服务学习中及其重要的一环

参考

上一篇下一篇

猜你喜欢

热点阅读