Nacos 注册中心的使用场景 | 学习笔记

简介: 快速学习 Nacos 注册中心的使用场景,介绍了 Nacos 注册中心的使用场景系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【微服务实战-服务注册中心 - Nacos Nacos 注册中心的使用场景】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/619/detail/9430


Nacos 注册中心的使用场景

 

内容简介:

一、在 Spring Cloud 中使用 Nacos 作为注册中心

二、在 Dubbo 中使用 nacos 作为注册中心


一、在 Spring Cloud 中使用 Nacos 作为注册中心

通过实现一个简单的 echo server,演示如何在 spring cloud 项目中启用 nacos 的服务注册与发现功能。

1.添加 maven 依赖

只需要引入 spring cloud 阿里巴巴 nacos  discovery 依赖就可以支持 nacos 注册中心。

需要说明的是由于 spring cloud 阿里巴巴进行了仓库的迁移,所以 maven 依赖以spring cloud 阿里巴巴官方文档为准。

org.springframework.cloud

spring-cloud-starter-alibaba-nacos-discovery    

${latest.version}

Spring cloud version

Spring cloud alibaba version

Nacos version

Spring cloud greenwich

0.9.0.RELEASE

1.0.0

Spring cloud finchley

0.2.2.RELEASE

1.0.0

Spring cloud edgware

0.1.2.RELEASE

1.0.0

2.配置 provider 端

(1)在 application.properties 中配置 Nacos Server 地址:

server.port=8070

spring.application.name=service-provider

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

(2)通过 Spring Cloud 原生注解@EnableDiscoveryClient 开启服务注册发现功能: @SpringBootApplication

@EnableDiscoveryClient

