前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nacos2.2.0+nginx1.14.1-三台集群搭建

nacos2.2.0+nginx1.14.1-三台集群搭建

作者头像
用户8447427
发布2023-10-18 15:09:47
6510
发布2023-10-18 15:09:47
举报
文章被收录于专栏:userlyz学习记录

步骤

安装java jdk

查看系统是否自带

代码语言:javascript
复制
rpm -qa |grep java
rpm -qa |grep jdk
rpm -qa |grep gcj


如果有输出信息

代码语言:javascript
复制
rpm -qa | grep java | xargs rpm -e --nodeps

安装java

代码语言:javascript
复制
yum list java-1.8*
yum install java-1.8.0-openjdk* -y
java -version

安装nacos,单机部署

这里我使用的是nacos2.2.0

安装nacos,并单机部署,运行

代码语言:javascript
复制
unzip nacos-server-2.2.0.zip
cd nacos/bin
sh startup.sh -m standalone

默认轮询机制:
 RoundRobinRule 轮询
 RandomRule 随机
 RetryRule 先安装 RoundRobinRule 的策略获取服务,如果获取服务失败则在指定时间内进行重试,获取可用的服务
 WeightedResponseTimeRule 对RoundRobinRule的扩展,响应速度越快的实例选中权重越大,越容易被选择
 BestAvailableRule 会先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选中一个并发量最小的服务。
 AvailabilityFilteringRule 先过滤掉故障实例,再选择并发较小的实例。
 ZoneAvoidanceRule 默认规则,复合判断server所在区域的性能和server的可用性选择服务器。

单机部署 没有用mysql数据库,默认Nacos使用嵌入式数据库实现数据的存储。

安装nginx

代码语言:javascript
复制
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo yum remove nginx
sudo rm -rf /etc/nginx
sudo yum install nginx

Nacos集群部署(Nacos安装目录/Develop/nacos)

为什么我的显示的是四个,用的都是云服务器,有一个是服务器的内网IP的nacos

如果启动多个默认配置下的nacos节点,数据存储就存在了一致性问题,为了解决这个问题 ,Nacos采用了集中存储的方式来支持集群化部署,目前只支持MySQL Naocs支持三种部署模式: ​ 1、单机模式-用于测试和单机使用 ​ 2、集群模式-多用于生产环境,确保高可用 ​ 3、多集群模式-多用于数据中心 单机模式支持mysql 在0.7版本增加了支持mysql数据源 ../nacos/conf/application.properties

现在正式进入正题nacos集群搭建

服务器名

服务端口

grpc协议端口+1000

grpc port for server +1001

Nacos_ali_1:101.200.40.242(nacos)

8848

9848

9849

Nacos_ali_2:49.232.522.36(naocs)

8848

9848

9849

Nacos_qq_1:121.41.171.66(nacos)

8848

9848

9849

Nginx:101.200.40.242(nginx)

18848

19848

19849

运行三台Nacos服务器

运行之前保证三台服务器都可以访问同一数据库服务器

将单机部署的nacos文件停掉

代码语言:javascript
复制
cd /Develop/nacos/conf
cp cluster.conf.example cluster.conf
vi cluster.conf
## 下边集群的IP放上  三个nacos服务器host:port
101.200.40.242:8848
49.232.52.36:8848
121.41.171.66:8848
# 三台服务器都运行
cd /Develop/nacos/bin
# 先暂停服务
./shutdown.sh
# 开启集群
./startup.sh 

随便找一台已经运行的服务器可以看出

接下来就是最坑的nginx对已经安装Nacos服务的进行负载均衡

