SpringCloud Alibaba系列文章列表
0. SpringCloud Alibaba入门简介
1. SpringCloud Alibaba Nacos 之 服务注册中心
2. SpringCloud Alibaba Nacos 之 服务配置中心
3. SpringCloud Alibaba Nacos 之 集群
4. SpringCloud Alibaba Sentinel 服务限流熔断(万字长文)
文章目录
-
-
- **SpringCloud Alibaba系列文章列表**
- 1. Nacos集群部署说明
- 2. docker安装nacos集群
-
- 2.1 下载安装脚本(nacos-docker-master.zip)
- 2.2 Nginx配置
- 3. 项目实战配置
-
1. Nacos集群部署说明
参考 https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
需要1个nginx+3个nacos注册中心+1个mysql;
真正集群肯定是至少三台linux服务器,来跑3个nacos;
但是由于个人只有一台2G的Linux服务器(实际可用1G多点,小的可怜),跑一个nacos估计就撑死了;想跑集群不太可能;
如果用docker的话,一台linux服务器,需要安装docker,跑3个nacos,一个mysql;1G多也不够;
最后采用的方案是docker方案,然后进行改造;
本服务器,用docker跑三个nacos,再借一台服务器跑mysql;nginx安装在windows本地来访问服务器;
2. docker安装nacos集群
参考 https://github.com/nacos-group/nacos-docker
2.1 下载安装脚本(nacos-docker-master.zip)
下载地址:https://github.com/nacos-group/nacos-docker
放到服务器中解压
#解压
unzip nacos-docker-master.zip
#进入
cd nacos-docker-master/
#启动
docker-compose -f example/cluster-hostname.yaml up
如果内存够大,上面直接就ok了;实际情况内存不够,nacos一直重启;所以改造如下:
- 修改启动脚本cluster-hostname.yaml
注释掉mysql相关的;#restart: always是自动重启,因为测试所以就是注释掉了;version: "3" services: nacos1: hostname: nacos1 container_name: nacos1 image: nacos/nacos-server:latest volumes: - ./cluster-logs/nacos1:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8848:8848" - "9555:9555" env_file: - ../env/nacos-hostname.env #restart: always #depends_on: # - mysql nacos2: hostname: nacos2 image: nacos/nacos-server:latest container_name: nacos2 volumes: - ./cluster-logs/nacos2:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8849:8848" env_file: - ../env/nacos-hostname.env #restart: always #depends_on: #- mysql nacos3: hostname: nacos3 image: nacos/nacos-server:latest container_name: nacos3 volumes: - ./cluster-logs/nacos3:/home/nacos/logs - ./init.d/custom.properties:/home/nacos/init.d/custom.properties ports: - "8850:8848" env_file: - ../env/nacos-hostname.env #restart: always #depends_on: # - mysql
- 修改环境变量/nacos-docker-master/env/nacos-hostname.env
#nacos dev env PREFER_HOST_MODE=hostname NACOS_SERVERS=nacos1:8848 nacos2:8848 nacos3:8848 MYSQL_SERVICE_HOST=主机ip MYSQL_SERVICE_DB_NAME=nacos_devtest MYSQL_SERVICE_PORT=3306 MYSQL_SERVICE_USER=用户名 MYSQL_SERVICE_PASSWORD=密码 #JVM参数限制 JVM_XMS=256m JVM_XMX=256m JVM_XMN=128m JVM_MS=128m JVM_MMS=128m
-
mysql添加数据库 nacos_devtest ,执行数据库脚本nacos-mysql.sql
nacos-mysql.sql在nacos安装包下 conf目录下面,安装包下载地址 https://github.com/alibaba/nacos/releases
#启动
docker-compose -f example/cluster-hostname.yaml up
#查看启动日志
cd example/cluster-logs/nacos1
tail -f start.out
2.2 Nginx配置
upstream cluster{
server 服务器ip:8848;
server 服务器ip:8849;
server 服务器ip:8850;
}
location / {
proxy_pass http://cluster;
}
启动nginx,访问localhost/nacos , nacos/nacos登录
如下图,集群配置成功;
3. 项目实战配置
采用之前的项目cloudalibaba-provider-payment9001 (具体参考博客 https://blog.csdn.net/shuai8624/article/details/111241747 )
修改application.yml文件中的server-addr 为 nginx地址 http://localhost:80
server:
port: 9001
spring:
application:
name: nacos-payment-provider
cloud:
nacos:
discovery:
server-addr: http://localhost:80 #配置nacos地址
management: #暴露端口
endpoints:
web:
exposure:
include: '*'
启动项目,如下图注册成功
点赞+评论+关注
本文源码地址: https://gitee.com/shuaidawang/SpringCloudDemo.git
有错误的地方欢迎指正!可以加入qq交流群: 700637673