Spring Cloud alibaba 之 Nacos-con

2022-10-10  本文已影响0人  山巅自相见

官方文档
Nacos提供方用于储存配置和其他元数据的key/value储存,为分布式系统中的外部化配置提供服务器端和客户端支持。使用Spring Cloud Alibaba Nacos Config
,您可以在nacos Server集群中管理你的Spring Cloud应用的外部属性配置。


Spring Cloud Config对比
三大优势
对比项目/配置中心 Spring Cloud Config Apollo Nacos
开源时间 2014.9 2016.5 2018.6
配置实时推送 支持(Spring Cloud Bus) 支持(HTTP长轮询1s内) 支持HTTP轮询1s
版本管理 支持(Git) 支持 支持
配置回滚 支持(Git) 支持 支持
灰度发布 支持 支持 待支持
权限管理 支持 支持 待支持
多集群多环境 支持 支持 支持
监听查询 支持 支持 支持
多语言 只支持Java Go,C++,Python,Java,.net,OpenAPI Python,Java,Nodejs,OpenAPI
分布式高可用最小集群数量 Config-Server2+Git+MQ Config2+Admin3+Portal*2+Mysql=8 Nacos*3+Mysql=4
配置格式校验 不支持 支持 支持
通讯协议 HTTP和AMQP HTTP HTTP
数据一致性 Git保证数据一致性,Config-Server从Git读取数据 数据库模拟消息队列,Apollo定时读消息 HTTP异步通知
单机读(tps) 7(限流所致) 9000 15000
单机写(tps) 5(限流所致) 1100 1800
3节点读 21(限流所致) 27000 45000
3节点写 5(限流所致) 3300 5600

配置管理界面

配置列表


(有一小部分在之前的《Spring Cloud alibaba之Nacos》中介绍过,这里就不重复说了)
这里用来存储项目中的所有的配置文件,点击右边的加号进行添加配置。

配置格式常用的有yaml或者properties。
配置内容

user.name=赵毅梵
user.age=18

点击发布,回到配置管理界面后,可以看见刚才新增的配置文件发布成功

权限控制


权限控制模块可以新建用户,并赋予用户权限。
用户列表-创建用户-填写用户信息


我这里创建了一个用户名为zhaoyifan的用户。
我们给zhaoyifan用户绑定一个角色名。角色管理-绑定角色
角色名最好见名知意,这里设置的是public_r&w意思就是只有访问public命名空间权限,并且可以读和写。
最后zhaoyifan用户添加权限。权限管理-添加权限
这里我新建了一个dev工作空间,资源选择public。添加完成后登出,登录刚才新建的zhaoyifan用户。

可见public工作空间是可以正常访问并且修改的。当点击dev切换开发环境的时候就出现了弹窗阻断切换。


到这里,用户权限就配置完成了。

Client读取配置

在文章开头处点击《官方文档》,跟着文档的快速开始做就可以了,这里不过多重复。

@RefreshScope

@Value注解可以获取到配置中心的值,但是无法动态感知修改后的值,需要利用@RefreshScpoe注解

package com.mrZhao.config.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RefreshScope
@RequestMapping("/config")
@RestController
public class ConfigController {
    @Value("${user.name}")
    String name;

    @RequestMapping("/show")
    String show() {
        return name;
    }
}

上一篇 下一篇

猜你喜欢

热点阅读