栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring cloud alibaba全家桶之nacos

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring cloud alibaba全家桶之nacos

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

微服务组件文章地址
spring cloud alibaba全家桶集合https://people.blog.csdn.net/article/details/123729595
nacos注册中心、配置中心https://people.blog.csdn.net/article/details/123706688

文章目录

一、搭建整合nacos二、 整合nacos 注册中心三、 整合nacos 配置中心

一、搭建整合nacos

docker-compose.yaml安装nacos

version: '3'
services:
  nacos:
    # 注意 2.0 不需要额外安装数据库了,docker run --name nacos-standalone -e MODE=standalone -d -p 8848:8848 -p 9848:9848 -p 9849:9849 nacos/nacos-server:2.0.3
    image: 'nacos/nacos-server:2.0.3'
    restart: always
    container_name: nacos
    environment:
      # 启动模式 单机
      MODE: 'standalone'
      # nacos默认端口号
      NACOS_SERVER_PORT: 8848
#      # 是否开启权限系统
#      NACOS_AUTH_ENABLE: 'true'
    ports:
      - '8848:8848'
      - '9848:9848'
      - '9849:9849'

#在当前目录打开终端,使用命令 docker-compose up -d 即可运行;
#在当前目录打开终端,使用命令 docker-compose down 即可运行;

安装完成后 http://127.0.0.1:8848/nacos/ 默认用户名和密码都是 nacos 进入后台管理页面

二、 整合nacos 注册中心

cloud-system模块中pom.xml添加nacos依赖


     com.alibaba.cloud
     spring-cloud-starter-alibaba-nacos-discovery

配置文件中添加配置:

# nacos 地址
spring
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  # 应用
  application:
    # 应用名称
    name: cloud-system-service

启动类上加上注解开启 @EnableDiscoveryClient 开启服务注册

发现服务已经注册上来了:

@RequiredArgsConstructor
@RequestMapping("/v1/nacos")
@RestController
public class NacosController {

    private final DiscoveryClient discoveryClient;

    @GetMapping("/get")
    public R get(){
        List instances = discoveryClient.getInstances("cloud-system-service");
        ServiceInstance serviceInstance = instances.get(0);
        // 获取到nacos注册中心上的服务ip以及端口
        String host = serviceInstance.getHost();
        int port = serviceInstance.getPort();
        return R.data(host+":"+port);
    }
}

测试发送get请求获取信息:

{
"code": 200,
"success": true,
"data": "10.113.229.45:8000",
"msg": "操作成功"
}

三、 整合nacos 配置中心

现在微服务存在的问题

配置文件增多,不好维护修改配置文件需要重新发布

统一管理配置, 快速切换各个环境的配置

相关产品:

百度的disconf 地址:https://github.com/knightliao/disconf

阿里的diamand 地址:https://github.com/takeseem/diamond

springcloud的configs-server: 地址:http://cloud.spring.io/spring-cloud-config/

阿里的Nacos:既可以当服务治理,又可以当配置中心,Nacos = Eureka + Config

官方文档

https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-config

添加依赖:


       com.alibaba.cloud
       spring-cloud-starter-alibaba-nacos-config

注意配置文件加载优先级

不能使用原先的application.yml, 需要使用bootstrap.yml作为配置文件

配置读取优先级 bootstrap.yml > application.yml

bootstrap.yml

spring:
  profiles:
    # 使用 dev 分支配置
    active: dev
  application:
    # 应用名称
    name: cloud-gateway-service
  cloud:
    nacos:
      config:
        server-addr: 81.69.43.78:8848 #Nacos配置中心地址
        file-extension: yaml #文件拓展格式
server:
  port: 8002

将原来application.yml 注释,将原来application-dev.yml 拷贝到nacos中,将原来代码中的 应用名-dev.yml注释


nacos动态刷新配置:

我们修改了配置,程序不能自动更新,动态刷新就可以解决这个问题

@RefreshScope 动态刷新

在nacos中配置 useLocalCache 的值,然后再代码中动态获取

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {

    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/778756.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号