nacos的使用

nacos的使用

1. nacos可以作为注册中心和配置中心

  使用nacos的配置中心和注册中心的话,我们需要在配置文件中增加关于nacos的配置

  namespace,group可以不写,那么就是注册到默认的namespace和group下,不同namespace和group下是隔离开来的

  

 

2. 如果我们只是想要注册到nacos上的话,我们只需要导入nacos的注册中心依赖,以及nacos的负载均衡器依赖即可,然后配置文件中我们只需要添加关于nacos注册中心的配置即可

  启动类上还需要添加nacos的注解:@EnableDiscoveryClient

  如果我们想使用nacos的配置中心的话,我们需要导入nacos配置中心的依赖包,以及优先加载bootstrap文件的依赖包(bootstrap.yml:启动配置文件)

  

  

3. 将服务启动的时候,通过nacos页面直接查看服务列表,那么该服务就会回显到服务列表中

4. 在nacos上还有group和namespace的概念,比如,我们可以通过不同的namespace放置不同的项目,我们可以通过namespace下的group组的概念,将不同的开发幻境的配置放置到不同的组下

5. 关于springcloud中配置文件的加载顺序:启动先加载bootstrap.yml,然后再加载application.yml文件,最后根据匹配到的数据去配置中心读取所指向的配置

    关于springboot中配置文件的加载顺序:先加载application,然后根据application指定的环境加载application-环境的配置文件

6. 在bootstrap.yml文件中添加配置下图配置信息,关于一些普通配置,比如数据库库连接池的配置或者一些redis的配置,我们可以放置到nacos配置中上去

  

 7. nacos关于配置文件的命令是有一定的规范的:${prefix}-${spring.profile.active}-${file-extension}

  prefix:一般默认就是当前服务的服务名称,spring.profile.active:就是我们的application.yml中指定的,是开发环境还是生产环境  file-extension:就是当前文件的格式,目前只支持properties和yml        

  nacos首先通过我们bootstrap.yml中spring.application.name的值拼接applictation.yml的环境(dev),然后拼接我们bootstrap.yml中nacos.config.file-extension的值(yml)然后找到nacos上的配置文件的

 8. 如果你想要读取配置文件中的某些信息,可以在指定需要这些信息的类中,通过@Value("${dk.upload.image}")就可以拿到相应的值

 9. 关于nacos自动刷新配置:如果你不想要每次在nacox配置文件上更改,都要重启对应的服务,那么可以在这个服务上面添加@RefreshScope //自动刷新配置注解

所以,在我们平时的开发中,我们可以将不同的项目在nacos上创建对应的namespace,然后根据该项目下不同的部门配置不同的group,再针对于不同的开发环境我们可以指定配置不同环境下的配置信息,不同的项目之间的namespace不同且group不同,可以互相隔离,方便我们平时对项目的管理,另一点就是我们nacos配置中心上的配置信息我们修改了可以不停止项目,通过在启动类上添加注解@RefreshScopr,就可以自动刷新配置  

 10. nacos是自带持久化功能的,在nacos的安装文件夹下有一个derby-data文件,这是nacos自带的数据库,保存我们nacos的数据,但是对于我们nacos如果做集群的话,每个nacos中都有其自身的数据库,那么我们对应nacos上只会保留其自己的数据,我们没有办法做数据共享了,所以我们集群的数据我们需要使用同一份数据源,那么我们需要使用自己的mysql来作为数据源了

我们在搭建nacos的时候数据源一定要提前切换好,如果是单机的话基本没啥影响,如果我们是搭建集群的话,需要提前切换我们mysql的数据源

 

nacos搭建集群

1. 首先我们集群一般都是启动奇数台nacos,好处就是防止脑裂----就是防止选举的时候,剩余节点选举的时候如果票数相同就会产生脑裂(主从架构模式情况下)

2. 搭建步骤:在linux系统下

创建nacos文件夹:mkdir nacos

解压我们的nacos压缩包:tar -zxvf 包名       关于我们linux解压:tar -zxvf-----x:解压 如果是c的话就是压缩 v:展示详细信息

3. 进入nacos的conf文件夹下,编辑我们的application.properties文件,修改端口,因为是搭建集群,所以我们需要统一配置数据源,也就是我们统一访问mysql,目前nacos也仅支持mysql

4.复制三分解压后的nacos(使用cp -r 文件夹名字)

5. 复制后的另外两份nacos文件夹也需要修改配置以及端口号

6. 然后进入nacos下的conf文件夹,先复制一份cluster.conf.example并重命名为cluster.conf,然后编辑cluster.conf,里面配置的就是我们集群信息,也就是我们三个集群的ip+端口号

7. 每一份nacos中都需要复制cluster.conf.example,并且更改

8. 如果是服务器内存比较大的话,到这一步就可以直接启动了,如果服务器小的话,就走下面步骤

9. 修改每一个nacos中bin目录下的startup.sh中的下面配置,改小一点

10. 然后启动nacos集群

./nacos/bin/startup.sh
./nacos2/bin/startup.sh
./nacos3/bin/startup.sh

补充:查看nacos进程命令

ps -ef | grep nacos

11. 我们可以使用nginx进行方向代理:修改nginx.conf文件

upstream nacos.cluster { #服务器集群的名字
server 127.0.0.1:8847;
server 127.0.0.1:8848;
server 127.0.0.1:8849;
}

location / {
#root html;
#index index.html index.htm;

proxy_pass http://nacos.cluster;

}
#服务器代理的路径一定要和upstream中服务器集群的名字保持一致

12. 启动nginx

13. 访问集群:http://192.168.43.10/nacos.cluster

14. 将微服务注册到Nacos集群

将 地址换成nginx的即可

cloud:
  nacos:
    discovery:
        server-addr: 192.168.43.10:80

   

 

posted @   LBC_0612  阅读(234)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示