springCloud alibaba 学习笔记(二) nacos基础

nacos是 springCloud alibaba 的重要组件。

一、nacos 注册中心 + 配置中心(eureka + config + bus


1.官网:https://nacos.io/zh-cn/,可在官网下载安装包。官网点击Tags按钮可以查看往期版本。

2.nacos的安装,需要本地有jdk、maven环境变量。
  当我们从github上现在源码编译、运行时,需要maven环境变量。如果直接下载压缩包则不需要maven环境变量。

3.压缩包解压后有:bin、conf、data、logs、target等文件夹。

4.配置数据库,否则会出现异常信息:db.num is null
  1)在conf目录下编辑 application.properties 文档;
    cd /usr/local/nacos/conf
    vim application.properties
    
  2)修改文档的 ### Count of DB 区域:
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user=nacos
    db.password=nacos
    可以看出主要是修改数据库配置信息,其中需要一个名为nacos的数据库。
    创建该数据库 或者 换成我们自己的数据库。
    
  3)将conf文件夹中的 nacos-mysql.sql 导入到刚nacos数据库中。

5.bin目录下有startup.cmd 和 startup.sh 分别为windows 和 Linux的启动文件。
  deepin系统启动命令:bash -f ./startup.sh -m standalone 其中 -m standalone 表示已单态模式启动。
  deepin系统关闭命令:./shutdown.sh

6.nacos有自己的管理系统
  访问地址:http://localhost:8848/nacos,默认账号密码nacos/nacos。

二、官网中说在生产环境,nacos要使用高可用的集群环境并需要持久化,并给出了创建集群的方式

1.使用nginx等技术创建虚拟ip,作为访问集群的入口;
2.创建nacos集群;
3.创建高可用的mysql数据库,用于持久化数据。
  在nacos中创建的命名空间、配置信息 文档等,会存入到nacos的数据库中。
  所以要求集群环境下,各个节点使用同一个数据库库,这样可以保证节点之间的数据一致性。
  这也就是,安装nacos时要配置mysql数据库的原因。
4.其中nginx需要是高可用的集群,mysql数据库要主从配置或者高可用集群,nacos集群节点要三个或以上。

三、nacos创建高可用集群步骤–方式一适用于单台服务器 和 多台服务器

1.将nacos解压之后的包复制两份nacos1、nacos2(创建几个集群节点,就复制几份),可以在同一个服务器上,也可以在不同的服务器上。
  在同一台服务器上,不同节点要配置不同的端口号。这里我们以同一台服务器,配置两个集群节点为例。
  
2.修改各个节点的 conf/application.properties 配置文档
  cd /usr/local/nacos1/conf
  vim application.properties
  
  cd /usr/local/nacos2/conf
  vim application.properties
  
  各个节点都需要修改其中的端口号,分别为:
  节点1:server.port=8848
  节点2:server.port=8847
  
3.修改各个节点的 conf/cluster.conf 配置文档
  conf/cluster.conf 配置文档不存在,需要将 conf/cluster.conf.example 修改为 conf/cluster.conf
  
  各个节点 将 conf/cluster.conf.example 修改为 conf/cluster.conf
  cd /usr/local/nacos1/conf
  mv cluster.conf.example cluster.conf
  
  cd /usr/local/nacos2/conf
  mv cluster.conf.example cluster.conf
  
  各个节点修改 conf/cluster.conf 配置文档的内容
  cd /usr/local/nacos1/conf
  vim cluster.conf
  
  cd /usr/local/nacos2/conf
  vim cluster.conf
  
  各个节点都需要维护以下内容(集群中所有节点的ip:端口号):
  192.168.0.156:8848
  192.168.0.156:8847
  注意:这里配置ip地址时,不要有127.0.0.1或者localhost,
  必须是Linux命令 hostname -i 能够识别的IP,具体原因不详。
  hostname -i 这条命令,可以用于查看服务器的ip地址。
  
  如果配置时使用了127.0.0.1或者localhost,会出现如下错误:
  failed to req API:/api//nacos/v1/ns/instance after all servers([127.0.0.1:8848...
  同时:如果以后再出现类似的错误,查看 cluster.conf 文档。该文档会根据机器ip地址的变动而变动。
  
4.分别启动各个节点,在bin目录下执行如下命令:
  bash -f ./startup.sh 
  或者
  sh startup.sh   --该命令会提示 startup.sh 未找到,但是也能启动
  相比于单态模式启动少了 -m standalone
  启动信息有:nacos is starting with cluster 表示以集群模式启动。
  
  分别访问各个节点的管理系统,能够进入说明配置成功。并且在管理系统的集群管理中,可以看到各个节点。