我这个并没有设置raft,后边添加了raft,也不知道配好了没,添不添加raft,nginx都可以负载均衡,等后边有时间在测试一下 粘贴代码的时候注意进行*的替换 坑点:

  1. Nacos Server 端口: Nacos Server 端口是用于提供 HTTP API 的端口。通过该端口,可以进行配置管理和服务发现相关的操作,如发布、获取配置信息,注册和发现服务等。这是 Nacos 的主要对外交互端口,一般是用户应用程序和 Nacos Server 之间进行通信的端口。
  2. Raft 协议端口: Raft 协议是用于 Nacos 的高可用集群的一种一致性协议。Nacos 使用 Raft 协议来保证集群中的各个节点之间数据的一致性和高可用性。Raft 协议端口用于各个节点之间进行数据同步和选举,以确保集群中的节点能够保持一致的状态。
  3. gRPC 端口: gRPC 是一种高性能、开源的 RPC 框架,它支持多种编程语言,并且在 Nacos 中被用于内部节点之间的通信。gRPC 端口用于 Nacos 各个节点之间进行高效的、二进制的通信,如节点注册、心跳等。
代码语言:javascript
复制
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/conf.d/*.conf;
    upstream nacos-cluster {
        ip_hash;
        server 101.200.40.242:8848;
        server 49.232.52.36:8848;
        server 121.41.171.66:8848;
    }

    server {
        listen 18848;
        server_name localhost;

        location /nacos {
            proxy_pass http://nacos-cluster/nacos;
        }
    }
}

stream {
    # 偏移1000
    upstream nacos-grpc {
        server 101.200.40.242:9848;
        server 49.232.52.36:9848;
        server 121.41.171.66:9848;
    }

    server {
        listen 19848;
        proxy_pass nacos-grpc;
    }

    # 偏移1001
    upstream nacos-tcp-19849 {
        server 101.200.40.242:9849;
        server 49.232.52.36:9849;
        server 121.41.171.66:9849;
    }

    server {
        listen 19849;
        proxy_pass nacos-tcp-19849;
    }
    # 偏移-1000
    upstream nacos-tcp-17848{
        server 101.200.40.242:7848;
        server 49.232.52.36:7848;
        server 121.41.171.66:7848;
    }
    server{
        listen 17848;
        proxy_pass nacos-tcp-17848;
    }
}

然后你就可以看到了:

问题

1、mysql访问次数太多

问题描述 [root@VM-8-8-centos ~]# mysql -h 101.200.40.242 -u root -p Enter password: ERROR 1129 (HY000): Host ‘49.232.52.36’ is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’ [root@VM-8-8-centos ~]# mysql -h 101.200.40.242 -u root -p 输入密码: 错误 1129 (HY000):由于连接错误过多,主机 ‘49.232.52.36’ 被阻止;使用 ‘mysqladmin flush-hosts’ 来解除阻止。

解决方法:

1、换个数据库

2、等事件结束

3、清除被阻止的主机列表

代码语言:javascript
复制
mysqladmin flush-hosts -u root -p

2、 nginx配置文件问题

用的nacos2.2.0没有想到引入了新的raft和grpc协议,要多开放几个节点

参考

Nginx + Nacos2.x集群配置 - 二先森 - 博客园 (cnblogs.com)

Nacos 2.0.0 兼容性文档

Nacos 原理 Jraft Distro Grpc 持续跟新中…_nacos jraft_不学会Ⅳ的博客-CSDN博客

Nacos 2.0 正式发布,性能提升了 10 倍!! - 有梦想的老王 - 博客园 (cnblogs.com)

超高性能rpc框架之gRPC 快速整合gRPC+nacos+springCloud_nacos grpc_川哟的博客-CSDN博客

支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 步骤
    • 安装java jdk
      • 安装nacos,单机部署
        • 安装nginx
          • Nacos集群部署(Nacos安装目录/Develop/nacos)
            • 运行三台Nacos服务器
            • 接下来就是最坑的nginx对已经安装Nacos服务的进行负载均衡
        • 问题
          • 1、mysql访问次数太多
            • 2、 nginx配置文件问题
            • 参考
            相关产品与服务
            负载均衡
            负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档