详解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

相关文章
|
9天前
|
Java Nacos Sentinel
Spring Cloud Alibaba:一站式微服务解决方案
Spring Cloud Alibaba(简称SCA) 是一个基于 Spring Cloud 构建的开源微服务框架,专为解决分布式系统中的服务治理、配置管理、服务发现、消息总线等问题而设计。
119 13
Spring Cloud Alibaba:一站式微服务解决方案
|
7天前
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
|
15天前
|
XML Java 数据格式
Spring Core核心类库的功能与应用实践分析
【12月更文挑战第1天】大家好,今天我们来聊聊Spring Core这个强大的核心类库。Spring Core作为Spring框架的基础,提供了控制反转(IOC)和依赖注入(DI)等核心功能,以及企业级功能,如JNDI和定时任务等。通过本文,我们将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring Core,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
40 14
|
16天前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
31 6
|
13天前
|
XML 前端开发 安全
Spring MVC:深入理解与应用实践
Spring MVC是Spring框架提供的一个用于构建Web应用程序的Model-View-Controller(MVC)实现。它通过分离业务逻辑、数据、显示来组织代码,使得Web应用程序的开发变得更加简洁和高效。本文将从概述、功能点、背景、业务点、底层原理等多个方面深入剖析Spring MVC,并通过多个Java示例展示其应用实践,同时指出对应实践的优缺点。
40 2
|
16天前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
36 5
|
16天前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
28 5
|
22天前
|
JSON 安全 算法
Spring Boot 应用如何实现 JWT 认证?
Spring Boot 应用如何实现 JWT 认证?
49 8
|
29天前
|
存储 人工智能 Java
Spring AI Alibaba 配置管理,用 Nacos 就够了
本文通过一些实操案例展示了 Spring AI Alibaba + Nacos 在解决 AI 应用中一系列复杂配置管理挑战的方案,从动态 Prompt 模板的灵活调整、模型参数的即时优化,到敏感信息的安全加密存储。Spring AI Alibaba 简化了对接阿里云通义大模型的流程,内置 Nacos 集成也为开发者提供了无缝衔接云端配置托管的捷径,整体上极大提升了 AI 应用开发的灵活性和响应速度。
192 13
|
1月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用