分布式注册的中心的实现原理|学习笔记

简介: 快速学习分布式注册的中心的实现原理

开发者学堂课程【精通 Spring Cloud Alibaba分布式注册的中心的实现原理】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/634/detail/10065


分布式注册的中心的实现原理


内容介绍

一、引例

二、注册中心

三、整个微服务的注册中心实现原理

四、服务注册原理实现

 

一、引例

问:

上章中基于数据库形式实现微服务url治理的缺点:维护成本非常高、没有完全绝对实现动态智能,思考是否有更好的方案?

答:

使用微服务中的注册中心

 

二、注册中心

整个微服务架构中最为核心的肯定是注册中心。

1. 概念

注册中心实际就是存放我们整个微服务中的服务的地址信息,能够实现动态感知。(核心思想) 

2. 有哪些?

相当于一个容器,用于存放服务器地址,数据库同理。

注册中心:Dubbo 依赖 Zookeeper、Eureka 、 Consul、Nacos、Redis、数据库

3.面试

面试官常问Nacos与Eureka区别、Eureka和Zookeeper

(其中Nacos结合了Eureka和Zookeeper两者的信息)

 

三、整个微服务的注册中心实现原理

1.步骤

  • 第一步:就是将我们的服务地址信息注册到注册中心中

讲解:

首先选取一个注册中心 Eureka、Nacos 或 Consul,注册中心存放了每个服务器的地址信息,但它并不会存放地址名称和接口,注册中心并不会储存整个完整的服务器,它只会存放 IP 地址和端口号,因为只有这些才会发生改变。

而注册中心的实现是通过会员服务启动时将IP地址和端口号加上服务名称。假设 key为 mayikt-member,而此时的 key 就是会员服务名称,指向的就是有关于会员服务相关的。会员服务就会把IP地址和端口号添加到注册中心中,将其存放起来。

  • 第二步:订单服务使用会员服务名称从注册中心上获得注册信息列表

讲解:

订单服务因为未存放会员服务地址,就需要拿到会员服务名称,再去使用会员服务名称从注册中心上获得注册信息列表。

即通过会员服务中的会员服务名称 mayikt-member 在注册中心获得 IP 地址和端口号(182.168.212.110:8080)。

  • 第三步:获取到地址并且在本地实现 rpc 远程调用其中有很多基础,比如:

HttpClient、rest、openfeign 等

讲解:

订单服务获取到地址后,就会在本地实现 rpc 远程调用,同时 rpc 远程调用会使用许多原客户端 HttpClient、rest、openfeign。

图片1.png

2.会员服务的名词拓展

会员服务在微服务注册中心还有以下的名词:

服务注册:提供服务接口地址信息存放

生产者:提供我们接口被其他的服务调用

消费者:调用接口实现消费

如图图中为订单服务调用会员服务去实现消费,会即员服务为生产者、订单为消费者。

图片2.png

3. 总结

会员服务作为生产者会把当前的 ip 地址和服务端口号,注册到注册中心中,而订单服务作为消费者如果想要通过服务名称在注册中心上去获取调用地址,再在本地实现 rpc 的远程调用。


四、服务注册原理实现

1.生产者启动的时候 key=服务的名称 value ip_和端口号注册到我们的微服务注册中心上

Mayikt-member 192.168.212.110:8080

Mayikt-member 192.168.212.110:8081

(服务地址可能做集群,有多个,因此注册存放服务取地址列表类型是key唯一,列表是list集合类型)

2.注册存放服务取地址列表类型:key唯一,列表是list集合。

Map

{

Mayikt-member:[“192.168.212.110:8080”“192.168.212.110:8081”]

}

3. 我们的消费者从我们注册中心上根据服务名称查询服务地址列表(集合)

Mayikt-member==[“192.168.212.110:8080”“192.168.212.110:8081”]

(根据 Mayikt-member 去获取数组,而消费者获取列表后再采用负载均衡器选择一个地址进行调用)

4. 消费者获取到集群列表之后,采用负载均衡器选择一个地址实现 rpc 远程调用。

(同时要注意是客户端本地做负载均衡,因为本地效率更高)

相关文章
|
2月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
62 0
|
2月前
|
存储 分布式计算 Hadoop
Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
【4月更文挑战第3天】Hadoop【基础知识 01】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)
139 3
|
2月前
|
存储 分布式计算 监控
Hadoop【基础知识 01+02】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
【4月更文挑战第3天】【分布式文件系统HDFS设计原理+特点+存储原理】(部分图片来源于网络)【分布式计算框架MapReduce核心概念+编程模型+combiner&partitioner+词频统计案例解析与进阶+作业的生命周期】(图片来源于网络)
190 2
|
2月前
|
存储 NoSQL 分布式数据库
【Flink】Flink分布式快照的原理是什么?
【4月更文挑战第21天】【Flink】Flink分布式快照的原理是什么?
|
2月前
|
缓存 算法 关系型数据库
深度思考:雪花算法snowflake分布式id生成原理详解
雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求;此外,雪花算法生成ID的速度快,效率高,能有效应对高并发场景,是分布式系统中不可或缺的组件。
300 2
深度思考:雪花算法snowflake分布式id生成原理详解
|
2月前
|
算法 安全
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
150 1
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
|
2月前
|
存储 运维 分布式计算
面经:HDFS分布式文件系统原理与故障排查
【4月更文挑战第10天】本文深入剖析了HDFS的底层原理和面试重点,包括HDFS的架构(NameNode、DataNode、Secondary NameNode)、文件读写流程、高级特性(快照、Erasure Coding、Federation、High Availability)以及故障排查方法。通过HDFS Shell命令示例,加强理解,并对比了HDFS与其他分布式文件系统的优缺点。掌握这些知识将有助于求职者在面试中脱颖而出,应对HDFS相关技术考察。
84 3
|
2月前
|
消息中间件 存储 监控
解析RocketMQ:高性能分布式消息队列的原理与应用
RocketMQ是阿里开源的高性能分布式消息队列,具备低延迟、高吞吐和高可靠性,广泛应用于电商、金融等领域。其核心概念包括Topic、Producer、Consumer、Message和Name Server/Broker。RocketMQ支持异步通信、系统解耦、异步处理和流量削峰。关键特性有分布式架构、顺序消息、高可用性设计和消息事务。提供发布/订阅和点对点模型,以及消息过滤功能。通过集群模式、存储方式、发送和消费方式的选择进行性能优化。RocketMQ易于部署,可与Spring集成,并与Kafka等系统对比各有优势,拥有丰富的生态系统。
350 4
|
2月前
|
存储 供应链 安全
区块链技术原理及应用:深入探索分布式账本技术
【4月更文挑战第30天】区块链,从加密货币的底层技术延伸至多元领域,以其分布式账本、去中心化、不可篡改性及加密技术重塑数据存储与交易。核心组件包括区块、链和节点,应用涵盖加密货币、供应链管理、金融服务等。尽管面临扩展性等挑战,未来潜力无限。
|
2月前
|
缓存 监控 负载均衡
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
65 2

热门文章

最新文章