微服务分布式架构 第二章 分布式的注册中心


Consul的相关术语
node:节点,需要 Consul 注册发现或配置管理的服务器。 agent:Consul 中的核心程序,它将以守护进程的方式在各个节点运行,有 client 和 server 启动模式。 每个 agent 维护一套服务和注册发现以及健康信息。 client:agent 以 client 模式启动的节点。在该模式下,该节点会采集相关信息,通过 RPC 的方式向 server 发送。 server:agent 以 server 模式启动的节点。一个数据中心中至少包含 1 个 server 节点。不过官方建议使 用 3 或 5 个 server 节点组建成集群,以保证高可用且不失效率。server 节点参与 Raft、维护成员信息、 注册服务、健康检查等功能。 Consensus,共识协议,Consul使用它来协商选出 leader。 Gossip:Gossip是一种去中心化、容错并保证最终一致性的协议。因为Consul 是建立在 Serf注册中心之 上的,所以它提供完整的 gossip协议。 members:成员,对 Consul 成员的称呼。提供会员资格,故障检测和事件广播。 datacenter:数据中心,相当于整个Consul集群的名称,可以通过启动Consul server端来设置datacenter 名称。
5. 在Consul注册中心集群的某Consul注册中心节点处,使用K/V存储保存相关数据,创建Spring Boot工 程,获取保存在此Consul注册中心节点处的数据,并通过接口返回给前台。
微服务分布式第二课的总结
在本章节中
《2.3【实例】利用Spring Cloud集成Consபைடு நூலகம்l创建第一个微服务分布式项目》小节初步认识了Consul注册 中心,并且搭建了Consul注册中心的集群,让Consul注册中心可以更加良好的运行。
在得到了其它微服务的信息后,下一章中将使用Feign框架通过Consul注册中心调用其它微服务接口。
1. 搭建Consul注册中心集群(非dev模式),集群中至少有3台Server端(Linux系统两台,Windows系统 1台)。
2. 创建Spring Boot工程,使其注册在Consul注册中心集群上(只注册一个地址),判断此时是否所有 Consul注册中心节点都可以得到该Spring Boot工程的相关信息。
Consul的常用配置
1. -data –dir:指定agent储存状态的数据目录,是所有agent都必须的使用的配置。 2. -config-dir:指定service的配置文件和检查定义所在的位置。 3. -config-file:指定一个要装载的配置文件。 4. -bootstrap:bootstrap模式下服务器可以自行选拔成Leader。 5. -node:指定节点在集群中的名称。 6. -bind:指明节点的IP地址。内部集群通信应绑定到的地址。 7. -server:指定该节点为server。 8. -client:将客户端接口(包括HTTP和DNS服务器)绑定到的地址。 9. -join:将节点加入到集群。
在本地agent增加一个新的服务项,使用PUT方法传输一个json格式的 数据
注销一个本地agent的服务项
微服务分布式第二课的实验
1. 【实例】创建第一个微服务分布式项目 2. 【实例】通过代码获取Consul中的服务信息 3. 【实例】Spring Cloud操作Consul的K/V存储
微服务分布式第二课的习题
ip:8500/v1/agent/service/register
ip:8500/v1/agent/service/deregister/<serviceID>
注销一个本地agent的检查项 设置一个本地检查项的状态为passing 设置一个本地检查项的状态为warning 设置一个本地检查项的状态为critical
《2.4【实例】通过代码获取Consul中的服务信息》小节中用Spring Cloud整合了Consul进行注册并获得 其它服务的注册地址。
《2.5【实例】Spring Cloud操作Consul的K/V存储》小节中用Spring Cloud整合了Consul中的Config功能, 可以通过Java代码获取到Consul上的配置参数,方便多个微服务工程管理相同的配置信息。
Consul主要功能如下所示 (1)服务发现:服务可以通过HTTP的方式找到其它所依赖于Consul的服务。 (2)健康检查:Consul可以检查服务是否正在正常响应。 (3)K/V存储:Consul提供了简易的http接口来满足用户的动态配置。 (4)安全业务通信:Consul可以生成和分发服务的TLS证书,以建立相互的TLS连 接。用于定义允许服务进行相互通信。 (5)多数据中心:Consul源生支持多数据中心。不用用户担心构建额外的抽象层 才能扩展到多个区域。
consul中常见的HTTP API
HTTP地址 ip:8500/v1/agent/members
API功能释义 列出所有的members
ip:8500/v1/agent/checks
返回本地agent注册的所有检查(包括配置文件和HTTP接口)
ip:8500/v1/agent/reload ip:8500/v1/agent/leave ip:8500/v1/agent/force-leave/<node>> ip:8500/v1/agent/self ip:8500/v1/agent/services ip:8500/v1/agent/join/<address>
Consul
Consul是一个服务网格(service mesh)解决方案,是一个分布式高可用的服务系统 发现与配置工具、中间件,是HashiCorp公司研发的。Consul以go语言进行编写, 用Http的方式对外提供服务,支持多数据中心,支持K/V键值对存储。开箱即用,可 以构建完整的服务网格。官网地址为www.consul.io
3. 创建Spring Boot工程,使其注册在Consul注册中心集群上(只注册一个地址),此时强行关掉该工程, 记录所有Consul注册中心节点上的相关信息(包括Linux内部信息、命令行列表、日志)。
4. 创建Spring Boot工程,使其注册在Consul注册中心集群上,并获得该注册中心集群内其他Spring Boot 工程的相关数据。
重新加载agent 优雅退出和关闭 强制退出和关闭 返回本地agent的配置和成员信息 返回本地agent注册的所有 服务 触发本地agent加入node
ip:8500/v1/agent/check/register
在本地agent增加一个检查项,使用PUT方法传输一个json格式的数据
ip:8500/v1/agent/check/deregister/<checkID> ip:8500/v1/agent/check/pass/<checkID> ip:8500/v1/agent/check/warn/<checkID> ip:8500/v1/agent/check/fail/<checkID>
注册中心
在分布式服务框架Dubbo流行时,Dubbo是用Zookeeper来进行注册服务,负责提供互相调用的地址。 ZooKeeper是一个分布式的、开放源码的应用程序协调服务,是Google的Chubby一个开源的实现,也同 样是Hadoop和Hbase的重要组件。ZooKeeper是一个为分布式应用提供一致性服务的软件,提供的功能 包括配置维护、域名服务、分布式同步、组服务、分布式独享锁等相应功能。 刚开始学习分布式的人总会迷茫究竟什么样的架构是分布式架构,其实只要两个服务注册在一个注册中心 上,已经可以算是初步的分布式了。可以通过注册中心获得其它项目提供的服务,并从分布式获得其它项 目目前是否良好运行的状态等等。然后逐渐从注册中心辅助架构出整套程序。注册中心相当于“通信录”, 虽然无法直接拨打电话(调用服务),但是会提供其它服务的地址和状态等相关信息。
合集下载

