SpringCloud Alibaba Nacos 集群配置
程序员文章站
2022-06-13 12:26:39
...
【系统环境】
- 集群配置环境为Centos7
- Nacos 的版本为1.1.4,MYSQL为5.7,Nginx版本为1.17.9
- 需要配置使用到 Nginx 集群,即值暴露Nginx的地址,由Nginx实现负载均衡,图中VIP的角色就可以理解为Nginx。
- MYSQL版本必须高于5.6.5,这是官方文档规定的。具体参照Nacos官方文档
【参考】
【下载地址】
将下载好的压缩包通过远程访问工具复制到 opt 目录下,并解压。
- 这里所有的配置都会将原始文件复制一份之后,进行操作,以免造成修改错误无法回滚的尴尬
- 默认认为已经配置好 MYSQL 和 Nginx
Nacos 配置
- 复制一份 opt 目录下解压好的 nacos 文件夹到 /mynacos,
- 进入当前文件,conf 目录
- 此目录下有 nacos 官方提供的 SQL脚本,执行此脚本,执行成功后查看表
-
同样,在此目录下有 application.properties,在操作之前,首先备份一份。 修改当前配置文件,在后添加如下命令
vim application.properties 添加 spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true 你的db的username 和 password db.user=root db.password=root
-
继续修改 conf 目录下的 ,复制 cluster.conf.example 文件为 cluster.conf,修改当前文件。
1) 设置当前文件就是配置nacos集群启动的 ip 和 port 2) IP必须和当前虚拟机的网卡ens33相同,不能写127.0.0.1 3) port 端口号可以自定义 4) 根据nacos官方文档可知,nacos集群最少需要三个节点
192.168.xxx.132:3333 192.168.xxx.132:444 192.168.xxx.132:5555
-
修改nacos启动脚本。
进入bin目录下,修改 startup.sh,首先备份一份 进入后,输入命令 :set nu,显示行号 分别修改57.66.134行 ! 同时还需要修改JAVA_HOME,要写成你自己的Jdk位置 ! 如果虚拟机内存不够大,建议修改虚拟机启动参数,不然机器会自动停掉一台,这里坑很大
57 while getopts ":m:f:s:p:" opt 58 do 59 case $opt in 60 m) 61 MODE=$OPTARG;; 62 f) 63 FUNCTION_MODE=$OPTARG;; 64 s) 65 SERVER=$OPTARG;; 66 p) 67 PORT=$OPTARG;; 68 ?) 69 echo "Unknown parameter" 70 exit 1;; 71 esac 72 done
134 nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 & 135 echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"
#=========================================================================================== # JVM Configuration #=========================================================================================== if [[ "${MODE}" == "standalone" ]]; then JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m" JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true" else JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof" JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"
Nginx 配置
-
进入Nginx配置文件目录,备份配置文件
cd /usr/local/nginx/conf/ cp nginx.conf nginx.conf.bk
-
修改Nginx的默认端口,集群配置和地址
测试
- 从本地浏览器访问地址
虚拟机IP:1111/nacos
,出现Nacos登录界面后登录 - 随便写一条测试配置数据,发布后查看虚拟机的MYSQL数据库是否保存有数据,如果更新数据,则表示配置成功
补充
- 编写一个微服务,将Nacos集群配置数据读取出来。
-
Controller
@Value("${server.port}") private String serverPort; @Value("${config.info}") private String configInfo; @GetMapping(value = "/payment/nacos/{id}") public String getPayment(@PathVariable("id") Integer id) { return "Hello Nacos Discovery: " + serverPort + "\t id: " + id + ", ConfigInfo : " + configInfo; // return "Hello Nacos Discovery: " + serverPort + "\t id: " + id; }
-
application.yml && bootstrap.yml
spring: profiles: active: dev
server: port: 9002 spring: application: name: nacos-payment-provider cloud: nacos: discovery: server-addr: 192.168.xxx.132:1111 config: server-addr: 192.168.xxx.132:1111 namespace: 41ccd308-12b9-4673-acb6-21206765998a file-extension: yaml
-
pom
- 需要加入这两个依赖,当然依赖也不止这两个,其他的依赖信息,alibaba的官方文档都有说明,或依照个人而定。
<!-- SpringCloud ailibaba nacos--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- nacos config--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
Nacos配置中心创建 命名空间为dev的yaml格式的配置文件
nacos-payment-provider-dev.yaml
config: info: springcloud alibaba nacos cluster config center, group is DEFAULT_GROUP, version = 1.0
- 启动项目:通过 idea 插件访问
http://localhost:9002/payment/nacos/1001
- 如图所示,注册和配置成功。
上一篇: 贪心
下一篇: 基于PHP实现等比压缩图片大小,
推荐阅读
-
Nacos(四):SpringCloud项目中接入Nacos作为配置中心
-
Spring Cloud Alibaba | Nacos集群部署
-
Spring Cloud Alibaba | Nacos配置管理
-
Springcloud Eureka配置及集群代码实例
-
荐 spring cloud alibaba nacos 实现配置管理
-
Spring Cloud Alibaba Sentinel用nacos配置规则
-
Nacos--在Spring cloud中使用Spring Cloud Alibaba Nacos Discovery(服务注册+配置管理示例)
-
spring cloud alibaba之nacos配置中心
-
Spring Cloud Alibaba + Nacos Config实现配置动态更新
-
springcloud alibaba微服务组件Nacos学习