Spring Cloud Alibaba Nacos(服务注册及配置中心)

这篇具有很好参考价值的文章主要介绍了Spring Cloud Alibaba Nacos(服务注册及配置中心)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Nacos简介

Nacos是由阿里巴巴提供的一款专门构建云本地应用的动态服务发现、配置中心和服务管理平台

在Spring Cloud Alibaba中常使用Nacos作为注册中心和分布式配置中心。

 (1)服务发现和管理

动态服务发现是以服务为中心(例如微服务或云原生)体系结构的关键。Nacos支持基于DNS和基于RPC(Dubbo,gRPC)的服务发现,并提供实时服务运行状况检查,以防止将路由请求发送到不正常的主机或服务实例。使用Nacos,您还可以轻松地为您的服务安装断路器。  

(2) 动态配置服务

 动态配置服务使您可以集中,外部化和动态地管理所有环境中的配置。动态配置使您不必在配置更新时重新部署应用程序和服务。您可以实施无状态服务并轻松实现按需扩展。

 (3)动态DNS服务

 通过支持加权路由,动态DNS(域名系统,Domain Name System)服务可帮助您在数据中心内的生产环境中实现中间层负载均衡,更灵活的路由,流量控制和DNS解析服务。动态DNS服务还使您更容易实现基于DNS的服务发现,从而最大程度地降低了耦合到特定于供应商的服务发现API的风险。

二、 基于Docker安装Nacos

(1)拉取Nacos镜像

 docker pull nacos/nacos-server

 (2)创建目录及配置文件

创建两个目录,分别是初始化目录和日志目录。

mkdir -p /root/nacos/init.d /root/nacos/logs

 新建配置文件

vim /root/nacos/init.d/custom.properties 

 在文件中添加以下内容:

management.endpoints.web.exposure.include=* 

 (3)创建并启动容器

 http端口8848,gRPC端口9848,两个端口都需要开启(2.x版本以后Nacos,1.x版本只需要开启8848端口);Mode=standalone 单机版;--restart always 自动启动容器;Nacos默认使用内置Derby(Apache的一款小巧数据库)数据库。

 docker run -d -p 8848:8848 -p 9848:9848 -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /root/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs --restart always --name nacos nacos/nacos-server

 (4)访问Nacos可视化管理界面

启动过程需要花费一定时间,需要稍等一会才能访问。容器启动成功后,访问: http://ip:8848/nacos 。默认的用户名和密码都是nacos

三、使用Nacos作为注册中心

 (1)父级依赖

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.12.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <!-- spring cloud 总体依赖版本管理 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR12</version>
            <scope>import</scope>
            <type>pom</type>
        </dependency>
        <!-- spring cloud alibaba 总体依赖版本管理 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.7.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>

(2)专用依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 使用nacos作为注册中心时,所有的微服务工程必须导入的依赖资源 -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

(3)编辑配置文件

server:
  port: 8002
spring:
  application:
    name: nacos-cloud-appservice
  cloud:
    nacos: # 配置nacos相关信息
      # server-addr: 192.168.8.128:8848 # 配置nacos服务器地址。默认localhost:8848
      discovery: # 配置nacos注册中心相关信息。
        server-addr: 192.168.8.128:8848 # 配置nacos注册中心地址。默认${spring.cloud.nacos.server-addr}
        service: nacos-cloud-appservice # 注册到nacos中的spring cloud restful服务名。默认${spring.application.name}
        group: bjsxt # 服务的分组。默认值DEFAULT_GROUP。基于Nacos注册的服务会划分分组。同组服务可发现。

(4)在启动类上添加注解

/**
 * EnableDiscoveryClient - 可选注解。开启发现客户端。类似@EnableEurekaClient
 */
@SpringBootApplication
@EnableDiscoveryClient
public class CloudRestFULApplicationServiceApp {
    public static void main(String[] args) {
        SpringApplication.run(CloudRestFULApplicationServiceApp.class, args);
    }
}

(5)正常使用openFeign进行远程调用 

 四、使用Nacos作为Dubbo的注册中心

 (1)导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <!-- dubbo技术在spring cloud alibaba技术栈中的必要依赖
         且需要另外一个必要依赖。commons-lang3
     -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-dubbo</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.spring</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>1.0.11</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
    </dependency>
    <dependency>
        <groupId>com.bjsxt</groupId>
        <artifactId>sj120_nacos_dubbo_api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

(2)编写配置文件

server:
  port: 9000
spring:
  application:
    name: nacos-dubbo-provider
  cloud:
    nacos:
      discovery: # 注册到nacos中的是spring cloud restful服务。 不是dubbo provider服务
        server-addr: 192.168.8.128:8848
        group: bjsxt
dubbo:
  application:
    id: nacos-dubbo-provider
    name: nacos-dubbo-provider # dubbo服务的名称
  registry:
    address: nacos://192.168.8.128:8848 # 注册中心地址
    group: bjsxt # 注册的dubbo provider服务分组。默认DEFAULT_GROUP。同组的服务可发现。
  protocol:
    name: dubbo # 协议名称。默认dubbo
    port: -1 # 协议端口。默认20880。定义成-1,可以实现自动递增。从20880开始。自然数递增。