分布式微服务架构设计原理

分布式微服务架构设计原理

分布式微服务架构设计原理最近在研究分布式微服务架构设计原理,发现了一些有趣的原理,今天就来和大家好好聊聊。

咱们先从生活中常见的事儿说起吧。

想象下一座超级大的商场,里面有各种各样的店铺,比如服装店、餐厅、电影院等等,每个店铺都有自己独立的运营和管理方式,但是呢又都在这个大商场这个整体环境里。

这就有点像分布式微服务架构中的一个个微服务啦。

每个微服务就像一个独立的小店铺,各自负责自己的业务逻辑,像用户注册登录这一块可能是一个微服务,订单处理是另一个微服务。

这里面就涉及到一个很重要的原理,解耦。

打个比方,如果把一个大型的软件系统比作一辆汽车,传统的架构就像是那种老式汽车各个部件紧紧绑定在一起,一旦其中一个部件出问题,比如发动机,可能刹车也跟着不好使了,整个车就瘫痪了。

而分布式微服务架构呢,就像是现在那种高科技汽车,发动机、刹车、那什么智能驾驶系统等等都是可以相对独立工作和升级的模块,某个模块出问题,不影响其他模块正常运行。

说到这里,你可能会问,这么多独立的微服务那怎么通信呢?这就不得不提到消息队列啦。