public class NacosProviderApplication {

public static void main(String[] args){

SpringApplication.run(NacosProviderApplication.class, args):


@RestController

class EchoController {    

@RequestMapping(value = "/echo/{string}", method =        

RequestMethod.GET  public String echo(@PathVariable String string){

return "Hello Nacos Discovery " + string;

}

}

代码主要关注的是 echo 支持一个 echo 的 get 方法,支持训参数的传入,同时会返回 hello nacos discovery 和传入的参数组合的一个返回结果

3.配置 onsumer 端:

(1) 在 application.properties 中配置 Nacos Server 地址:

(2) 通过 Spring Cloud 原生注解@EnableDiscoveryClient 开启服务注册发现功能:

@SpringBootApplication

@EnableDiscoveryClient

public class NacosProviderApplication {

public static void main(String[] args){

SpringApplication.run(NacosProviderApplication.class, args):

@RestController

class EchoController {

@RequestMapping(value = "/echo/{string}", method =        

RequestMethod.GET  public String echo(@PathVariable String string){

return "Hello Nacos Discovery " + string;

}

在代码中创建了一个 test controller 提供 htp 服务,同时有一个 echo 方法,echo 方法的返回值是另一个服务 sever provider 对应的 echo 方法的返回值 

4.启动 ProviderApplication 和 ConsumerApplication

调用 https://localhost:8080/echo/2018,返回内容为 Hello Nacos Discovery 2018


二、在 Dubbo 中使用 nacos 作为注册中心

1.引入 maven 依赖

<dependency>

<groupld>com.alibaba</groupld>

<artifactld>dubbo-registry-nacos</artifactld>

<version>0.0.2</version>

</dependency>

<dependency>

<groupld>com.alibaba.nacos</groupld>      <artifactld>nacos-client</artifactld>  

<version>1.0.1</version>

</dependency>

<dependency>

<groupld>com.alibaba</groupld>  

<artifactld>dubbo</artifactld>  

<version>2.6.5</version>

</dependency>

这里有三个依赖,第一个是 dubbo-registry-nacos 依赖,这个依赖主要与 duboo groupld 结合,来调用 nacos gloupld 进行服务注册与发现。

第二个是 nacos-client 依赖,这个依赖是真正与 nacos 服务端进行通讯的依赖。第三个是 dubbo 与客户端的依赖 

2.配置 provider 端

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans'

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/ dubbo" xsi:schemalocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://dubbo.apache.org/schema/dubbohttp://dubbo.apache.org/schema/dubbo/dubbo.xsd">

<!--提供方应用信息,用于计算依赖关系>

<dubbo:application name="dubbo-provider-xml-demo"f>

<!-暴露的服务,将会注册到Nacos上>

<dubbo:service interface-"com.alibaba.dubbo.demo.DemoService" ref='demoServicelocal' version=*1.0.o"/>  

<!-暴露的端口-->

<dubbo:protocol name="dubbo" port="20881"/>

<!使用Nacos注册中心->

<dubbo:registry address="nacos://127.0.0.1:8848"/>  

</beans>

3.查看服务注册情况:

通过启动 provider 端就可以通过 nacos 控制台看到已经注册好的 dubbo 服务。

相关文章
|
3月前
|
Java Nacos 数据库
使用 nacos 搭建注册中心及配置中心
使用 nacos 搭建注册中心及配置中心
79 5
|
3月前
|
NoSQL Java Nacos
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
SpringCloud集成Seata并使用Nacos做注册中心与配置中心
79 3
|
9天前
|
Kubernetes Nacos 容器
nacos注册不上
我正在使用开源的Nacos,并已在Kubernetes中部署了Nacos服务,通过端口映射可在集群外访问Nacos控制台。Kubernetes使用NodePort类型暴露了8848、9848、9849、7848和9555端口,但在尝试注册时遇到问题,出现“Client not connected, current status: STARTING”的错误,导致启动失败。
|
21天前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
2月前
|
Cloud Native Java Nacos
微服务注册中心-Nacos概述
该博客文章提供了对Nacos的全面概述,包括其基本介绍、与Spring Cloud集成的优势、主要功能以及如何在Spring Cloud Alibaba项目中作为服务注册中心使用Nacos。文章解释了Nacos是一个动态服务发现、配置管理和服务管理平台,支持服务发现、健康监测、动态配置、DNS服务和元数据管理。还介绍了如何下载和启动Nacos服务器,以及如何将微服务注册到Nacos中,包括修改pom.xml文件引入依赖、配置application.properties文件和使用@EnableDiscoveryClient注解开启服务注册发现功能。
微服务注册中心-Nacos概述
|
3月前
|
Nacos 微服务
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
Zookeeper 的 ZAB 协议 以及 zookeeper 与 nacos 注册中心比对
47 4
|
2月前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
65 0
|
2月前
|
Kubernetes Nacos 微服务
【技术难题破解】Nacos v2.2.3 + K8s 微服务注册:强制删除 Pod 却不消失?!7步排查法+实战代码,手把手教你解决Nacos Pod僵死问题,让服务瞬间满血复活!
【8月更文挑战第15天】Nacos作为微服务注册与配置中心受到欢迎,但有时会遇到“v2.2.3 k8s 微服务注册nacos强制删除 pod不消失”的问题。本文介绍此现象及其解决方法,帮助开发者确保服务稳定运行。首先需检查Pod状态与事件、配置文件及Nacos配置,确认无误后可调整Pod生命周期管理,并检查Kubernetes版本兼容性。若问题持续,考虑使用Finalizers、审查Nacos日志或借助Kubernetes诊断工具。必要时,可尝试手动强制删除Pod。通过系统排查,通常能有效解决此问题。
47 0
|
2月前
|
安全 Nacos 数据库
【技术安全大揭秘】Nacos暴露公网后被非法访问?!6大安全加固秘籍,手把手教你如何保护数据库免遭恶意篡改,打造坚不可摧的微服务注册与配置中心!从限制公网访问到启用访问控制,全方位解析如何构建安全防护体系,让您从此告别数据安全风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其公网暴露可能引发数据库被非法访问甚至篡改的安全隐患。本文剖析此问题并提供解决方案,包括限制公网访问、启用HTTPS、加强数据库安全、配置访问控制及监控等,帮助开发者确保服务安全稳定运行。
108 0
|
2月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
103 0

热门文章

最新文章

下一篇
无影云桌面