您当前的位置: 首页 >  eureka

qq_34412985

暂无认证

  • 0浏览

    0关注

    1061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

qq_34412985 发布时间:2021-01-23 20:25:05 ,浏览量:0

什么是 Nacos?

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

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

下载安装Nacos
  • Nacos下载地址 github下载地址特别慢,可以使用gitee下载或者docker安装
  • 下载nacos-server-$version.zip
  • 下载后解压文件进入到Nacos的bin目录下
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使用有错,暂时不用



    com.alibaba.boot
    nacos-discovery-spring-boot-starter
    0.2.3


    com.alibaba.boot
    nacos-config-spring-boot-starter
    0.2.3

 nacos.discovery.server-addr=10.114.10.37:8848


            org.springframework.cloud
            spring-cloud-alibaba-dependencies
            0.2.1.RELEASE
            pom
            import
        

 


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

 

之前eureka客户端的pom坐标:

                   org.springframework.cloud             spring-cloud-starter-netflix-eureka-client         

  • 添加依赖,使用Nacos的配置中心
	
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-config
        2.0.2.RELEASE
    
  • 创建模块的配置文件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 getInstances(){
            //查询指定服务的所有实例信息
            //无论使用什么做注册中心都可以使用consul、eureka、zookeeper
            return discoveryClient.getInstances("user-center");
        }
    
        @GetMapping("getServices")
        public List getServices(){
            //查询该注册中心有多少个服务
            return discoveryClient.getServices();
        }
    

     

关注
打赏
1653291990
查看更多评论
立即登录/注册

微信扫码登录

0.0691s