这就好比邮递员送信,每个微服务就是一户户人家,消息队列把各个微服务之间要传递的数据像信件一样准确送到地方。

像在电商系统里,库存微服务和订单微服务通信,就通过消息队列通知对方库存量的变化或者新订单的情况。

老实说,我一开始也不明白为什么要这么麻烦地做成分布式微服务架构。

但是当软件系统变得超级大,而且经常要迭代更新的时候就看出优势了。

比如说一个外卖软件,用户下单、商家接单、骑手送货、订单状态跟踪等等如果都在一个超级大的程序里面,每次改动一点点功能就像在拥挤的大仓库里找东西一样困难。

但是分成微服务后,哪里有问题改哪里,就轻松多了。

另外一个原理就是服务的发现与注册。

再拿商场举例,每个店铺(微服务)进入商场这个整体环境,都要有个记录和标记的地方(注册中心),这样其他店铺或者顾客(其他微服务或者客户端)能找到它,知道它是干嘛的,怎么走过去(调用接口)。

微服务网关与注册中心

微服务网关与注册中心

前端资源
Nginx (HTML)
Tomcat (JSP)
浏览器
负载 均衡
REST请求
服务服网务服关网务关网关
服务寻址
服务路由
Java微服务1
Rest API
RPCAP I
服务注册中心
服务注册
RPC接口调用
服务注册
JRPCAP I
功能结构图
数据传输层
动态路由 服务熔断
服务层 注册中心
微服务网关与注册中心
2018年10月
目录
01
微服务
02
服务网关
03
服务注册中心
01 微服务
微服务是什么
微服务是一种将单个应用程序作为一组小型服务开发的方法,每个应用程序都在独立的进程中运行, 并使用轻量级机制进行通信,通常是一个HTTP资源API。这些服务是围绕业务能力构建的,并由完全自 动化的部署机制独立部署。这些服务尽量避免集中管理,它们可以用不同的编程语言编写,并使用不同 的数据存储技术。
客户端
服务网关
权限分配后
为指定客户端分配权限
服务1
服务2
服务提供者
服务网关 – 服务权限
服务网关 – 服务权限
当授权成功后,客户端在请求网关时, 需要在HTTP请求头中携带对应的客户 端编码和Token,请求才会被转发到对 应的服务。
请求头示例: X-CTPGateway-Authenticate-AppId: Top X-CTPGateway-Authenticate-Token: 1c4c197-638b-xxxxx-xxx
微服务不是具体技术、框架,是一种架构思想风格。
微服务架构特点
独立运行、 部署

服务注册中心面试题目(3篇)

服务注册中心面试题目(3篇)

第1篇一、基础知识1. 什么是服务注册中心?它在微服务架构中扮演什么角色?服务注册中心是一种分布式服务发现和配置管理的解决方案。

在微服务架构中,服务注册中心负责管理服务的注册和发现,使得服务消费者能够动态地发现和访问服务提供者。

服务注册中心的主要作用包括:(1)服务注册:服务提供者在启动时将自己的信息注册到注册中心,包括服务名称、IP地址、端口等。

(2)服务发现:服务消费者通过注册中心获取服务提供者的信息,包括服务名称、IP地址、端口等,实现服务的动态发现。

(3)服务配置:服务注册中心可以存储服务的配置信息,如数据库连接、缓存配置等,服务消费者可以根据需要获取相应的配置信息。

2. 服务注册中心有哪些常见的实现方式?服务注册中心常见的实现方式包括:(1)基于数据库:通过数据库存储服务信息,如Consul、Etcd等。

