什么是微服务
微服务指的是一种应用架构,其中的一系列独立服务通过轻量级 API 来进行通信。微服务是一种更加有效的开发方法。
单体式架构和微服务架构区别
传统的应用构建方法专注于单体式架构。在单体式架构中,一个应用内的所有功能和服务都锁在一起,作为一个单元来运行。以任何方式对应用进行增添或改进时,其架构会变得愈加复杂。这使得在不拆开整个应用的前提下,优化应用中的任何单一功能变得更加困难。这也意味着,如果应用中的一个进程需要扩展,那么整个应用也都必须扩展。
在微服务架构中,应用中的每一核心功能独立运行。这样,开发团队可以构建和更新新的组件,以满足不断变化的业务需求,而不必中断整个应用。
面向服务的架构与微服务架构
微服务架构是面向服务的架构(SOA)的一种演进。这两种方法的相似之处在于,它们都将庞大、复杂的应用分解为更易处理的较小组件。由于它们的相似性,人们经常将 SOA 和微服务架构相混淆。二者的主要区别是它们的范围:SOA 是一种企业级的架构方案,而微服务则是应用开发团队的一种实施策略。
微服务架构的优势
- 高度可扩展
- 出色的弹性
- 易于部署
微服务的潜在挑战
- 日志记录:使用分布式系统时,需要利用集中式日志将所有相关信息集中到一处。否则,积累的日志数量将难以招架。
- 监控:必须通过一个集中式视图来了解整个系统的情况,以便找出问题的根源。
- 无法通过本地集成开发环境(IDE)进行远程调试,因为这种方式无法涵盖数十个或数百个服务。不幸的是,关于应该如何进行调试,目前还没有标准答案。
- 扩展:到了部署的时候,对自动化的投入至关重要,因为微服务的复杂性使人工部署变得无能为力