这是我参与「第五届青训营」伴学笔记创作活动的第 10 天。
今天,我主要学习了微服务架构的相关知识,了解他的优缺点及其运行机理,以及他是如何被应用在生产环境的。
一、什么是微服务
自从软件开发兴起,无数开发人员都在探索应该如何安排系统架构,使得其达到性能与费用的最佳节点,且最有利于后续开发。在微服务架构风格出现之前,一般应用于软件开发的是单体架构或分层架构。
单体架构是将整个应用程序作为单个代码块组织的架构,这样的系统通常很难维护和扩展。对应的,分层架构是将应用程序按其功能模块划分为不同的层,例如表示层、业务逻辑层和数据存储层。这样的架构提高了系统的可维护性和可扩展性,但仍然有一定的复杂性。
微服务架构风格的出现是为了解决单体架构和分层架构的不足,并提供了更大的灵活性和可扩展性。在微服务架构中,每个服务都是一个独立的、可重用的单元,并可以使用不同的语言、技术和数据存储来开发。
微服务的关键特征包括:每个服务独立部署和运行,服务间通过轻量级的通信机制进行交互,每个服务都有自己的数据存储,并且可以被独立更新和扩展。
总体而言,微服务架构风格是一种更高效和更灵活的软件开发方式,它可以支持快速发展和持续演进的应用程序。
二、微服务架构原理
微服务架构的原理基于将一个大型应用程序分解为许多独立的服务,每个服务都是一个单独的、可重用的单元。这样的架构有以下几个核心原理:
- 服务独立性:每个服务都是独立的、可重用的单元,可以单独部署和管理。
- 单一职责原则:每个服务都有明确的职责和功能,并且不会影响其他服务的功能。
- 轻量级通信:服务之间通过轻量级的通信机制,例如RESTful APIs或消息队列,进行交互。
- 弹性和可扩展性:微服务架构允许快速地添加或删除服务,以适应业务需求的变化。
- 技术多样性:微服务架构允许使用不同的技术和工具来开发和部署每个服务,从而提高了系统的灵活性。
通过这些原理,微服务架构可以提高应用程序的可维护性和可扩展性,同时降低了开发、测试和部署的复杂度。
三、微服务核心功能
- 服务发布
- 流量治理
- 负载均衡
- 稳定性治理