美文网首页
nacos 学习笔记入门

nacos 学习笔记入门

作者: 黄靠谱 | 来源:发表于2019-07-12 11:28 被阅读0次

    nacos

    参考

    DIDI的系列,简单入门有demo
    https://www.jianshu.com/p/9c98eb1088a3

    https://nacos.io/zh-cn/docs/what-is-nacos.html

    多环境的配置(namespace 区分DEV 、UAT 、 Test, group区分业务)
    http://blog.didispace.com/spring-cloud-alibaba-nacos-config-2/

    springcloud 阿里巴巴 maven 版本控制
    http://blog.didispace.com/spring-cloud-alibaba-version/

    启动nacos

    1. 本地安装和运行nacos

    后台控制台:
    http://localhost:8848/nacos/index.html
    默认账号密码 nacos / nacos

    nacos的优势

    1. 既有 配置中心 又有 注册中心,而且可以直接写在 application.properties 里面,不需要单独写个 bootstrap.properties 。

    2. 配置中心

    • 支持控制台界面(http://localhost:8848/nacos/index.html) 支持登陆功能管理权限
    • 支持动态配置(可以通过在类上添加 @RefreshScope注解),默认不会热加载
    • 支持url API动态配置(类似于 solr),也支持 控制台修改
    • 支持历史版本查询的功能,类似于 git 仓库的功能
    • 配置中心功能可以用在简单的springboot项目中,实现自动热加载的功能,不需要重启应用。还有历史版本查询的功能。缺点也很明显,就是除了维护当前应用,没有展现出配置中心的优势
    1. 注册中心
      作为注册中心 和eureka一样,都不需要改啥代码,迁移的成本很低,几乎没啥学习成本
      consumer配置
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>0.2.0.RELEASE</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
            </dependency>
            
        server.port=8072
        spring.application.name=service-consumer
        spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    
        @SpringBootApplication
        @EnableDiscoveryClient
        @EnableFeignClients
        public class DemoNacosApplication {
            public static void main(String[] args) {
                SpringApplication.run(DemoNacosApplication.class, args);
            }
        }
    
        @FeignClient("service-provider")
        public interface ClientRemote{
            @GetMapping(value="/echo/{str}")
            String hello(@PathVariable("str") String str);
        }
    

    dataId (例如 demo-ssm.properties)
    {prefix}-{spring.profile.active}.${file-extension}

    支持API url,新的会覆盖老的配置
    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=demo-ssm.properties&group=DEFAULT_GROUP&content=useLocalCache=true"
    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=example.properties&group=DEFAULT_GROUP&content=useLocalCache=false"

    curl -X PUT "http://127.0.0.1:8848/nacos/v1/ns/operator/switches?entry=pushEnabled&value=false&debug=false"

    curl -X GET "http://127.0.0.1:8848/nacos/v1/ns/operator/switches"

    localhost:8080/config/get

    缺点

    1. 文档和社区太少了,碰到问题都搜不到解决方案,官网的文档都没那么全。 比如关闭 nacos的API功能,提升安全。这个最为致命

    2. 和SpringCloud的版本兼容性很差,比如 0.2.0Release版本 和 2.0.6版本SB兼容性很好,但是 和2.1.5版本SB,既不报错,也不成功急死人啊。

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>0.2.0.RELEASE</version>
            </dependency>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    

    相关文章

      网友评论

          本文标题:nacos 学习笔记入门

          本文链接:https://www.haomeiwen.com/subject/pvkekctx.html