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环境,请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8+;
  3. Maven 3.2.x+;
  4. 集群需要依赖mysql,单机可不必
  5. 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安装以及实现集群)的相关配置的更多相关文章

  1. Spring Cloud - Nacos注册中心入门单机模式及集群模式

    近几年微服务很火,Spring Cloud提供了为服务领域的一整套解决方案.其中Spring Cloud Alibaba是我们SpringCloud的一个子项目,是提供微服务开发的一站式解决方案. 包 ...

  2. nacos单机,集群安装部署

    nacos单机启动 准备 下载nacos安装包 下载地址 准备centos环境 (本次测试使用docker) PS C:\Users\Administrator> docker run -tid ...

  3. Greenplum源码编译安装(单机及集群模式)完全攻略

    公司有个项目需要安装greenplum数据库,让我这个gp小白很是受伤,在网上各种搜,结果找到的都是TMD坑货帖子,但是经过4日苦战,总算是把greenplum的安装弄了个明白,单机及集群模式都部署成 ...

  4. Spark Tachyon编译部署(含单机和集群模式安装)

    Tachyon编译部署 编译Tachyon 单机部署Tachyon 集群模式部署Tachyon 1.Tachyon编译部署 Tachyon目前的最新发布版为0.7.1,其官方网址为http://tac ...

  5. Windows环境下Zookeeper的安装和部署(单机模式和伪集群模式)

    第一部分:单机模式 1)下载地址:http://www.pirbot.com/mirrors/apache/zookeeper/,建议下载stable版本 2)解压缩 将下载好的压缩包解压到指定目录, ...

  6. Presto单机/集群模式安装笔记

    Presto单机/集群模式安装笔记 一.安装环境 二.安装步骤 三.集群模式安装: 3.1 集群模式修改配置部分 3.1.1 coordinator 节点配置. Node172配置 3.1.2 nod ...

  7. 第5章 选举模式和ZooKeeper的集群安装 5-2 单机伪分布式安装zookeeper集群

    先搭建伪分布式集群,再去搭建真分布式集群.有些的人的电脑内存.性能比较低,所以在搭建真实的一个分布式环境的话,可能会相对来说比较卡,所以两种都会做一下,首先会在单机上搭建一个集群.单机上的集群主要就是 ...

  8. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  9. Rabbit安装(单机及集群,阿里云)

    Rabbit安装(单机及集群,阿里云) 前言 虽然我并不是部署人员,但是自己私人测试环境的各类东东还是得自己安装的. 尤其在规模不大的公司,基本安装部署工作都是后端的份内之事. 那么最令人痛苦的,莫过 ...

随机推荐

  1. zsh & for loop bug

    zsh & for loop bug ​for: command not found syntax error near unexpected token do' do' Unicode 编码 ...

  2. 你所不知道的 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 ...

  3. 动态规划算法 All In One

    动态规划算法 All In One dynamic programming leetcode https://leetcode.com/tag/dynamic-programming/ https:/ ...

  4. jest ignore

    jest ignore modulePathIgnorePatterns https://jestjs.io/docs/en/configuration modulePathIgnorePattern ...

  5. 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 ...

  6. CI / CD in Action

    CI / CD in Action Continuous Integration (CI) & Continuous Delivery (CD) https://github.com/mark ...

  7. BTC暴涨市值仅次于亚马逊,NGK推出新人助力空投,直接免费送VAST!

    数据显示,在谷歌搜索中,关键词"BTC"的全球搜索指数在过去一周达到满值100点.特斯拉"加持"下,比特币重启暴涨模式,最高报价48126美金单价,非小号数据显 ...

  8. Java 动态调试技术原理及实践

    本文转载自Java 动态调试技术原理及实践 导语 断点调试是我们最常使用的调试手段,它可以获取到方法执行过程中的变量信息,并可以观察到方法的执行路径.但断点调试会在断点位置停顿,使得整个应用停止响应. ...

  9. E百科 | 基于MEC的边缘AI服务

    简介: 阿里云边缘计算团队付哲解读5G下热门场景:边缘AI.作者:阿里云付哲,计算机科学与技术专业博士后,在流量检测.资源调度领域有深入研究,其论文<Astraea: Deploy AI Ser ...

  10. mysql主从备份说明(win系统)

    1. 环境描述: 主机:192.168.2.201 从机:192.168.2.111 Mysql版本:5.7 2. 主机my.ini配置: log-bin=C:\mysqlback expire-lo ...