(2)基于内存:通过内存存储服务信息,如Eureka、Zookeeper等。

(3)基于文件系统:通过文件系统存储服务信息,如Nacos等。

3. 服务注册中心的主要功能有哪些?服务注册中心的主要功能包括:(1)服务注册:服务提供者将自身信息注册到注册中心。

(2)服务发现:服务消费者从注册中心获取服务提供者的信息。

(3)服务健康检查:监控服务提供者的状态,如心跳检测、服务降级等。

(4)服务配置:存储和读取服务的配置信息。

(5)服务监控:收集和展示服务的性能数据。

二、Eureka1. 什么是Eureka?它与其他服务注册中心有何区别?Eureka是Netflix开源的、基于Java实现的服务注册中心,它与其他服务注册中心的区别如下:(1)实现语言:Eureka基于Java实现,其他服务注册中心可能基于其他语言实现。

(2)功能:Eureka提供的服务注册、服务发现、服务配置等功能与其他服务注册中心类似。

(3)社区活跃度:Eureka社区活跃,拥有丰富的文档和社区支持。

2. Eureka的主要组件有哪些?Eureka的主要组件包括:(1)Eureka Server:服务注册中心,负责服务注册、服务发现、服务配置等。

zookeeper作为注册中心的原理

zookeeper作为注册中心的原理

zookeeper作为注册中心的原理ZooKeeper作为注册中心的原理随着微服务架构的流行,注册中心作为微服务架构中的关键组件之一,起到了服务注册与发现的重要作用。

而ZooKeeper作为一种高性能的分布式协调服务,被广泛应用于分布式系统中的注册中心。

ZooKeeper的原理是基于ZAB(ZooKeeper Atomic Broadcast)协议实现的。

ZAB协议是一种基于原子广播的一致性协议,用于保证分布式系统中数据的强一致性。

ZAB协议将整个分布式系统划分为一个Leader和多个Follower组成的集群,Leader负责处理客户端的写请求,Follower负责复制Leader的数据。

在ZooKeeper中,每个节点都可以作为一个Leader或Follower,通过选举算法选举出一个Leader节点。

Leader节点负责处理客户端的写请求,并将写操作广播给所有的Follower节点,Follower 节点接收到广播后,将数据存储在本地,并向Leader节点发送确认消息。

当Leader节点接收到大多数Follower节点的确认消息后,就认为写操作已经达到了一致性,并将结果返回给客户端。

在注册中心的应用场景中,ZooKeeper作为注册中心的角色是Follower。

当微服务启动时,会将自己的信息注册到ZooKeeper中,包括服务名称、IP地址、端口号等。

同时,ZooKeeper会将这些信息存储在集群中的多个节点上,实现数据的高可用性和容错性。

当有新的微服务启动或下线时,ZooKeeper会及时更新注册信息,以便其他微服务能够发现和调用。

除了服务注册和发现外,ZooKeeper还提供了watch机制,用于监听注册信息的变化。

当注册信息发生变化时,ZooKeeper会通知所有对该信息感兴趣的微服务,以便它们能够及时更新自己的调用列表。

ZooKeeper还提供了临时节点的功能,用于解决微服务宕机或网络故障等问题。

微服务架构:使用Consul实现服务注册和服务发现

微服务架构:使用Consul实现服务注册和服务发现

微服务架构:使⽤Consul实现服务注册和服务发现参考:、、备注:K8S⾃带服务注册和发现注册中⼼注册中⼼是什么注册中⼼可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。

在分布式架构中,服务会注册到这⾥,当服务需要调⽤其它服务时,就到这⾥找到服务的地址,进⾏调⽤。

功能:1. 服务注册表:服务注册表是注册中⼼的核⼼,它⽤来记录各个微服务的信息,例如微服务的名称、IP、端⼝等。

服务注册表提供查询API和管理API,查询API⽤于查询可⽤的微服务实例,管理API⽤于服务的注册与注销。

