详解Nacos的产生与应用 | 带你读《Spring Cloud Alibaba(2019)》之三

简介: 本节介绍了Nacos产生的背景,服务治理基本的概念,服务注册中心的概念,微服务调用接口常用名词,Nacos的基本的介绍以及Nacos的环境的准备。

上一篇:微服务架构演变过程(下) | 带你读《Spring Cloud Alibaba(2019)》之二
下一篇:Nacos如何整合SpringCloud ?| 带你读《Spring Cloud Alibaba(2019)》之四

本文来自于《精通Spring Cloud Alibaba》课程的整理,讲师为余胜军,点击查看视频内容
本文系志愿者整理,供配合学习中心课程使用,不做商业用途。

服务注册与发现nacos

Nacos产生的背景

Nacos分布式注册与发现功能 | 分布式配置中心
产生背景rpc远程调用中,服务的url的治理
Rpc的远程调用框架 HttpClient、gprc、dubbo、rest、openfeign等。

传统的rpc远程调用中存在哪些问题

1、超时的问题
2、安全的问题
3、服务与服务之间URL地址管理

在我们微服务架构通讯,服务之间依赖关系非常大,如果通过传统的方式管理我们服务的url地址的情况下,一旦地址发生变化的情况下,还需要人工修改rpc远程调用地址。

1.png

服务治理基本的概念

每个服务的url管理地址非常复杂,所以这时我们采用服务url治理技术,可以整个实现动态服务注册与发现、本地负载均衡、容错等。

rpc远程调用中,地址中 域名和端口号/调用的方法名称:
域名和端口号/调用的方法名称
192.168.212.110:8080/getUser
方法名称不会改变,但是域名和端口号有可能会改变。

之前的处理方式是把每个服务器地址信息和端口人工存放到数据库表中
Id serviced ip 端口号
Mayikt-member 192.168... 8082
Mayikt-member 192.168... 8081

基于数据库形式实现服务url治理:

缺点:维护成本非常高、没有完全绝对实现动态智能

那么思考是否有更好的方案?
微服务中的注册中心。

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

注册中心:实际就是存放我们整个微服务中的服务的地址信息,能够实现动态感知。
注册中心:Dubbo依赖Zookeeper、Eureka、Consul、Nacos、Redis、数据库

3.png

服务注册中心的概念

每次调用该服务如果地址直接写死的话,一旦接口发生变化的情况下,这时候需要重新发布版本才可以该接口调用地址,所以需要一个注册中心统一管理我们的服务注册与发现。

注册中心:我们的服务注册到我们注册中心,key为服务名称、value为该服务调用地址,该类型为集合类型。Eureka、consul、zookeeper、nacos等。
服务注册:我们生产者项目启动的时候,会将当前服务自己的信息地址注册到注册中心。

服务发现: 消费者从我们的注册中心上获取生产者调用的地址(集合),在使用负载均衡的策略获取集群中某个地址实现本地rpc远程调用。

微服务调用接口常用名词

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

生产者:提供接口被其他服务调用
消费者:调用生产者接口实现消费
服务注册:提供服务接口地址信息存放
服务发现:

4.png

服务注册原理实现:

1、生产者启动的时候,key=服务的名称 value= ip 和端口号,注册到我们的微服务注册中心上。
Mayikt-member 192.168.212.110:8080
Mayikt-member 192.168.212.110:8081

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

May<Key,List(String)>
{
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"]

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

Nacos的基本的介绍

Nacos可以实现分布式服务注册与发现/分布式配置中心框架。
默认的端口号是8848。
官网的介绍: https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos的环境的准备

Nacos可以在linux/windows/Mac版本上都可以安装
具体安装教程地址:https://nacos.io/zh-cn/docs/quick-start.html

登录默认的账号和密码是 nacos nacos ,登录之后显示如下的界面:
5.png

手动实现服务注册与发现

1.实现服务注册
发送post请求:
'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
2.实现服务发现
http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName
详细步骤操作:https://nacos.io/zh-cn/docs/quick-start.html

相关文章
|
10天前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
20天前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
380 1
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
3月前
|
Dubbo 数据可视化 Java
整合SpringBoot、Dubbo与Nacos:一个快速入门教程
经过上述步骤,消费者模块成功引用了生产者提供的服务,并通过Spring Web将服务映射到了特定的URL路径上。消费者模块成功地调用并展示了生产者提供的数据,并在不移除特定依赖项的情况下确保了系统的正常运行。
|
6月前
|
人工智能 Java API
MCP协议重大升级,Spring AI Alibaba联合Higress发布业界首个Streamable HTTP实现方案
本文由Spring AI Alibaba Contributor刘军、张宇撰写,探讨MCP官方引入的全新Streamable HTTP传输层对原有HTTP+SSE机制的重大改进。文章解析Streamable HTTP的设计思想与技术细节,并介绍Spring AI Alibaba开源框架提供的Java实现,包含无状态服务器模式、流式进度反馈模式等多种场景的应用示例。同时,文章还展示了Spring AI Alibaba + Higress的完整可运行示例,分析当前实现限制及未来优化方向,为开发者提供参考。
|
6月前
|
人工智能 JSON API
Nacos 发布 MCP Registry,实现存量应用接口“0改动”升级到 MCP 协议
MCP(Model Calling Protocol)生态快速发展,Nacos作为MCP Registry,通过与Higress网关结合,实现“0代码”将存量API转化为MCP协议接口。本文详细解析了Nacos如何快速构建MCP Server,包括工具列表暴露、协议转换原理及优势。同时,通过高德API实例演示“0改动”适配流程。Nacos 3.0正式发布,定位AI应用服务管理平台,支持动态服务发现与配置管理,助力MCP生态发展。欢迎参与社区共建!
1130 1
|
2月前
|
人工智能 Java 开发者
邀您参与 “直通乌镇” Spring AI Alibaba 开源竞技挑战赛!
邀您参与 “直通乌镇” Spring AI Alibaba 开源竞技挑战赛!