Nacos 简单配置

1、nacos 下载启动配置

1.1nacos下载

nacos 中文网站
nacos 下载地址

可以选择稳定版本下载 例如当前的1.4.1 这里根据系统选择,下载编译后的nacos
在这里插入图片描述
解压后进入bin目录
在这里插入图片描述

1.2启动nacos

startup.cmd启动文件,由于当前单机版启动 需要修改模式为单机 set MODE="standalone" 或者使用启动命令startup.cmd -m standalone
Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

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

bash startup.sh -m standalone

在这里插入图片描述
启动成功界面
在这里插入图片描述
访问地址 本机地址:8848/nacos/index.html
账号密码 nacos nacos
在这里插入图片描述

1.3配置nacos

nacos是有内嵌数据库的 由于不好维护 可以配置为mysql
在这里插入图片描述
修改配置文件
nacos->conf->application.properties 打开注释
在这里插入图片描述
新建库 nacos
在这里插入图片描述
然后导入sql
在这里插入图片描述在这里插入图片描述

user表
在这里插入图片描述
重新启动nacos
登录后可以修改密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改用户名可以不用nacos 下次登录时可以用新的名字登录
在这里插入图片描述

2、Nacos配置中心

2.1 版本说明

版本说明连接
alibaba 其实是个实现 spring 是个规范
在这里插入图片描述

2.2 Hello World入门