2. 服务注册与发现:服务注册是指微服务在启动时,将⾃⼰的信息注册到注册中⼼的过程。

服务发现是指查询可⽤的微服务列表及⽹络地址的机制。

3. 服务检查:注册中⼼使⽤⼀定的机制定时检测已注册的服务,如发现某实例长时间⽆法访问,就会从服务注册表移除该实例优点1. 解耦:服务消费者个服务提供者解耦,各⾃变化,不互相影响2. 扩展:服务消费者和服务提供者增加和删除新的服务,对于双⽅没有任何影响3. 中介者设计模式:这是⼀种多对多关系的典范参考:ZooKeeper [ˈzuːkiːpər] 是⽤于维护配置信息,命名,提供分布式同步和提供组服务的集中式服务。

所有这些类型的服务都以某种形式被分布式应⽤程序使⽤。

每次实施它们时,都会进⾏很多⼯作来修复不可避免的错误和竞争条件。

由于难以实现这类服务,因此应⽤程序通常最初会在其上跳过,从⽽使它们在发⽣更改时变得脆弱且难以管理。

即使部署正确,这些服务的不同实现也会导致管理复杂。

Consul是什么Consul是⼀个⽤来实现分布式系统的服务发现与配置的开源⼯具。

是由go语⾔开发。

他主要由多个组成部分:服务发现:客户端通过Consul提供服务,类似于API,MySQL,或者其他客户端可以使⽤Consul发现服务的提供者。

使⽤类似DNS或者HTTP,应⽤程序和可以很轻松的发现他们依赖的服务。

分布式系统中的服务发现与服务注册

分布式系统中的服务发现与服务注册

分布式系统中的服务发现与服务注册服务发现和服务注册在分布式系统中扮演着非常重要的角色。

随着分布式系统的快速发展,系统中的各个组件数量庞大且动态变化,如何有效地发现和注册这些服务成为了一个亟待解决的问题。

本文将介绍分布式系统中的服务发现和服务注册的相关概念、原理以及常见的实现方式。

一、概述在分布式系统中,各个组件(服务)相互之间通过网络进行通信和协作。

在这样的环境下,系统中的某个组件需要与其他组件进行交互时,首先需要找到对应的服务实例。

服务发现和服务注册就是解决这一问题的核心机制。

二、服务发现服务发现是指在分布式系统中,动态地找到可用的服务实例的过程。

服务发现的过程通常分为以下几个步骤:1. 注册服务:服务提供者在启动时向服务发现机制注册自己提供的服务,包括服务的名称、地址、版本号等信息。

2. 服务查询:服务使用者通过服务发现机制查询所需服务的信息,如服务名称、版本号等。

3. 服务发现:服务发现机制根据查询条件,从已注册的服务中找到与之匹配的服务实例,并返回给服务使用者。

4. 服务调用:服务使用者通过获取的服务实例信息,使用合适的通信方式与服务提供者进行交互。

常见的服务发现实现方式包括:1. 基于中心化的注册中心:通过引入一个中心化的服务注册与发现机制,服务提供者将自己的信息注册到该中心服务,服务使用者通过查询中心服务获取可用的服务实例。

常见的注册中心方案有ZooKeeper 和Eureka等。

2. 基于点对点的服务发现:服务提供者将自己的信息广播到各个服务使用者所在的网络中,服务使用者通过监听网络消息实现服务发现和调用。

常见的方案有Consul和etcd等。

以上两种方式各有优劣,根据具体场景和需求选择适合的实现方式。

三、服务注册服务注册是指将服务提供者的信息注册到服务发现机制中的过程。

注册的信息包括服务的主机地址、端口号、服务名称、版本号等。

服务注册的目的是将服务的信息集中管理,并使得服务消费者可以方便地查询到可用的服务实例。

nacos配置中心、注册中心的理解

Nacos配置中心、注册中心的理解一、概述Nacos是一个开源的配置中心和服务注册发现组件,由阿里巴巴公司开发和维护。