(3)在控制器上添加注解

@SpringBootApplication
@EnableDubbo
public class NacosDubboProviderApp {
    public static void main(String[] args) {
        SpringApplication.run(NacosDubboProviderApp.class, args);
    }
}

(4)正常使用Dubbo方式进行远程调用

 五、使用Nacos作为配置中心

(1)访问Nacos可视化管理界面,编辑配置文件信息

(2)导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>

(3)编辑配置文件bootstrap.yml

server:
  port: 9090
spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.8.128:8848
        group: bjsxt
      config:
        name: suibian # 配置文件的 data id。 默认是${spring.application.name}
        group: jqk # 配置文件所属分组。默认是DEFAULT_GROUP
        server-addr: 192.168.8.128:8848 # config配置中心地址。默认是${spring.cloud.nacos.server-addr}
        file-extension: yaml # 文件类型。默认是properties

 (5)编辑注入配置文件中常量的类,注意加@RefreshScope注解

@RestController
@RefreshScope
public class ConfigController {
    @Value("${stu.name}")
    private String name;

    @GetMapping("/showInfo")
    public String showInfo(){
        System.out.println("姓名 : " + name);
        return "姓名 : " + name;
    }
}文章来源地址https://www.toymoban.com/news/detail-598040.html

到了这里,关于Spring Cloud Alibaba Nacos(服务注册及配置中心)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微服务 Spring Cloud Alibaba】- Nacos 服务注册中心

    目录 1. 什么是注册中心? 1.2 注册中心的作用 2. SpringBoot 整合 Nacos 实现服务注册中心 2.1 将服务注册到 Nacos 2.2 实现消费者 3. 服务列表各个参数的含义、作用以及应用场景 注册中心是微服务架构中的一个重要组件,它用于实现 服务注册 与 服务发现 。 【思考一】什么叫服务

    2024年02月06日
    浏览(42)
  • Spring Cloud Alibaba nacos配置中心

    第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Spring Cloud Netflix 之 Hystrix 第九章 代码管理gitlab 使用 第十章 Spr

    2024年02月08日
    浏览(33)
  • Spring Cloud Alibaba Nacos 构建配置中心

    登录 Nacos 面板,依次点击左侧菜单栏【命名空间→新建命名空间】、填写命名空间名和描述信息,点击【确定】: 依次点击左侧菜单栏【配置管理→配置列表】、切换到指定命名空间【此处为 shop】、点击右侧【+】号: 添加配置 填写【Data ID】要求组内唯一,【Group】组名,

    2024年02月08日
    浏览(35)
  • Spring Cloud Alibaba - 服务注册与发现(Nacos)

    ✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:微服务 🥭本文内容:Spring Cloud Alibaba - 服务注册与发现(Nacos)。 在微服务架构中,服务注册与发现是其中的重要一环。服务

    2024年02月07日
    浏览(38)
  • 【Spring Cloud Alibaba】2.服务注册与发现(Nacos安装)

    我们要搭建一个 Spring Cloud Alibaba 项目就绕不开 Nacos ,阿里巴巴提供的 Nacos 组件,可以提供服务注册与发现和分布式配置服务,拥有着淘宝双十一十几年的流量经验,还是非常的可靠的。 Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环

    2024年01月23日
    浏览(36)
  • Spring Cloud Gateway集成Nacos作为注册中心和配置中心

    本篇文章将介绍Spring Cloud Alibaba体系下Spring Cloud Gateway的搭建,服务注册中心和分布式配置中心使用Nacos,后续将会持续更新,介绍集成Sentinel,如何做日志链路追踪,如何做全链路灰度发布设计,以及Spring Cloud Gateway的扩展等。 ​ Spring Boot,Spring Cloud,Discovery,Config等基础依

    2024年02月11日
    浏览(27)
  • Spring Cloud微服务在Windows本地开发时禁用Nacos注册中心注册

    码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 本文将介绍如何在Spring Cloud微服务架构中,实现在Windows本地开发环境下禁用服务自动注册到Nacos注册中心,而在Linux服务器环境下则自动启用注册功能。这样的配置有助于开发者在本

    2024年03月18日
    浏览(87)
  • Spring Cloud中微服务已经启动,但是没有注册到nacos中心

    今天写了一个Spring Cloud模块,然后启动测试效果,结果一直报503或者401的错误,排查后发现是服务启动,但是没有注册到nacos中心。 这是后端已经启动模块:  这是nacos中心: 可以看出,这里模块没有注册到nacos中。 找了一下午的博客,发现那些不是说的spring-boot-starter-web起

    2024年02月10日
    浏览(31)
  • 微服务 – Spring Cloud – Nacos 配置中心

    Data ID : nacos-config-client-dev.yaml Group: DEV-CLOUD2023

    2024年02月11日
    浏览(37)
  • 注册中心/配置管理 —— SpringCloud Alibaba Nacos

    Nacos 是一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生的应用程序 Nacos 的关键特性包括以下几项: 服务发现和服务健康监测:服务提供者使用原生 SDK、OpenAPI 等注册服务后,服务消费者可以使用 HTTPAPI 查找和发现服务。Nacos 提供对服务的实时健康检查

    2024年02月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包