社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html
nacos官网下载:https://github.com/alibaba/nacos/releases
您可以在Nacos的官网下载(上边连接)中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.1。
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
[root@bogon ~]# mkdir /usr/local/soft/nacos
[root@bogon ~]# cd /usr/local/soft/nacos
[root@bogon nacos]# wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz
解压nacos:
[root@bogon nacos]# tar -zxvf nacos-server-1.4.1.tar.gz
Apache Derby
来存储数据,单击模式可不用配置数据库):(1) 单机模式支持mysql,编辑application.properties文件
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
[root@bogon nacos]# vim /usr/local/soft/nacos/nacos/conf/application.properties
光标下移到spring.datasource.platform=mysql,键盘输入 “i” 进入编辑模式:
放开spring.datasource.platform=mysql前面的#,
放开db.num=1,db.url.0=,db.user.0,db.password.0=,前面的#。
根据自己的数据库和账号、密码进行配置,图下图:
键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。
备注:db.num=1 只有一个数据源,根据自身的数据源个数进行配置。
(2)创建数据库(上图中的数据库名为nacos_config):
mysql创建数据库:nacos_config
打开nacos/conf/nacos-mysql.sql文件,将sql语句拷贝到mysql数据库,执行。
[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin
[root@bogon bin]# sh startup.sh -m standalone
备注:startup.sh是linux系统的启动执行文件,windows下使用startup.cmd。-m 表示:启动模式。standalone 表示单机模式。 后边不带-m standalone 参数时默认使用集群模式启动。
[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent
防火墙重起:
[root@bogon bin]# firewall-cmd --reload
浏览器输入:http://ip:8848/nacos/ 账号:nacos 密码:nacos
准备三台服务器,都下载nacos的安装包,且都进行以下1和2的配置(可先配置好一台,其他的进行直接拷贝即可)
在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf.example,这是官网给的模板文件,重建cluster.conf文件或者直接更换模板文件的名称,删除.example即可。请每行配置成ip:port。(请配置3个或3个以上节点):
[root@bogon bin]# cd /usr/local/soft/nacos/nacos/conf
[root@bogon conf]# cp cluster.conf.example cluster.conf
编辑cluster.conf文件:
[root@bogon conf]# vim /usr/local/soft/nacos/nacos/conf/cluster.conf
光标下移,键盘输入 “i” 进入编辑模式:
把三个默认的ip和端口进行修改,修改为自己的三个nacos服务ip以及端口,建议三台nacos服务都在不同的服务器上,这样才能真正达到集群高可用。
如下图所示:
备注:由于我只有一台服务器,暂且用不同的端口来实现吧,生产环境不建议。
键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。
和单机模式的数据源配置相同(上边单机模式的第一步),这里不再重复。
[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8847
[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8849
备注:当前是在同一台服务器上,使用不用的端口号来区分,所以需要修改相应地端口号,配置文件在nacos/conf/的application.properties文件,此处修改省略。
[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin
使用内置数据源(没有配置自己的mysql数据源)
[root@bogon bin]# sh startup.sh -p embedded
使用已配置的mysql数据源,集群模式启动(无-m standaone参数,默认是集群模式)
[root@bogon bin]# sh startup.sh
备注:参照以上的启动方式,启动另外两个nacos服务。
可通过查看/conf/nacos.log(详细日志)或/conf/start.out(启动记录)查看nacos的启动情况以及运行情况(三个nacos服务的查询方式相同):
[root@bogon bin]# tail -n 200 /usr/local/soft/nacos/nacos/logs/start.out
如下图所示:
上边的信息说明集群模式启动成功。
三台机器都要防火墙开放端口,此处和单机的模式相同,此处省略。
通过浏览器访问三台nacos:
http://192.168.30.110:8847/nacos
http://192.168.30.110:8848/nacos
http://192.168.30.110:8849/nacos
登录账号:nacos 密码:nacos
三个页面显示如下:
登录以后,查看集群信息:
(1)直连ip模式:
项目中的bootstrap.yml文件,添加一下内容:
spring: application: name: test-producer cloud: nacos: discovery: server-addr: http://192.168.30.110:8847,http://192.168.30.110:8848,http://192.168.30.110:8849 # 直连ip模式 config: server-addr: ${spring.cloud.nacos.discovery.server-addr} file-extension: yaml
以上的模式,实质不是真正的集群模式,客户端需要指向所有nacos的ip,如果其中由同一台nacos宕机,那么生产者或消费者就一直在报连接超时问题(虽然不影响使用)。
(2)使用nginx配置真正的集群(nginx起到负载均衡的效果,推荐使用):
[root@bogon bin]# mkdir /usr/local/soft/nginx [root@bogon bin]# cd /usr/local/soft/nginx [root@bogon nginx]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
[root@bogon nginx]# yum install gcc-c++ # 编译依赖 gcc 环境 可使用 gcc -v 命令查询系统是否安装了gcc,如果已安装,这里可省略
[root@bogon nginx]# yum install -y pcre pcre-devel # 安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码
[root@bogon nginx]# yum install -y zlib zlib-devel # zlib库提供了压缩算法,在nginx的各种模块中需要使用gzip压缩
[root@bogon nginx]# yum install -y openssl openssl-devel # nginx支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了https,需要安装 OpenSSL 库
[root@bogon nginx]# tar -zxvf nginx-1.18.0.tar.gz # 解压nginx安装包
[root@bogon nginx]# cd nginx-1.18.0 # 进入nginx-1.18.0目录
[root@bogon nginx-1.18.0]# ./configure # 使用默认配置
[root@bogon nginx-1.18.0]# make # 当前目录进行编译,观察是否有报错,如有报错,查看上边的依赖是否安装成功
[root@bogon nginx-1.18.0]# make install # 编译安装
执行完以上操作,/usr/local/下回多一个nginx文件夹,这是默认的安装路径。
进入nginx的安装目录,编辑nginx.conf文件:
[root@bogon nginx-1.18.0]# vim /usr/local/nginx/conf/nginx.conf
光标下移,键盘输入 “i” 进入编辑模式,找到server位置,替换一下内容:
upstream nacos_server { # 这里负载均衡,默认的分发策略是线性轮询 server 192.168.30.110:8847; # 三个nacos服务器的ip和端口 server 192.168.30.110:8848; server 192.168.30.110:8849; } server { listen 8846; # 修改nginx监听的端口为8846 server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://nacos_server; # 这个是代理的地址,名字和上边定义的upstream 后边的名字匹配
proxy_set_header Host $host; # 避免http请求中丢失Host头部的情况下Host不被重写的失误,此处很重要,一开始没有此配置时,一直连接不上,同时nginx也打不开。
# root html;
# index index.html index.htm;
}
键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。
[root@bogon nginx-1.18.0]# cd /usr/local/nginx/sbin [root@bogon sbin]# ./nginx
启动nginx: cd /usr/local/nginx/sbin ./nginx 关闭nginx: cd /usr/local/nginx/sbin ./nginx -s quit 或者 ./nginx -s stop 重启nginx: cd /usr/local/nginx/sbin ./nginx -s reload 查看nginx运行状态: ps aux|grep nginx 查看nginx服务器日志: tail -fn 200 /usr/local/nginx/logs/access.log
防火墙开放端口:
[root@bogon sbin]# firewall-cmd --zone=public --add-port=8846/tcp --permanent
防火墙重起:
[root@bogon sbin]# firewall-cmd --reload
浏览器访问nginx:http://192.168.30.110:8846/nacos
spring: application: name: test-producer cloud: nacos: discovery: server-addr: http://192.168.30.110:8846 # 直接连接nginx,通过nginx实现集群的代理 config: server-addr: ${spring.cloud.nacos.discovery.server-addr} file-extension: yaml
浏览器访问nginx : http://192.168.30.110:8846/nacos
浏览器访问nacos-8847: http://192.168.30.139:8847/nacos
浏览器访问nacos-8848: http://192.168.30.139:8848/nacos
浏览器访问nacos-8849: http://192.168.30.139:8849/nacos
观察 服务管理 --》服务列表 都存在了微服务的注册信息。
至此 nacos的安装以及集群配置到此结束!
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!