它具有强大的管理能力、易用的API和高度灵活的架构,可以帮助开发人员自动化构建和管理云原生应用。

二、配置中心的理解1. 什么是配置中心配置中心是指集中管理配置信息的地方,包括应用程序的各种配置信息,如数据库连接信息、日志级别、系统参数等。

Nacos配置中心能够帮助分布式系统实现配置的统一管理和动态更新,提高了系统的可维护性和灵活性。

2. 配置中心的优势Nacos配置中心具有以下优势:- 集中管理:所有配置信息都存储在配置中心,方便进行集中管理和统一调配。

- 动态更新:配置中心支持实时动态更新配置信息,无需重启应用程序。

- 版本控制:配置中心支持配置信息的版本控制,可以回滚到历史版本。

- 监控报警:可以对配置信息进行监控和报警,及时发现配置变更引发的问题。

3. 配置中心的使用使用Nacos配置中心可以通过以下步骤实现:- 将应用程序的配置信息注册到Nacos配置中心。

- 应用程序启动时,从Nacos配置中心获取最新的配置信息。

- 配置中心支持监听配置的变化,当配置发生变化时,通知应用程序更新配置。

三、注册中心的理解1. 什么是注册中心注册中心是指用于存储和管理各种微服务实例的地方,包括微服务的IP位置区域、端口号、健康状态等信息。

Nacos注册中心可以为微服务提供服务注册和发现的功能,实现了微服务架构的基本功能。

2. 注册中心的优势Nacos注册中心具有以下优势:- 服务注册:微服务实例可以将自己的信息注册到注册中心,使得其他微服务可以发现和调用自己。

- 服务发现:微服务可以从注册中心获取其他微服务的信息,实现服务之间的相互调用。

- 负载均衡:注册中心可以根据负载均衡算法,将请求分发给多个微服务实例,实现负载均衡。

- 故障转移:注册中心可以监控微服务的健康状态,并在发现故障时进行自动的故障转移。

注册中心的原理

注册中心的原理注册中心的原理一、概述注册中心是分布式系统中的一个重要组件,用于管理服务提供者和服务消费者之间的关系。

它可以协调服务提供者和服务消费者之间的通信,并提供负载均衡和故障转移等功能。

本文将详细介绍注册中心的原理及其实现方式。

二、基本原理1. 注册服务提供者启动时,将自己的信息(如IP地址、端口号、服务名等)注册到注册中心上;服务消费者启动时,向注册中心订阅所需服务。

注册中心将这些信息存储在自己的内存或数据库中。

2. 发现当服务消费者需要调用某个服务时,先向注册中心发起查询请求。

注册中心根据消费者请求的服务名,在已经注册的服务列表中查找对应的可用服务提供者列表,并返回给消费者。

3. 路由当有多个可用的服务提供者时,需要进行负载均衡。

负载均衡算法可以在客户端或服务器端实现。

常见的负载均衡算法有轮询、随机、加权轮询等。

4. 故障转移如果某个服务提供者出现故障,即无法正常提供服务时,注册中心会及时更新自己的服务列表,将该服务提供者从列表中删除。

如果某个消费者正在调用该服务,注册中心会返回一个错误信息或尝试将请求路由到其他可用的服务提供者上。

三、实现方式1. 基于ZookeeperZookeeper是一个分布式协调框架,可以用于实现注册中心。

它提供了高可用性、一致性和可靠性等特性,可以解决分布式系统中的各种问题。

在Zookeeper中,每个节点都可以作为一个临时节点注册到Zookeeper上,当节点离线时会自动删除。

这样就可以实现服务提供者和消费者的动态注册和发现。

2. 基于EurekaEureka是Netflix开源的一款基于RESTful的服务治理组件,可以用于实现注册中心。

它采用了AP(可用性与分区容忍性)模型,在数据一致性和可靠性之间做出了权衡。

