Nacos的下载安装使用,集成SpringCloud替换Eureka,Config

本文详细介绍了Nacos的用途,作为微服务的发现、配置和管理工具。提供了Nacos的下载、安装和启动步骤,并展示了如何在SpringCloud中集成Nacos,替代Eureka作为注册中心和服务配置中心。通过示例代码展示了如何配置Nacos,并提供了访问Nacos控制台和使用配置中心的说明。
摘要由CSDN通过智能技术生成

什么是 Nacos?

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

下载安装Nacos

unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin

启动服务器

  • Linux/Unix/Mac
  • 启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
  • 如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone
  • Windows启动命令:
cmd startup.cmd
  • 或者双击startup.cmd运行文件。

访问

  • 账号: nacos
  • 密码: nacos
http://ip地址:8848/nacos

在这里插入图片描述

关闭服务

  • Linux/Unix/Mac
sh shutdown.sh
  • Windows
cmd shutdown.cmd
  • 或者双击shutdown.cmd运行文件。

集成SpringCloud,替换Eureka,Config

注意:版本 0.2.x.RELEASE 对应的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 对应的是 Spring Boot 1.x 版本。starter使用有错,暂时不用

<!-- Nacos 组件依赖 -->
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-discovery-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>0.2.3</version>
</dependency>

 nacos.discovery.server-addr=10.114.10.37:8848

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.1.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

 

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
nacos:
  config:
    server-addr: 127.0.0.1:8848
  discovery:
    server-addr: 127.0.0.1:8848
  • 添加依赖,使用Nacos的注册中心服务
	<dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>

 

之前eureka客户端的pom坐标:

       <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

  • 添加依赖,使用Nacos的配置中心
	<dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>2.0.2.RELEASE</version>
    </dependency>
  • 创建模块的配置文件bootstrap.properties文件
# 端口号
server.port=6001
# 服务名
spring.application.name=article
# nacos地址
spring.cloud.nacos.server-addr=localhost:8848
# nacos上创建的article.yml配置文件,名字于服务名相同
spring.cloud.nacos.config.extension-configs[0].data-id=article.yml
# 属于哪个组
spring.cloud.nacos.config.extension-configs[0].group=dev
# 修改配置文件且发布后不用重启服务
spring.cloud.nacos.config.extension-configs[0].refresh=true

我在application.properties中使用以下内容替换eureka信息:

server.port=9108
spring.cloud.nacos.server-addr=10.114.10.37:8848
spring.cloud.nacos.discovery.ip=10.114.10.37 

eureka的信息:

#eureka.client.register-with-eureka=true
#eureka.client.fetch-registry=true
#eureka.client.serviceUrl.defaultZone=http://10.114.10.37:9100/eureka/
#eureka.instance.hostname=10.114.10.37
#eureka.instance.instance-id=10.114.10.37:${server.port}
#eureka.instance.status-page-url=http://10.114.10.37:${server.port}/swagger-ui.html#/

主启动类上使用注解:@EnableDiscoveryClient

因为新版本做了相应的改造,所以这个注解可以不加

bootstrap.yml中配置

#同时存在bootstrap.yml和application.properties,会先加载bootstrap.yml
#所以配置中心的地址要写在bootstrap.yml中
server:
  port: 9096
#eureka:
#  client:
#    serviceUrl:
#      defaultZone: http://10.114.10.37:9100/eureka/
#  instance:
#    hostname: 10.114.10.37

spring:
   application:
    name: applicationname
   cloud:
      config:
         profile: dev
         discovery :
          enabled : true
          serviceId : config-server
      nacos:
       server-addr: 10.114.10.37:8848
       discovery:
          ip: 10.114.10.37

  • 通过账号密码登录到Nacos控制台
  • 创建配置文件,名字要于服务的name名相同
    在这里插入图片描述
  • 配置文件article.yml
    在这里插入图片描述
  • 成功创建配置文件并发布后,启动服务,在控制台就可以看到了
    在这里插入图片描述
  • 配置文件就在Nacos管理了,每次修改文件后也不需要重启服务。
  • 这里扩展一下,Spring Cloud 提供了一个服务接口DiscoveryClient,里面有两个方法比较实用,一个是查询指定服务的所有实例信息的getInstances接口,另一个是查询该注册中心有多少个服务getServices()接口,直接写到自己的测试代码里就可以查看该注册中心上面的信息了。代码如下:

     @Autowired
     private DiscoveryClient discoveryClient;
    
    @GetMapping("getInstances")
        public List<ServiceInstance> getInstances(){
            //查询指定服务的所有实例信息
            //无论使用什么做注册中心都可以使用consul、eureka、zookeeper
            return discoveryClient.getInstances("user-center");
        }
    
        @GetMapping("getServices")
        public List<String> getServices(){
            //查询该注册中心有多少个服务
            return discoveryClient.getServices();
        }
    

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值