Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos支持三种部署模式
- 单机模式 - 用于测试和单机试用。
- 集群模式 - 用于生产环境,确保高可用。
- 多集群模式 - 用于多数据中心场景。
一、Nacos下载安装:
nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html
nacos官网下载:https://github.com/alibaba/nacos/releases
1、版本选择:
您可以在Nacos的官网下载(上边连接)中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.1。
2、预备环境准备:
Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 1.8+;
- Maven 3.2.x+;
- 集群需要依赖mysql,单机可不必
- 3个或3个以上Nacos节点才能构成集群。
3、下载源码或者安装包:
[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
二、单击模式运行:
1、配置mysql数据库(默认使用的是嵌入式数据库Apache Derby
来存储数据,单击模式可不用配置数据库):
(1) 单机模式支持mysql,编辑application.properties文件
在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:
- 1.安装数据库,版本要求:5.6.5+
- 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
- 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
[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数据库,执行。
2、运行nacos:
[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 参数时默认使用集群模式启动。
3、防火墙开放端口(默认的是8848):
[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent
防火墙重起:
[root@bogon bin]# firewall-cmd --reload
4、通过ui查看是否部署成功:
浏览器输入:http://ip:8848/nacos/ 账号:nacos 密码:nacos
三、集群模式运行 --- 生产模式:
准备三台服务器,都下载nacos的安装包,且都进行以下1和2的配置(可先配置好一台,其他的进行直接拷贝即可)
1、配置集群配置文件:
在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” 保存并退出。
2、配置mysql数据库:
和单机模式的数据源配置相同(上边单机模式的第一步),这里不再重复。
3、再拷贝2个nacos服务(当前是在同一台机器上,生产环境不建议):
[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文件,此处修改省略。
4、启动服务(三个服务都启动):
[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服务。
5、查询nacos启动日志:
可通过查看/conf/nacos.log(详细日志)或/conf/start.out(启动记录)查看nacos的启动情况以及运行情况(三个nacos服务的查询方式相同):
[root@bogon bin]# tail -n 200 /usr/local/soft/nacos/nacos/logs/start.out
如下图所示:
上边的信息说明集群模式启动成功。
6、防火墙开放端口:
三台机器都要防火墙开放端口,此处和单机的模式相同,此处省略。
7、访问nacos:
通过浏览器访问三台nacos:
http://192.168.30.110:8847/nacos
http://192.168.30.110:8848/nacos
http://192.168.30.110:8849/nacos
登录账号:nacos 密码:nacos
三个页面显示如下:
登录以后,查看集群信息:
8、生产者、消费者连接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起到负载均衡的效果,推荐使用):
- 下载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
- 安装nginx以及所需依赖:
[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的安装目录,编辑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” 保存并退出。
- 启动nginx:
[root@bogon nginx-1.18.0]# cd /usr/local/nginx/sbin
[root@bogon sbin]# ./nginx
- 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
- 生产者、消费者项目中的bootstrap.yml文件,添加一下内容:
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的安装以及集群配置到此结束!
Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置的更多相关文章
- Spring Cloud - Nacos注册中心入门单机模式及集群模式
近几年微服务很火,Spring Cloud提供了为服务领域的一整套解决方案.其中Spring Cloud Alibaba是我们SpringCloud的一个子项目,是提供微服务开发的一站式解决方案. 包 ...
- nacos单机,集群安装部署
nacos单机启动 准备 下载nacos安装包 下载地址 准备centos环境 (本次测试使用docker) PS C:\Users\Administrator> docker run -tid ...
- Greenplum源码编译安装(单机及集群模式)完全攻略
公司有个项目需要安装greenplum数据库,让我这个gp小白很是受伤,在网上各种搜,结果找到的都是TMD坑货帖子,但是经过4日苦战,总算是把greenplum的安装弄了个明白,单机及集群模式都部署成 ...
- Spark Tachyon编译部署(含单机和集群模式安装)
Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...
- Windows环境下Zookeeper的安装和部署(单机模式和伪集群模式)
第一部分:单机模式 1)下载地址:http://www.pirbot.com/mirrors/apache/zookeeper/,建议下载stable版本 2)解压缩 将下载好的压缩包解压到指定目录, ...
- Presto单机/集群模式安装笔记
Presto单机/集群模式安装笔记 一.安装环境 二.安装步骤 三.集群模式安装: 3.1 集群模式修改配置部分 3.1.1 coordinator 节点配置. Node172配置 3.1.2 nod ...
- 第5章 选举模式和ZooKeeper的集群安装 5-2 单机伪分布式安装zookeeper集群
先搭建伪分布式集群,再去搭建真分布式集群.有些的人的电脑内存.性能比较低,所以在搭建真实的一个分布式环境的话,可能会相对来说比较卡,所以两种都会做一下,首先会在单机上搭建一个集群.单机上的集群主要就是 ...
- 微服务管理平台nacos虚拟ip负载均衡集群模式搭建
一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...
- Rabbit安装(单机及集群,阿里云)
Rabbit安装(单机及集群,阿里云) 前言 虽然我并不是部署人员,但是自己私人测试环境的各类东东还是得自己安装的. 尤其在规模不大的公司,基本安装部署工作都是后端的份内之事. 那么最令人痛苦的,莫过 ...
随机推荐
- zsh & for loop bug
zsh & for loop bug for: command not found syntax error near unexpected token do' do' Unicode 编码 ...
- 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined
1 1 1 === 全相等(全部相等) == 值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...
- 动态规划算法 All In One
动态规划算法 All In One dynamic programming leetcode https://leetcode.com/tag/dynamic-programming/ https:/ ...
- jest ignore
jest ignore modulePathIgnorePatterns https://jestjs.io/docs/en/configuration modulePathIgnorePattern ...
- HTTP vs HTTP/2 vs HTTP/3 (QUIC)
HTTP vs HTTP/2 vs HTTP/3 (QUIC) Nginx HTTP/1.1 HTTP/2 HTTP/3 (QUIC) HTTPS 计算机网络协议 OSI 协议簇 (7) TCP/IP ...
- CI / CD in Action
CI / CD in Action Continuous Integration (CI) & Continuous Delivery (CD) https://github.com/mark ...
- BTC暴涨市值仅次于亚马逊,NGK推出新人助力空投,直接免费送VAST!
数据显示,在谷歌搜索中,关键词"BTC"的全球搜索指数在过去一周达到满值100点.特斯拉"加持"下,比特币重启暴涨模式,最高报价48126美金单价,非小号数据显 ...
- Java 动态调试技术原理及实践
本文转载自Java 动态调试技术原理及实践 导语 断点调试是我们最常使用的调试手段,它可以获取到方法执行过程中的变量信息,并可以观察到方法的执行路径.但断点调试会在断点位置停顿,使得整个应用停止响应. ...
- E百科 | 基于MEC的边缘AI服务
简介: 阿里云边缘计算团队付哲解读5G下热门场景:边缘AI.作者:阿里云付哲,计算机科学与技术专业博士后,在流量检测.资源调度领域有深入研究,其论文<Astraea: Deploy AI Ser ...
- mysql主从备份说明(win系统)
1. 环境描述: 主机:192.168.2.201 从机:192.168.2.111 Mysql版本:5.7 2. 主机my.ini配置: log-bin=C:\mysqlback expire-lo ...