Eureka具有高可用、易扩展、低延迟等特点,并且与Spring Cloud集成良好。

3. 基于ConsulConsul是HashiCorp开源的一款分布式系统工具包,其中包含了服务发现、配置管理和健康检查等功能,可以用于实现注册中心。

分布式微服务技术架构设计

分布式微服务技术架构设计随着互联网的高速发展,分布式微服务架构已经成为当今软件开发的主流趋势。

传统的单体架构愈发难以应对日益复杂的业务需求,而分布式微服务架构能够更好地满足企业的业务需求,提升系统的可伸缩性、稳定性和可维护性。

本文将探讨分布式微服务技术架构的设计原则、核心概念以及实现方式。

一、分布式微服务技术架构的设计原则1.拆分原则:将单体架构拆分为若干个微服务,每个微服务只关注一个小而独立的业务功能,尽可能减小微服务的复杂度。

2.服务自治原则:每个微服务都应该有自己的数据库、业务逻辑和API接口,独立于其他微服务而存在。

3.去中心化原则:避免单一点的故障影响整个系统,将服务和数据分散到不同的节点上,构建去中心化的架构。

4.弹性设计原则:系统应该具备弹性,能够根据实际负载情况动态调整资源,确保系统的高可用性和高性能。

5.易于扩展原则:系统应该易于扩展,可以根据业务需求快速增加或减少节点,实现无缝的水平扩展。

6.服务治理原则:通过服务注册中心、服务发现、负载均衡等机制实现服务的发现、调用和管理,确保分布式系统的稳定性和可靠性。

二、分布式微服务技术架构的核心概念1.微服务:微服务是一种独立且小型的服务单元,可以独立部署、独立运行,并通过API接口进行通信。

每个微服务都可以独立开发、测试和部署。

2. 服务发现:服务之间需要通过服务发现机制找到对方,目前比较流行的服务发现工具有 Consul、Etcd 和 Zookeeper等。

3.负载均衡:负载均衡用于分发请求到多个节点,以避免单一节点的负荷过重,常用的负载均衡算法有轮询、随机、加权轮询和一致性哈希等。

4. 服务网关:服务网关是系统的入口,负责接收外部请求,进行路由、转发、负载均衡和安全处理,常用的服务网关包括 Zuul、Nginx 和Kong等。

5. 分布式配置管理:分布式系统的配置信息需要集中管理,可使用配置中心来实现,如 Spring Cloud Config。

微服务应用的基本结构与核心组件

微服务应用的基本结构与核心组件
微服务应用的基本结构与核心组件包括以下部分:
1.服务注册与发现:服务的提供方必然要进行注册,将自己的地
址和各种字节信息提供出来。

然后服务的调用方从这个组件上正确的发现目标服务。

2.服务注册:服务生产者启动时,向服务注册中心注册自己提供
的服务;服务消费者启动时,在服务注册中心订阅自己所需要的服务;消费者从提供者中调用服务。

3.服务发现:通过注册中心,获取到注册到其中的服务实例的信
息,通过这些信息去请求它们提供的服务。

4.负载均衡:当多个服务提供者时,可以根据负载均衡算法,比
如:如简单轮询、随机连接等,自动地选择需要调用的服务地址。

5.服务熔断:服务熔断的实现,大体流程是对于熔断机制的实现,
设计了三种状态:熔断关闭状态(Closed)服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制。

6.服务网关:是连接内外的大门。

主要有以下作用,首先网关会
对外屏蔽内部服务的一些细节,比如后台程序的升级。

也有路由的功能,可以将外部的请求反向映射到内部具体某个微服务去。

还可以做一些限流和容错,监控日志等功能。

可以说,服务网关的作用非常大,要对所有的请求进行处理。

7.分布式配置中心:将本地化的配置中心化,提供统一的配置管
理服务。

总的来说,微服务的核心在于服务的发现、注册、路由、熔断、降级、分布式配置等,各个组件互相配合共同维持微服务的正常运转。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档