写点什么

【深入浅出 Dubbo3 原理及实战】「SpringCloud-Alibaba 系列」基于 Nacos 作为注册中心进行发布 SpringCloud-alibaba 生态的 RPC 接口实战

作者:洛神灬殇
  • 2022-12-14
    江苏
  • 本文字数:2412 字

    阅读完需:约 8 分钟

【深入浅出Dubbo3原理及实战】「SpringCloud-Alibaba系列」基于Nacos作为注册中心进行发布SpringCloud-alibaba生态的RPC接口实战

Spring Cloud Alibaba Nacos Discovery

Spring Boot 应用程序在服务注册与发现方面提供和 Nacos 的无缝集成。 通过一些简单的注解,您可以快速来注册一个服务,并使用经过双十一考验的 Nacos 组件来作为大规模分布式系统的服务注册中心。

服务注册发现: Nacos Discovery Starter

服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查 URL,主页等-注册到 Nacos 。Nacos 的获取和启动方式可以参考 Nacos 官网。

Nacos 快速开始

这个快速开始手册是帮忙您快速在您的电脑上,下载、安装并使用 Nacos。

版本选择

Nacos 1.X 是老版本,将来会停止维护。 建议您使用 2.X 版本。

预备环境准备

Nacos 依赖Java环境来运行。如果您是从代码开始构建并运行 Nacos,还需要为此配置Maven环境,请确保是在以下版本环境中安装使用:


  • 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。

  • 64 bit JDK 1.8+的下载地址:https://www.oracle.com/java/technologies/downloads/#java8

  • Maven 3.2.x+的下载地址:https://maven.apache.org/download.cgi

下载源码或者安装包

你可以通过源码和发行包两种方式来获取 Nacos。


从 Github 上下载源码方式


git clone https://github.com/alibaba/nacos.gitcd nacos/mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  ls -al distribution/target/// change the $version to your actual pathcd distribution/target/nacos-server-$version/nacos/bin
复制代码

下载编译后压缩包方式

您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。


unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gzcd nacos/bin
复制代码

启动服务器

注:Nacos 的运行需要以至少 2C4g60g * 3 的机器配置下运行。

Linux/Unix/Mac

启动命令(standalone 代表着单机模式运行,非集群模式):


sh startup.sh -m standalone
复制代码


如果您使用的是 ubuntu 系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:


bash startup.sh -m standalone
复制代码
Windows

启动命令(standalone 代表着单机模式运行,非集群模式):


startup.cmd -m standalone
复制代码

服务注册

服务注册
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
复制代码
服务发现
curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'
复制代码
关闭服务器

Linux/Unix/Mac


sh shutdown.sh
复制代码


Windows


shutdown.cmd
复制代码


或者双击 shutdown.cmd 运行文件。

Dubbo 融合 Nacos 成为注册中心

对于 Nacos 服务进行了简单的介绍和部署后,我们就可以使用其作为我们的注册中心使用,Nacos 作为 Dubbo 生态系统中重要的注册中心实现,本文将会介绍如何进行 Dubbo 对接 Nacos 注册中心的工作。


Dubbo 融合 Nacos 成为注册中心的操作步骤非常简单,大致步骤可分为“增加 Maven 依赖”以及“配置注册中心“。

前提准备

请确保后台已经启动 Nacos 服务

增加 Maven 依赖

只需要依赖 Dubbo 客户端即可,关于推荐的使用版本,请参考 Dubbo 官方文档或者咨询 Dubbo 开发人员:


<dependencies>
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>3.0.10</version> </dependency>
<!-- Dubbo Nacos registry dependency --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo-registry-nacos</artifactId> <version>3.0.10</version> </dependency>
<!-- Alibaba Spring Context extension --> <dependency> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> <version>1.0.11</version> </dependency></dependencies>
复制代码

使用 Nacos 注册中心

Spring 的 xml 配置文件

<?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.xsd        http://dubbo.apache.org/schema/dubbo        http://dubbo.apache.org/schema/dubbo/dubbo.xsd">    <!-- 提供方应用信息,用于计算依赖关系 -->    <dubbo:application name="dubbo-provider-xml-demo"  />    <!-- 使用 Nacos 注册中心 -->    <dubbo:registry address="nacos://${nacos.address:localhost}:8848" />    <!-- 如果要使用自己创建的命名空间可以使用下面配置 -->    <!-- <dubbo:registry address="nacos://${nacos.address:localhost}:8848?namespace=5cbb70a5-xxx-xxx-xxx-d43479ae0932" /> --></beans>
复制代码
设置指定命名空间

默认使用的为 public 命名空间


<dubbo:registry address="nacos://${nacos.address:localhost}:8848" />
复制代码
指定对应的命名空间

如果要使用自己创建的命名空间可以使用下面配置


<dubbo:registry address="nacos://${nacos.address:localhost}:8848?namespace=5cbb70a5-xxx-xxx-xxx-d43479ae0932" /> 
复制代码

Spring 的 yaml 配置文件

dubbo.application.name=dubbo-provider-yaml-demodubbo.registry.address=nacos://${nacos.address:localhost}:8848dubbo.consumer.timeout=3000
复制代码


重启 Dubbo 应用后,您同样也能发现服务提供方和消费方的注册元信息呈现在 Nacos 控制台中:



发布于: 刚刚阅读数: 3
用户头像

洛神灬殇

关注

🏆 InfoQ写作平台-签约作者 🏆 2020-03-25 加入

【个人简介】酷爱计算机科学、醉心编程技术、喜爱健身运动、热衷悬疑推理的“极客达人” 【技术格言】任何足够先进的技术都与魔法无异 【技术范畴】Java领域、Spring生态、MySQL专项、微服务/分布式体系和算法设计等

评论

发布
暂无评论
【深入浅出Dubbo3原理及实战】「SpringCloud-Alibaba系列」基于Nacos作为注册中心进行发布SpringCloud-alibaba生态的RPC接口实战_nacos_洛神灬殇_InfoQ写作社区