四、nacos创建高可用集群步骤–方式一适用于单台服务器

在视频中同一台服务器创建集群,并不是像我上面这样复制多个nacos的安装包。我的这种方式,更适用于集群节点在不同的服务器上。
他是在同一个nacos安装包中,修改了starup.sh文档,在启动时指定不同的端口号,同一个安装包启动多次。

1.只有一份nacos的安装包,修改 conf/cluster.conf 配置文档。
  修改内容和上面一样,都是添加所有节点的ip:端口,如下:
  192.168.0.156:8848
  192.168.0.156:8847
  
2.修改nacos的启动脚本 bin/startup.sh 使nacos能够以不同的端口启动,先备份下startup.sh
  cd /usr/local/nacos/bin
  cp startup.sh startup.sh.bk
  其中cp是复制命令,mv是移动命令可以实现剪切和重命名
  
3.我们查看下 startup.sh 文档的内容:vim startup.sh
  这里记录一个命令,在通过vim查看文档内容时,可以通过 :set nu 命令让文档显示行号
  
  第一处修改:
  在 startup.sh 文档的第59行有如下一句:
  while getopts ":m:f:s:c:p:" opt --这一句的意思是执行startup.sh时可以传递:m、f、s、c、p等参数。
  具体这些参数能干什么,在59行下面有一个do cash命令注明了每个参数的作用。
  
  我们在59行增加一个参数t,修改为:while getopts ":m:f:s:c:p:t:" opt 
  然后在do cash命令中增加参数t的作用,如下:
  t)
  	  PORT=$OPTARG;;
  这两行的作用就是通过t传递的参数,赋值给端口PORT。
  
  第二处修改:
  在 startup.sh 文档的第144行有如下一句:
  nohup $JAVA ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
  
  在这一句中增加指定启动端口的命令:-Dserver.port=${PORT},修改后如下:
  nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
  
4.在 conf/application.properties 配置文档中配置了默认的端口号:
  server.port=8848   可以注掉也可以不注掉,我选择注掉。
  
5.经过以上步骤,启动nacos时就可以通过参数t,指定端口号了,如下:
  bash -f ./startup.sh -t 8848
  bash -f ./startup.sh -t 8847
  
6.注意这时如果在想启动nacos的单机模式,也需要通过-t指定端口了:
  bash -f ./startup.sh -t 8848 -m standalone

五、创建nacos集群需要注意几点:

1.如果是从单态环境变成进群环境,单态环境创建的命名空间,配置信息文档就没有了。所以先构建集群环境,在配置nacos管理系统。
2.我在集群中一个节点配置的命名空间、配置信息 文档等,在其他集群节点也可以看到。

六、创建高可用的数据库、高可用的nginx
1.创建高可用的数据库,暂时没有学习过,这里暂不介绍。
2.创建高可用的nginx,指定虚拟ip作为统一的入口。这一条还是建议使用的,否则有三个节点,我想登录nacos管理系统则有三个地址。
nginx指定统一入口之后,登录nacos管理系统则有统一的登录地址。
而且后面服务接入nacos时,如果不用nginx指定统一入口时,服务端需要配置每个节点的地址,并用逗号分割。

我们这里高可用的nginx不做介绍了,只记录下nginx指定集群的统一入口。只是简单实现,具体nginx的知识可以去查看以往nginx学习时的记录。

1.编辑 nginx/nginx.conf 配置文档
  cd /usr/local/nginx/conf
  vim nginx.conf
  
2.在http区域中增加一个server,如下:
  server {
      listen       8311;
      server_name  localhost 127.0.0.1; 
      
      location / {
          proxy_pass   http://nacos/;
          index  index.html index.htm index.jsp;
      }
  }
  这个server的端口号是8311,地址是localhost 或者 127.0.0.1;
  它指向的地址是http://nacos/,是一个负载。
  
3.在http中指定负载nacos,如下:
  upstream nacos {
      server 127.0.0.1:8848;
      server 127.0.0.1:8847;
  }
 
4.保存nginx.conf文档之后,启动nginx
  sudo /usr/local/nginx/sbin/nginx
  这样当我去访问 http://localhost:8311/nacos 或者访问 http://127.0.0.1/nacos 就可以访问到nacos的后台管理系统了。
  只是具体是哪个节点就由nginx负责负载处理了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值