前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nacos2.1.0 - 外网服务器上的集群部署

Nacos2.1.0 - 外网服务器上的集群部署

原创
作者头像
Reset
发布2022-12-19 22:54:13
2K0
发布2022-12-19 22:54:13
举报
文章被收录于专栏:Reset

简介

什么是 Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

新版本部署

Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

image-1660726302719
image-1660726302719

一、部署架构图

image-1660723639109
image-1660723639109

其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos。使用nginx作为负载均衡器。

二、Nacos节点的地址

代码语言:txt
复制
nacos1 120.222.333.444:8848
nacos2 121.222.333.444:8848
nacos3 123.222.333.444:8848

三、Nacos集群搭建步骤

1.下载Nacos2.1.0 。 官网地址 下载地址

2.把压缩包上传到服务器中解压,并进入nacos目录中tar -zxvf nacos-server-2.1.0.tar.gz cd nacos 3.进入Nacos的conf目录,找到cluster.conf.example和application.properties

3.1 在application.properties文件最下面添加如下代码

db.num=1 db.url.0=jdbc:mysql://IP:3306/nacos-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=root在3个nacos中分别添加该配置,注意区分IP地址,如果这里填写的是外网地址,则cluster.conf也全部填写外网地址,否则就必须都填写内网地址(填写内网地址必须保证是同一个账号下的服务器资源)Specify local server's IP:nacos.inetutils.ip-address=120.222.333.444

> 2.将cluster.conf.example复制为cluster.conf文件,并在cluster.conf中作如下的配置,这里使用的是外网地址,内网地址不做演示120.222.333.444:8848 121.222.333.444:8848 123.222.333.444:8848

启动Nacos4.1 进入bin目录启动nacos

启动

./startup.sh

关闭

./shutdown.sh

在启动之前可以调整nacos的配置

vim startup.sh

部分配置文件cygwin=false darwin=false os400=false case "`uname`" in CYGWIN*) cygwin=true;; Darwin*) darwin=true;; OS400*) os400=true;; esac error_exit () { echo "ERROR: $1 !!" exit 1 } [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java [ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java [ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOMEif -z "$JAVA_HOME" ; then if $darwin; thenif [ -x '/usr/libexec/java_home' ] ; then export JAVA_HOME=`/usr/libexec/java_home` elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" fi else JAVA_PATH=dirname $(readlink -f $(which javac)) if "x$JAVA_PATH" != "x" ; then export JAVA_HOME=dirname $JAVA_PATH 2>/dev/null fi fi if -z "$JAVA_HOME" ; then error_exit "Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!" fi fiexport SERVER="nacos-server" export MODE="cluster" export FUNCTION_MODE="all" export MEMBER_LIST="" export EMBEDDED_STORAGE="" while getopts ":m:f:s:c:p:" opt do case $opt in m) MODE=$OPTARG;; f) FUNCTION_MODE=$OPTARG;; s) SERVER=$OPTARG;; c) MEMBER_LIST=$OPTARG;; p) EMBEDDED_STORAGE=$OPTARG;; ?) echo "Unknown parameter" exit 1;; esac doneexport JAVA_HOME export JAVA="$JAVA_HOME/bin/java" export BASE_DIR=cd $(dirname $0)/..; pwd export CUSTOM_SEARCH_LOCATIONS=file:${BASE_DIR}/conf/#===========================================================================================JVM Configuration#=========================================================================================== if [ "${MODE}" == "standalone" ]; then JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m" JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true" else if [ "${EMBEDDED_STORAGE}" == "embedded" ]; then JAVA_OPT="${JAVA_OPT} -DembeddedStorage=true" fi#在该位置修改启动时占用的内存 #默认是-server -Xms1g -Xmx2g -Xmn1g JAVA_OPT="${JAVA_OPT} -server -Xms500m -Xmx1000m -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof" JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"fi>> 启动完成可以查看是否启动成功

http://120.222.333.444:8848/nacos

http://121.222.333.444:8848/nacos

http://123.222.333.444:8848/nacos

5.配置nginx负载均衡和TCP转发Nginx 服务器地址 : 120.222.333.444

5.1配置反向代理

代码语言:txt
复制
http {
	gzip  on;
	# weight 权重 
	upstream nacos{
        server 120.222.333.444:8848 weight=5;
        server 120.222.333.444:8848 weight=2;
        server 120.222.333.444:8848 weight=1;
	} 
    	server {
    	listen	8888;
        server_name  localhost;
	}
    	location / {
        proxy_set_header Host $http_host;
        proxy_pass http://nacos;
        }
}

5.2 配置TCP转发

代码语言:txt
复制
stream {
	#客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求
    upstream nacosGrpc {
        server 120.222.333.444:9848 weight=5;
        server 121.222.333.444:9848 weight=2;
        server 121.222.333.444:9848 weight=1;
    }

    server {
        listen 9888;
        proxy_pass nacosGrpc;
    }
	
}

完整配置文件stream { #客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求 upstream nacosGrpc { server 120.222.333.444:9848 weight=5; server 121.222.333.444:9848 weight=2; server 122.222.333.444:9848 weight=1; }server { listen 9888; proxy_pass nacosGrpc; }}events { worker_connections 1024; }http { gzip on;# weight 权重 upstream nacos{ server 120.222.333.444:8848 weight=5; server 120.222.333.444:8848 weight=2; server 120.222.333.444:8848 weight=1; } server { listen 8888; server_name localhost; } location / { proxy_set_header Host $http_host; proxy_pass http://nacos; }}

7.访问 访问 http://120.222.333.444:8888/nacos 看到Nacos的登录页,即可正常使用Nacos

7.连接

代码语言:java
复制
spring:
  cloud:
    nacos:
     # nacos地址
      server-addr: 120.222.333.444:8888

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
    • 什么是 Nacos
      • 新版本部署
      • 一、部署架构图
      • 二、Nacos节点的地址
      • 三、Nacos集群搭建步骤
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的四七层流量分发服务,访问流量经由 CLB 可以自动分配到多台后端服务器上,扩展系统的服务能力并消除单点故障。轻松应对大流量访问场景。 网关负载均衡(Gateway Load Balancer,GWLB)是运行在网络层的负载均衡。通过 GWLB 可以帮助客户部署、扩展和管理第三方虚拟设备,操作简单,安全性强。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档