网站建设的开发语言,wordpress如何把注册链接,昆明做网站建设公司,东莞房地产网站建设解决 Nacos 国内下载速度缓慢的问题
方案 1. 选择相应的版本源码下载
1.1 依次点击 1、2、3 选中我们的最新稳定版本 1.4.0 1.2 点击下载 ZIP、或者 clone 也行#xff0c;这里都可以
2. 本地编译
2.1 预备环境准备 2.2 解压编译
3. 启动验证
3.1 解压 3.2 启动服务器 3…解决 Nacos 国内下载速度缓慢的问题
方案 1. 选择相应的版本源码下载
1.1 依次点击 1、2、3 选中我们的最新稳定版本 1.4.0 1.2 点击下载 ZIP、或者 clone 也行这里都可以
2. 本地编译
2.1 预备环境准备 2.2 解压编译
3. 启动验证
3.1 解压 3.2 启动服务器 3.3 登录 nacos 服务控制台验证
由于各种已知的原因不可抗力在国内下载的速度太慢了记录分享下解决方案。
整体思路使用国内的 Gitee 上的镜像传送门下载源码进行编译
因为nacos需要依赖java所以需要提前安装好jdk官方推荐jdk8按照要求安装即可具体安装可以参考 Linux环境JDK安装
如果部署nacos集群的话需要通过nginx做集群的负载均衡nginx的安装可以参考nginx基础学习(一)linux环境下nginx的安装和配置文件的初步认识
nacos的持久化使用的是MySQL如果需要了解MySQL安装可以参考以下两篇文章分别是MySQL5.7和MySQL8的安装方法。
CentOS7环境下离线安装MySQL5.7数据库 CentOS7环境下离线安装MySQL8.0.28数据库 上面基础环境奠定了以后开始做nacos集群的安装和部署工作。
下载nacos
根据官方推荐目前推荐使用2.0.3稳定版本。下载地址nacos在github上的下载地址。
https://github.com/alibaba/nacos/releases
特别提醒
这里有个坑需要规避进入这个下载地址后不要直接点击后面的zip或者tar.gz下载
需要点击对应版本号进入详情页面拉到底部下载下载的包名是nacos-server-2.0.3.tar.gz。
如果直接点击后面的zip或者tar.gz下载下载的包是nacos-2.0.2.tar.gz这个不是编译好的安装包。上传nacos安装包到服务器上 可以通过scp命令将nacos安装包上传到服务器上命令如下
推荐选用 Linux/Unix/Mac。 64 bit JDK 1.8下载 配置。 Maven 3.2.x下载 配置。 2.2 解压编译 1. 解压下载的压缩包如下图 在这里插入图片描述 2. 进入到 Nacos 文件夹进行编译 命令如下 mvn -Prelease-nacos -Dmaven.test.skiptrue clean install -U 在这里插入图片描述
编译结果如下 编译过程很慢请耐心等待文末也会给大家放上编译好的直接下载伸手党必备
这里可以看到已经编译成功了并且打好的包的位置也打印出来了。
启动验证 3.1 解压 这里把上面的 nacos-server.zip 复制到服务器验证。
unzip nacos-server- v e r s i o n . z i p 或者 t a r − x v f n a c o s − s e r v e r − version.zip 或者 tar -xvf nacos-server- version.zip或者tar−xvfnacos−server−version.tar.gz cd nacos/bin 3.2 启动服务器 Linux/Unix/Mac 启动命令 (standalone 代表着单机模式运行非集群模式): sh startup.sh -m standalone 如果您使用的是 ubuntu 系统或者运行脚本报错提示 [[符号找不到可尝试如下运行
bash startup.sh -m standalone Windows 启动命令 (standalone 代表着单机模式运行非集群模式): cmd startup.cmd -m standalone 3.3 登录 nacos 服务控制台验证 在浏览器输入: http://ip:8848/nacos 用户名 / 密码默认为nacos/nacos
bin 直接安装
https://blog.csdn.net/millery22/article/details/125564078?spm1001.2101.3001.6650.1utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125564078-blog-122182282.235%5Ev38%5Epc_relevant_sort_base2depth_1-utm_sourcedistribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125564078-blog-122182282.235%5Ev38%5Epc_relevant_sort_base2utm_relevant_index2
上传nacos安装包到服务器上
可以通过scp命令将nacos安装包上传到服务器上命令如下
scp D:\\nacos-server-2.0.3.tar.gz root192.168.75.130:/usr/local解压nacos安装包
tar -xvf nacos-server-2.0.3.tar.gz
将名称改为nacos-8840
mv nacos nacos-8840持久化数据库配置
进入nacos-8840/cnof目录下将Connect URL of DB修改为如下内容
spring.datasource.platformmysql
jdbc.DriverClassNamecom.mysql.cj.jdbc.Driver ## 如果使用数据库是MySQL8需要加上此驱动名否则不用加
db.num1
db.url.0jdbc:mysql://192.168.75.128:3306/nacos_config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueserverTimezoneAsia/Shanghai
db.user.0root
db.password.0123456将nacos-8840/conf目录下的nacos-mysql.sql文件复制到数据库所在的服务器内创建名为nacos_config数据库并在数据库内执行sql脚本文件
## 复制文件到数据库所在服务器
scp nacos-mysql.sql root192.168.75.128:/usr/local
## 创建数据库并执行脚本
mysql -uroot -p123456
create datasource nacos_config
use nacos_config
source /usr/local/nacos-mysql.sql修改集群配置 将nacos-8840/conf目录下的cluster.conf.example文件复制一份并重命名为cluster.conf修改其内容如下
## 复制并重命名
cp cluster.conf.example cluster.conf
## 修改内容,将文件内最后三行换成现有的集群ip和端口如果超过3台依次向后加即可
vim cluster.conf
## 修改后如下
192.168.75.130:8840
192.168.75.130:8850
192.168.75.130:8860修改application.properties文件将server-port修改为8840
### Default web context path:
server.servlet.contextPath/nacos
### Default web server port:
server.port8840配置优化点 这个优化点在你的服务器性能较好的情况下可以不做我是在单台虚拟机里面部署三个nacos服务资源紧张修改一下此配置更放心进入nacos-8840/bin目录找到startup.sh文件将文件中java堆栈的配置修改小一点这里修改成128m修改内容JAVA_OPT“${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize128m -XX:MaxMetaspaceSize128m”具体修改如下
## 修改前的内容
if [[ ${MODE} standalone ]]; thenJAVA_OPT${JAVA_OPT} -Xms512m -Xmx512m -Xmn256mJAVA_OPT${JAVA_OPT} -Dnacos.standalonetrue
elseif [[ ${EMBEDDED_STORAGE} embedded ]]; thenJAVA_OPT${JAVA_OPT} -DembeddedStoragetruefiJAVA_OPT${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize128m -XX:MaxMetaspaceSize320mJAVA_OPT${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath${BASE_DIR}/logs/java_heapdump.hprofJAVA_OPT${JAVA_OPT} -XX:-UseLargePages
fi
## 修改后的内容
if [[ ${MODE} standalone ]]; thenJAVA_OPT${JAVA_OPT} -Xms512m -Xmx512m -Xmn256mJAVA_OPT${JAVA_OPT} -Dnacos.standalonetrue
elseif [[ ${EMBEDDED_STORAGE} embedded ]]; thenJAVA_OPT${JAVA_OPT} -DembeddedStoragetruefiJAVA_OPT${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn128m -XX:MetaspaceSize128m -XX:MaxMetaspaceSize128mJAVA_OPT${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath${BASE_DIR}/logs/java_heapdump.hprofJAVA_OPT${JAVA_OPT} -XX:-UseLargePages
fi复制集群节点 上面已经完成端口为8840节点的配置接下来将nacos-8840复制两份出来并重命名
cp -R nacos-8840 nacos-8850
cp -R nacos-8840 nacos-8860修改8850和8860节点的配置很简单将application.properties文件中的server-port做对应的修改即可。 启动集群服务 分别执行三个节点的startup.sh命令
# 在/usr/local目录下执行
./nacos-8840/bin/startup.sh
./nacos-8850/bin/startup.sh
./nacos-8860/bin/startup.sh检查节点是否已经启动成功
netstat -ano | grep 8840
netstat -ano | grep 8850
netstat -ano | grep 8860配置nginx负载均衡 主要配置负载和监听配置内容如下
## 在http下配置负载
upstream nacoscluster { server 127.0.0.1:8840;server 127.0.0.1:8850;server 127.0.0.1:8860;
}
http{## 在server内配置监听server {listen 8848; ## 监听8848端口 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; #index index.html index.htm; proxy_pass http://nacoscluster; ## 代理到负载上 }}
}
stream {upstream nacosgrpc {server 127.0.0.1:9840;server 127.0.0.1:9850;server 127.0.0.1:9860;}server {listen 9848; # 这里监听的端口是和http内监听的端口对应1000得到的88481000proxy_pass nacosgrpc;}
}
配置完成后启动或者重启nginx即可。 访问nacos页面 在浏览器中输入http://192.168.75.130:8848/nacos会弹出登录页面默认用户名和密码都是nacos到此集群部署大功告成。
存在的坑点
官方解释
nacos2.0版本相比1.x新增了gRPC的通信方式因此需要增加两个端口新增端口在配置的主端口server.port基础上进行一定的偏移量自动生成。偏移规则
端口 与主端口偏移量 描述 9848 1000 客户端gRPC请求服务端端口用于客户端服务发起连接和请求 9849 1001 客户端gRPC请求服务端端口用于服务间同步等
改动引起的变化说明
因为这个改动在一台机器上部署nacos集群时不能将运行端口设置为连续端口比如8840、8841、8842否则会发生端口冲突。
运行在8840端口nacos服务实际上会占用8840、8940、8941三个端口
运行在8841端口nacos服务实际上会占用8841、8941、8942三个端口
运行在8842端口nacos服务实际上会占用8842、8942、8943三个端口。
另一个问题
在官方文档中还有一个很重要的说明是加粗的内容 使用VIP/nginx请求时需要配置成TCP转发不能配置http2转发否则连接会被nginx断开。 正常Nacos都是使用集群的模式需要使用nginx做转发这里就需要在nginx配置文件中增加一些配置如果继续使用nacos 1.x的配置在启动项目的时候会出现报错。详细说明如下。
代码中nacos的配置信息
spring:application:name: nacos-payment-providercloud:nacos:discovery:server-addr: 192.168.75.130:8848这个配置是在nacos 1.x的时候是没有问题的但是如果你nacos更新到了2.x也没有修改nginx配置文件中grpc的转发这里就会出现启动项目报错问题。报错信息:Request nacos server failed。这里提到但是这里没有需要修改的需要修改的在nginx内。
nginx需要做的修改 首先是要求你的nginx中包含stream模块如何检查你的nginx是否安装了stream模块呢用下面的命令
/usr/local/nginx/sbin/ningx -V打印出来的信息如下
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module看下面的config arguments信息如果包含–with-stream那么就没有问题stream模块已经包含在内。我这里就是没有这个模块需要安装。采用我这种模式安装首先注意一定要把nginx内的配置文件备份一下。
# 第一步注意这里的--prefix/usr/local/nginx根据你的实际情形来
./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream
# 第二步make make install知道为啥让你备份了吧这两步执行相当于重新装了一下。安装好以后执行/usr/local/nginx/sbin/ningx -V命令输出的结果就有–with-stream啦。 到现在就可以修改nginx的配置啦其实在上面的安装过程已经体现了在这里重点再提一下。配置内容如下。需要注意的是stream需要在http外和http同级。
stream {upstream nacosgrpc {server 127.0.0.1:9840;server 127.0.0.1:9850;server 127.0.0.1:9860;}server {listen 9848; # 这里监听的端口是和http内监听的端口对应1000得到的88481000proxy_pass nacosgrpc;}
}