1、前言
微服务架构是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦,从而降低系统的耦合性,并提供更加灵活的服务支持。围绕业务领域组件来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更加简单。它是一种为了解决某一种场景问题、现状而诞生解决方案。
2、传统架构模式VS微服务架构
传统架构模式:单体式开发,所有前端UI、业务处理、功能都在一起;
优点:
① 开发简单,集中式管理;② 基本不会重复开发;③ 功能都在本地,没有分布式的管理和调用消耗
缺点:
① 效率低:开发都在同一个项目改代码,相互等待,冲突不断;② 维护难:代码功能耦合在一起,团队修改相对较复杂;③ 扩展性不够:无法满足高并发下的业务需求;
微服务架构:有效的拆分应用,实现敏捷开发和部署
3、微服务架构能够解决哪些问题以及面临挑战
解决问题:
(1) 灵活性:将应用程序拆分成多个微服务,每个服务都可以独立部署和升级。实现更加灵活的开发和部署方式,从而更快地响应用户需求。
(2) 可扩展性:实现服务的水平扩展,扩展多实例应对更多请求,应对业务高峰期的流量。
(3) 可维护性:服务都有着明确的业务职责与功能范围界定。这样更容易地维护和修复应用程序的不同部分,而不影响其它业务。
(4) 可测试性:使用微服务可以将应用程序的不同部分拆分成小型服务,每个服务都可以独立测试,保证应用程序的质量。
(5) 技术多样性:使用微服务可以选择不同的技术栈来实现每个服务。这样可以更好地满足不同服务的需求,从而更好地支持应用程序的业务。
面临挑战:
(1) 复杂性:使用微服务架构会增加应用程序的复杂性。由于需要管理和维护多个服务,因此可能会导致更多的出错和难以排查的问题。
(2) 服务间通信:微服务架构中的服务之间需要进行网络通信。这可能会导致网络延迟和性能问题。此外,需要确保服务之间的通信是安全的,例如身份验证和数据加密等。
(3) 数据一致性:使用微服务架构可能会导致数据一致性问题。由于每个服务都可以独立运行,因此需要确保数