前面学习了单机模式下的启动,今天尝试下集群部署。

生产环境中部署nacos肯定是使用集群模式cluster保证高可用。

官方文档的集群部署推荐使用VIP+域名模式,把所有服务列表放到一个vip下面,然后挂到一个域名下面。

三种部署方式

官方推荐,nacos集群一般有3种方式,三种部署方式在访问形式的区别如下,

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用

http://VIP:port/openAPI 挂载VIP模式,直连vip即可,下面挂server真实ip,可读性不好

http://nacos.com:port/openAPI 域名 + VIP模式,可读性好,而且换ip方便,推荐模式

官方建议至少3个或3个以上的节点来实现集群模式。

修改启动端口

程序启动默认占用的端口是8848,我们可以对端口进行修改,打开conf文件下的application.properties,修改启动端口。

现在演示使用单机伪集群模式,所以通过修改端口的方式来部署这3个实例,端口分别为:8848、8858、8868。

配置集群配置文件

在nacos的解压目录nacos/的conf目录下,配置文件cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)

# ip:port
58.18.17.155:8848
58.18.17.155:8858
58.18.17.155:8868

配置 MySQL 数据库

生产使用建议至少主备模式,或者采用高可用数据库。

初始化 MySQL 数据库

sql语句源文件在distribution/conf/目录下的nacos-mysql.sql,在本地初始化对应的数据库。

添加数据库配置

配置文件在nacos的conf目录下的application.properties,添加以下配置

db.num=1
db.url.0=jdbc:mysql://58.18.17.155:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=root

db.num 为数据库实例数量 如果有多个数据库实例通过 db.url.0、db.url.1..... 指定不同的数据库链接。

启动服务器

默认的没有参数模式,就是集群模式,启动命令:

sh startup.sh

关闭服务器,可以直接执行

sh shutdown.sh

配置Nginx服务

修改conf/nginx.conf配置

upstream nacos {
server 58.18.17.155:8848;
server 58.18.17.155:8858;
server 58.18.17.155:8868;
} server {
listen 80;
server_name test.nacos.com;
location / {
proxy_pass http://nacos;
}
}

配置域名 test.nacos.com 绑定VIP

服务注册和配置

服务注册

curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080

服务发现

curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName

发布配置

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=helloWorld

获取配置

curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

集群管理

3个节点都正常启动之后, 可以分别登录 各个web 界面查看 集群的节点、健康状态:

http://58.18.17.155:8848/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

http://58.18.17.155:8858/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

http://58.18.17.155:8868/nacos/#/clusterManagement?dataId=&group=&appName=&namespace=&serverId=

关注公众号:架构进化论,获得第一手的技术资讯和原创文章

Alibaba Nacos 服务发现组件集群部署的更多相关文章

  1. nacos 1.1.x 集群部署笔记

    Nacos 是什么? https://nacos.io/zh-cn/docs/what-is-nacos.html 服务(Service)是 Nacos 世界的一等公民.Nacos 支持几乎所有主流类 ...

  2. 分布式协调服务之Zookeeper集群部署

    一.分布式系统概念 在聊Zookeeper之前,我们先来聊聊什么是分布式系统:所谓分布式系统就是一个系统的软件或硬件组件分布在网络中的不同计算机之上,彼此间通过消息传递进行通信和协作的系统:简单讲就是 ...

  3. linux下nacos的1.1.3版本集群部署

    windows单机版参见0.9.0.RELEASE版本的spring cloud alibaba nacos实例 ,linux集群版我们还是用上次下载的nacos压缩包,通过rz -y上传到wlf用户 ...

  4. Spring Cloud Alibaba基础教程:Nacos的集群部署

    继续说说生产环境的Nacos搭建,通过上一篇<Spring Cloud Alibaba基础教程:Nacos的数据持久化>的介绍,我们已经知道Nacos对配置信息的存储原理,在集群搭建的时候 ...

  5. Spring Cloud Alibaba | Nacos集群部署

    目录 Spring Cloud Alibaba | Nacos集群部署 1. Nacos支持三种部署模式 2. 集群模式下部署Nacos 2.1 架构图 2.2 下载源码或者安装包 2.3 配置集群配 ...

  6. Spring Cloud Alibaba学习笔记(2) - Nacos服务发现

    1.什么是Nacos Nacos的官网对这一问题进行了详细的介绍,通俗的来说: Nacos是一个服务发现组件,同时也是一个配置服务器,它解决了两个问题: 1.服务A如何发现服务B 2.管理微服务的配置 ...

  7. 【Nacos】本地集群部署

    关于Nacos已经展开了四篇入门文章: 初探Nacos(一)-- 单机模式启动 初探Nacos(二)-- SpringCloud使用Nacos的服务注册与发现 初探Nacos(三)-- SpringB ...

  8. Spring Cloud Alibaba Nacos 服务注册与发现功能实现!

    Nacos 是 Spring Cloud Alibaba 中一个重要的组成部分,它提供了两个重要的功能:服务注册与发现和统一的配置中心功能. 服务注册与发现功能解决了微服务集群中,调用者和服务提供者连 ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之部署master/node节点组件(四)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 1.部署master组件 ...

随机推荐

  1. 如何在centos 7.4 上安装 python 3.6

    yum -y install https://centos7.iuscommunity.org/ius-release.rpmyum -y install python36uyum -y instal ...

  2. vueX中使用namespaced

    用法: namespaced:true; getter调用时: this.$store.getters['XXX/getXXX']; commit调用时: this.$store.commit('XX ...

  3. Linux 内核PCI去除一个驱动

    去除一个驱动是一个非常容易的动作. 对于一个 PCI 驱动, 驱动调用 pci_unregister_driver 函数. 这个函数只调用驱动核心函数 driver_unregister, 使用 一个 ...

  4. tensorflow学习笔记——ResNet

    自2012年AlexNet提出以来,图像分类.目标检测等一系列领域都被卷积神经网络CNN统治着.接下来的时间里,人们不断设计新的深度学习网络模型来获得更好的训练效果.一般而言,许多网络结构的改进(例如 ...

  5. 【k8s】kubeadm快速部署Kubernetes

    1.Kubernetes 架构图 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Mast ...

  6. read、write 与recv、send区别 gethostname

    recv相对于read有什么区别呢? 其实它跟read函数功能一样,都可以从套接口缓冲区sockfd中取数据到buf,但是recv仅仅只能够用于套接口IO,并不能用于文件IO以及其它的IO,而read ...

  7. CentOS 7 端口白名单设置

    # 查看白名单列表 firewall-cmd --zone=public --list-ports # 添加白名单端口 firewall-cmd --zone=public --add-port=/t ...

  8. 解读中兴通信在物联网行业如何践行DDD

    此前,在由 ThoughtWorks 举办的领域驱动设计峰会 DDD-China 2019 上,InfoQ 记者就开发团队为何需要 DDD.目前业界实践 DDD 的挑战等问题对中兴通讯资深软件架构师张 ...

  9. Web_telnet 通过JAVA实现网页上面的命令行远程工具 以及对于流的理解

    前言 这几天研究了一下如何在web页面上通过telnet 连接一个远程的机器,通过命令行进行控制,让然,B/S架构的项目,如果直接通过 浏览器是无法和远程机器进行通信的,我们就得借助后端来帮助实现这样 ...

  10. MySQL基础之事务编程学习笔记

    MySQL基础之事务编程学习笔记 在学习<MySQL技术内幕:SQL编程>一书,并做了笔记.本博客内容是自己学了<MySQL技术内幕:SQL编程>事务编程一章之后,根据自己的理 ...