简介
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
主要作用替代spring cloud的注册中心和配置中心
官方文档
依赖关系:nacos依赖与mysql的数据库(也可以是其他数据库)作为存储
访问:ip+端口,默认登陆用户名密码为nacos/nacos
docker部署脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| version: '3' services: mysql: image: nacos/nacos-mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: adminroot MYSQL_DATABASE: xk-config MYSQL_USER: nacos MYSQL_PASSWORD: nacos ports: - 14050:3306
deploy: replicas: 1 restart_policy: condition: on-failure nacos: image: nacos/nacos-server:2.0.0-bugfix restart: on-failure environment: PREFER_HOST_MODE: hostname MODE: standalone SPRING_DATASOURCE_PLATFORM: mysql MYSQL_SERVICE_HOST: mysql MYSQL_SERVICE_DB_NAME: xk-config MYSQL_SERVICE_PORT: 3306 MYSQL_SERVICE_USER: nacos MYSQL_SERVICE_PASSWORD: nacos
ports: - 14051:8848
|
docker swarm nacos指定容器虚拟IP自定义网络
在用nacos做为注册中心和配置中心时,如果部署模式是docker swarm模式时,由于容器内部多个网卡,默认随机eth0,就会导致这个ip是内部ip导致无法访问其他容器的服务
解决
先看stack的网络,从下图可以看到用的网络是10.0.3开头的
因此可以进行设置优先网络
1 2
| environment: - spring.cloud.inetutils.preferred-networks=10.0.3
|
或者进入容器进行忽略网卡的设置,可以看到需要忽略到eth0,和eth2,只剩下需要的
因此配置参数如下:
1
| - spring.cloud.inetutils.ignored-interfaces=eth0.*,eth2.*
|
更多详细的配置见Appendix A: Common application properties
测试网络的互访可以通过springcloud的心跳
1
| wget http://10.0.3.194:9200/actuator/health -q -O -
|