美文网首页三方登录
服务器nacos-docker集群部署

服务器nacos-docker集群部署

作者: DH大黄 | 来源:发表于2019-11-06 17:44 被阅读0次

服务器nacos-docker集群部署(阿里云服务器)

首先写贴上配置文件,与具体的操作,后面再叙述遇到的坑

部署环境

  • 两台阿里云服务器

  • 一个mysql数据库(此处未配置mysql数据库高可用,只是配置了nacos的高可用)

部署的流程

  • clone项目
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
  • 进入example,新建自己的docker-compose运行镜像的配置
cd example/
vi nacos-config.yaml
version: "2"
services:
  nacos:
    hostname: hbj-nacos
    image: nacos/nacos-server:latest
    container_name: nacos
    environment:
      - MODE=cluster # 集群模式
      - NACOS_SERVERS=IP1:PORT1,IP2:PORT2 # IP1,IP2是对应的服务器外网,PORT1,PORT2是对应的nacos服务端口
      - PREFER_HOST_MODE=hostname
      - NACOS_SERVER_IP=IP1 # 服务器外网
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=MYSQLIP # mysql数据库对应的ip
      - MYSQL_MASTER_SERVICE_PORT=3306    # mysql数据库对应的端口
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos 
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=password
      - MYSQL_DATABASE_NUM=1 # 数据源为1个
    volumes:
      - /home/nacos-docker/logs:/home/nacos/logs # 日志的挂在
    ports:
      - "8848:8848"
      - "9555:9555"
    restart: on-failure
  • 执行命令:
cd ..
docker-compose -f example/nacos-config.yaml up -d
  • nacos便启动起来了(另一台服务器只需要修改对应的NACOS_SERVER_IP即可)

额外的补充

nacos项目对应的github地址 https://github.com/alibaba/nacos

期间遇到的坑

  • 未配置NACOS_SERVER_IP导致找不到集群的节点列表

原因:因为nacos是部署在docker容器中的,它是用的是内网的地址,然而nacos的集群配置是在多台服务器上的,导致服务器之间不能互相访问通,只需要配置上对应的NACOS_SERVER_IP即可

报错样例:

nacos管理页面上访问对应接口:

http://IP:8848/nacos/v1/ns/operator/cluster/states?withInstances=false&pageNo=1&pageSize=10&keyword=&namespaceId=

接口返回的内容:

code:503 msg: server is STARTING now, please try again later!

查看对应的日志:

nacos.log

java.lang.IllegalStateException: unable to find local peer: nacos-hbj:8848, all peers: [IP:8848, IP:8848]
    at com.alibaba.nacos.naming.consistency.persistent.raft.RaftPeerSet.local(RaftPeerSet.java:224)
    at com.alibaba.nacos.naming.monitor.PerformanceLoggerThread.collectMetrics(PerformanceLoggerThread.java:100)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
2019-11-06 15:30:45,002 ERROR Unexpected error occurred in scheduled task.

naming-raft.log

2019-11-06 15:47:30,000 WARN [IS LEADER] no leader is available now!

可以发现出现的原因是找不到对应的节点

相关文章

  • 服务器nacos-docker集群部署

    服务器nacos-docker集群部署(阿里云服务器) 首先写贴上配置文件,与具体的操作,后面再叙述遇到的坑 部署...

  • XDH_LESSON6

    服务器集群搭建、管理与快速部署四台ubuntu虚拟机搭建集群服务器。什么叫服务器集群?服务器集群就是指将很多服务器...

  • 索引服务化的实践及思考

    [TOC] 场景一 在新服务器上部署ES集群: 现在,对于给定服务器,部署ES集群的方式主要有几种: 原始方式:手...

  • Hadoop 集群搭建

    目录 集群简介 服务器准备 环境和服务器设置 JDK环境安装 Hadoop安装部署 启动集群 测试 集群简介 在进...

  • 如何在脉冲云上添加集群节点?

    新建集群后,初始的集群中不包含任何服务器节点,若要正常地部署应用,必须保证集群中有足够可用的服务器节点。 点击集群...

  • 集群式和分布式相关的理解

    分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 集群 集群模式在程序猿...

  • 搭建 solr-cloud(zookeeper集群)

    使用zookeeper作为集群管理工具 如何搭建 zookeeper 集群 其实就是部署多态服务器,每个服务器上部...

  • 国内linux服务器集群管理的平台

    对于使用服务器集群来管理操作的站长或运维人员来说,手动部署环境和和一键式部署环境大家都有见解. 对于服务器集群管理...

  • kafka(二)Kafka快速入门

    集群部署 配置 server.properties 其他服务器一样配置 启动集群 其他服务器一样。 Kafka 命...

  • 分布式、集群、微服务、SOA 之间的区别

    分布式:不同模块部署在不同服务器上 作用:分布式解决网站高并发带来问题 集群:多台服务器部署相同应用构成一个集群 ...

网友评论

    本文标题:服务器nacos-docker集群部署

    本文链接:https://www.haomeiwen.com/subject/mpfpbctx.html