新建maven父工程
然后加入依赖

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
        <springboot.version>2.3.2.RELEASE</springboot.version>
        <springcloudalibaba.version>2.2.5.RELEASE</springcloudalibaba.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${springboot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${springcloudalibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

新建子模块 nacos-config-test
并引入依赖

<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-config</artifactId>
    </dependency>
</dependencies>

新建 application.yml 新建启动类 NacosConfigApplication

server:
  port: 8080
  servlet:
    context-path: /

bootstrap启动优先级比application高 新建bootstrap.properties配置文件。
新建nacosconfig 配置管理->配置列表->右侧+号
在这里插入图片描述

写入bootstrap.properties配置

spring.application.name=nacos.config.test
spring.cloud.nacos.server-addr=127.0.0.1:8848
#默认组
spring.cloud.nacos.config.group=DEFAULT_GROUP
#data id nacos_config.properties
spring.cloud.nacos.config.name=nacos_config.properties

新建NacosConfigController 测试读取远程配置的参数 访问路径是否可以读参数

@Value("${java.name}")
private String name;
@Value("${java.age}")
private String age;
@GetMapping("/getConfigInfo")
public String getConfigInfo(){
    return name+age;
}

修改nacos配置参数
在这里插入图片描述
例如age=20
访问接口返回参数是否更新 如果没更新在类上面加 @RefreshScope
nacos也是个不错的配置中心 而且远程配置优先级大于本地配置文件参数优先级

可以新建组 dataId相同不影响
在这里插入图片描述
然后修改bootstrap.properties 配置文件
在这里插入图片描述
重启访问地址 参数更新为新的组

2.3配置model

配置列表默认空间为public

在这里插入图片描述

可以新增空间 然后在空间新建配置
在这里插入图片描述
在这里插入图片描述
然后修改bootstrap配置
新增 id是粘空间id 然后修改组group、config 对应的名字
spring.cloud.nacos.config.namespace=0bc5b655-e3d3-4e65-8fce-8685ac245eb6
在进行测试读取配置;

这就是nacos配置数据模型

在这里插入图片描述

Nacos 多配置集

有很多配置都是重复的比如 redis mysql等 假如有十个就需要配置十次吗?

可以进行分开配置使用例如 在dev下面创建多个配置 有mysql reids oa crm

在这里插入图片描述
bootstrap.properties 修改配置读取 记得修改命名空间

#namespace dev 默认public命名空间
spring.cloud.nacos.config.namespace=0bc5b655-e3d3-4e65-8fce-8685ac245eb6

spring.cloud.nacos.config.extension-configs[0].data-id=mysql_common.properties
spring.cloud.nacos.config.extension-configs[0].group=DEFAULT_GROUP
#该参数表示是否开启自动更新
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=redis_config.properties
spring.cloud.nacos.config.extension-configs[1].group=DEFAULT_GROUP
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=crm.properties
spring.cloud.nacos.config.extension-configs[2].group=CRM_GROUP
spring.cloud.nacos.config.extension-configs[2].refresh=true

spring.cloud.nacos.config.extension-configs[3].data-id=oa.properties
spring.cloud.nacos.config.extension-configs[3].group=OA_GROUP
spring.cloud.nacos.config.extension-configs[3].refresh=true

测试
在这里插入图片描述

  @GetMapping("/getCommonInfo")
    public String getCommonInfo(){
        return redis+"::"+mysql+"::"+crm+"::"+oa;
    }

在这里插入图片描述

配置中心_其它配置

配置导出
在这里插入图片描述

配置导入

在这里插入图片描述

直接克隆配置到其它空降

在这里插入图片描述

历史版本

在这里插入图片描述

监听查询

在这里插入图片描述

服务注册与发现

在这里插入图片描述

服务注册

在这里插入图片描述
配置文件

server:
  port: 8081
spring:
  application:
    name: nacos-order
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

依赖


    <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-config</artifactId>
        </dependency>
        <!--服务注册发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
    </dependencies>

启动类加@EnableDiscoveryClient注解 启用 Discovery

启动后检查
在这里插入图片描述
服务调用 openfeign

stock 模块添加 StockController 添加方法 @RestController @RequestMapping路径 新增 test 方法

@RestController
@RequestMapping("/stock")
public class StockController {
    @RequestMapping("/test")
    public String test(String info){
        return "库存模块接收到信息"+info;
    }
}

然后 在order 进行导入 openfeign 依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

新建包feign 添加接口 StockFeignServic 添加方法调用 注意服务注册的名字 nacos-stock

@FeignClient("nacos-stock")
public interface StockFeignService {
    @RequestMapping("/stock/test")
    public String test(@RequestParam("info") String info);
}

创建OrderController

@RestController
@RequestMapping("/order")
public class OrderController {
    @Autowired
    private StockFeignService stockFeignService;
    @RequestMapping("/test")
    public String test(){
        return stockFeignService.test("库存减减减");
    }
}

启动类添加注解 @EnableFeignClients(basePackages = “com.java.feign”) 扫描指定包

依次启动stock order 访问 order test方法地址 调用成功

在这里插入图片描述

多实例负载

模拟多个节点

点击 Edit Configurations…
在这里插入图片描述
复制启动console
在这里插入图片描述
修改端口
在这里插入图片描述

-Dserver.port=8084

新增代码
在这里插入图片描述

stock 同理操作 然后将其四个service启动 查看nacos 服务列表
在这里插入图片描述
访问时发现轮询
在这里插入图片描述

在这里插入图片描述
查询服务被订阅情况
在这里插入图片描述

服务领域模型

nacos涉及了很多地方这上面也没有写完
在这里插入图片描述
可以发现nacos服务列表也是有命名空间的
在这里插入图片描述
模块里可以这样配置新增 namespace cluster-name

spring:
  application:
    name: nacos-order
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: 0bc5b655-e3d3-4e65-8fce-8685ac245eb6
        cluster-name: JAVA

在这里插入图片描述

Nacos集群 高可用

每个技术都有高可用,高可用就是其中一个服务挂了可以 继续使用。由于会把nacos 用为配置中心 和注册中心比较重要,也需要高可用 。
一般最少需要三个节点,三个以上太奢侈,两个设计选举问题。所以这里使用三个。

实现 1、修改启动监本
2、准备三份nacos 端口为 8848、8849、8850
3、重命名cluster.conf.example为cluster.conf并修改地址和ip
4、修改程序连接地址和命名空间
5、启动程序测试

1、修改启动脚本

修改startup里面的启动模式为set MODE="cluster"
在这里插入图片描述

2、修改conf配置文件application.properties

在这里插入图片描述

3、将集群文件重命名为cluster.conf

在这里插入图片描述
在这里插入图片描述
编辑
在这里插入图片描述

4、然后将nacos文件复制三份 并修改conf下的application.properties的port别三个文件的端口为 8850、8849、8848

5、程序里面配置

原来的nacos-config-test 模块修改bootstrap.properties
在这里插入图片描述

6、测试

启动三个nacos 并访问其中一个端口地址查看情况 启动应用
访问地址
在这里插入图片描述
然后关掉一个测试没有问题 ,关掉两个也没有问题
在这里插入图片描述

  • 26
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值