微服务篇 | 青训营

105 阅读3分钟

什么是微服务?

微服务是一种软件架构风格,将一个大型应用程序拆分为一组小型、自治的服务。每个服务都独立运行在自己的进程中,并通过轻量级的通信机制相互协作。

v2-a99ddce97f9066f7d3ebb62ec397cf8a_720w.png

来源:zhuanlan.zhihu.com/p/161277955

微服务架构的目标是将复杂的应用程序拆分为更小、更可管理的部分,以提高开发速度、可伸缩性和可维护性。

微服务通常具有以下特点:

  1. 单一责任:每个微服务关注于实现一个特定的业务功能或服务,具有清晰的边界和独立的职责。
  2. 分布式部署:每个微服务可以独立部署和扩展,可以运行在不同的计算资源上,如物理服务器、虚拟机或容器。
  3. 独立性和自治性:每个微服务都是自治的,拥有自己的数据存储、业务逻辑和用户界面。它可以使用不同的技术栈和开发团队,独立进行开发、测试和部署。
  4. 松耦合通信:微服务之间通过轻量级的通信机制进行交互,如基于HTTP的RESTful API、消息队列或事件总线。
  5. 弹性和可伸缩性:由于每个微服务都是独立部署和扩展的,可以根据实际需求进行水平扩展,以满足不同的负载和流量需求。

服务注册和服务发现:

在微服务架构中,服务注册和服务发现是实现服务之间通信的关键机制。服务注册是指将每个可用的微服务实例注册到一个中心化的服务注册表中,以便其他服务能够发现和使用它。服务发现是指根据特定的需求,从服务注册表中找到符合要求的服务实例的过程。

友情链接: zhuanlan.zhihu.com/p/367854163
www.cnblogs.com/wzh2010/p/1…

服务注册表是一个维护服务信息的中心化组件,它记录了每个微服务的网络位置和其他关键信息。在服务启动时,微服务将自己的网络地址和元数据注册到注册表中。其他微服务可以通过查询注册表来获取所需的服务信息,以便进行通信和交互。

一个常用的工具和技术来实现服务注册和服务发现是etcd。

什么是etcd?

etcd是一个开源的分布式键值存储系统,由CoreOS开发并维护。它被设计用于构建高可用性、可靠性和可扩展性的分布式系统。etcd使用Raft一致性算法来保证数据的一致性和可靠性,并提供了简单的HTTP API用于读写数据。相关文档

etcd的主要特点包括:

  1. 分布式一致性:etcd使用Raft一致性算法来保证数据在集群中的一致性。Raft算法提供了强一致性保证,并能够在节点故障时自动选举新的领导者。
  2. 高可用性:etcd使用多节点复制的方式来提供高可用性。数据在集群中的多个节点之间进行复制,当其中一个节点故障时,其他节点可以继续提供服务。
  3. 快速响应:etcd使用内存存储和异步复制来提高读写操作的性能。它支持高吞吐量的并发读写操作,并能够快速响应客户端请求。

在微服务架构中,etcd通常被用作服务注册和服务发现的后端存储。每个微服务实例在启动时将自己的网络地址和元数据写入etcd中,其他微服务可以通过查询etcd来获取所需服务的信息,实现服务之间的通信和协作。etcd提供了强一致性保证和高可用性,确保注册的服务信息始终是最新和可靠的。