Nacos安装配置详细流程

2023-11-18

1.Nacos安装

1.1概述

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

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

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

1.2.下载

下载地址:https://github.com/alibaba/nacos/tags

在这里插入图片描述

1.3.安装

#进入压缩包所在的文件夹:
[root@localhost ~]# cd /usr/upload
#把文件解压到/user/local目录下:
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local	

1.4.启动和关闭

  • 2.3.1.启动
#进入nacos的bin包:
[root@localhost local]# cd nacos/bin/
#非集群模式启动:
[root@localhost bin]# ./startup.sh -m standalone
  • 2.3.2.关闭
[root@localhost bin]# ./shutdown.sh

1.5.测试

查看Linux的IP地址:

[root@localhost bin]# ifconfig

浏览器访问:http://192.168.204.156:8848/nacos,默认用户名/密码为: nacos/nacos

在这里插入图片描述

在这里插入图片描述

2.Nacos持久化

2.1为什么持久化?

Nacos默认有自带嵌入式数据库derby,但是如果做集群模式的话,就不能使用自己的数据库不然每个节点一个数据库,那么数据就不统一了,需要使用外部的mysql

2.2配置Nacos持久化

2.2.1.切换数据库

修改application.properties

​ vim /usr/local/nacos/conf/application.properties:

增加支持mysql数据源配置(目前只支持mysql,版本要求:5.6.5+)

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.31.19:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111

2.2.2.初始化数据库

创建nacos数据库并导入sql

在这里插入图片描述

2.2.3.测试

重启nacos测试nacos所有写到嵌入式数据库的数据是否都写到了mysql:

在这里插入图片描述

3.Nacos集群

3.1.部署架构图:

在这里插入图片描述

1、如何把请求平均分配?使用nginx
2、为甚么是3台?投票选举leader
3、如何同步数据?leader

3.2.集群

3.2.1.节点规划

节点 端口
192.168.204.156 8848
192.168.204.156 8849
192.168.204.156 8850

3.2.2.配置集群

  1. 找到conf/cluster.conf.example ,将其改名为 conf/cluster.conf ,并将内容改为如下:
# ip:port
192.168.209.129:8848
192.168.209.129:8849
192.168.209.129:8850
  1. 复制三份Nacos
[root@localhost bin]# cd /usr/local
新建文件夹命令
[root@localhost java]# mkdir nacos_cluster
复制文件夹命令
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8848
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8849
[root@localhost java]# cp -r nacos nacos_cluster/nacos_8850
  1. conf/application.properties 中的端口号分别改为:
nacos_8848的叫8848,下面的两个以此类推
server.port=8848
server.port=8849
server.port=8850

3.3.配置代理服务

3.3.1.安装nginx

  • 安装nginx的依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
  • 下载nginx
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
  • 解压安装包
tar -zxvf nginx-1.12.0.tar.gz
  • 配置nginx安装包
cd nginx-1.12.0

./configure --prefix=/usr/local/nginx

作用:./configure配置nginx安装到/usr/local/nginx目录下

  • 编译并安装
make && make install

8.3.2.配置nginx代理nacos

修改nginx.conf:

#新建一个参数
upstream nacos {
  server 192.168.209.129:8848;
  server 192.168.209.129:8849;
  server 192.168.209.129:8850;
}
#修改server.location
server {
  listen 80;
  server_name  localhost;
  location / {
    proxy_pass http://nacos;
  }
}

3.3.2.测试nginx

  • 进入nginx工具包

cd /usr/local/nginx/sbin

  • 开启

./nginx

  • 关闭

./nginx -s stop

  • 重启

./nginx -s reload

  • 查看状态

ps -ef | grep nginx

同理,也可以使用这个命令查看nacos:

ps -ef | grep nacos

3.4.测试

1.启动nacos集群

[root@localhost upload]# cd /usr/local/nacos_cluster/nacos_8848/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8849/bin
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/local/nacos_cluster/nacos_8850/bin
[root@localhost bin]# ./startup.sh

2.启动nginx

[root@localhost nginx]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx 

3.将微服务注册到Nacos集群

在这里插入图片描述

4.访问nacos集群

启动nacos-config服务,并通过nginx访问nacos集群:http://192.168.209.129/nacos

在这里插入图片描述

在这里插入图片描述

4.Nacos开机自启

4.1.编写开机启动文件

  • 添加nacos.service文件
vim /lib/systemd/system/nacos.service
  • 文件内容如下:
[Unit]
Description=nacos
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

4.2.修改nacos的startup.sh

  • 修改JAVA_HOME路径并注销之后的3行配置,如下:
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_191 
#[ ! -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_HOME

4.3.设置开机启动

systemctl daemon-reload        #重新加载服务配置
systemctl enable nacos.service #设置为开机启动
systemctl start nacos.service  #启动nacos服务
systemctl stop nacos.service   #停止nacos服务
systemctl status nacos.service   #查看nacos服务的状态

4.4测试

  • 重启,查看nacos服务状态

5.补充

5.1mysql安装

  • 进入一个文件夹,下载YUM库
wget  http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  • 安装YUM库
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
  • 安装mysql
yum -y install mysql-community-server  --nogpgcheck
  • 启动和关闭
#启动
systemctl start mysqld
#关闭
systemctl stop mysqld
#重启
systemctl restart mysqld
#查看状态:
systemctl status mysqld
#设置开机自启:
systemctl enable mysqld
  • 登录
#查询默认密码:
grep "password" /var/log/mysqld.log
#登录:
mysql -u root -p
#登出:
exit
  • 修改密码
#修改密码策略
mysql> SET GLOBAL validate_password_policy=LOW;
mysql> SET GLOBAL validate_password_length=4;
#修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1111';
  • 开启远程登录权限
mysql> use mysql;
mysql> select User,Host from user;
mysql> update user set host ="%" where user = "root";
#刷新
mysql> flush privileges;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nacos安装配置详细流程 的相关文章

  • 如何使用户输入与变量相关?

    我不知道如何准确地表达这个问题 但这就是我想要实现的目标 我正在使用堆栈实现河内塔插图 这是里面的main 功能 System out println Type the source pole number and the destinat
  • 在 Linux 2.6.21 (glibc 2.3.5) 上进行 ARP 和反向 ARP

    我需要在任意 IP 网络上存储对第三方设备的持久引用 其中设备的 IP 地址可能是静态的或由 DHCP 随机分配 我不控制网络上的设备 也不能依赖 DNS 和其他现有的或与设备一起使用的临时网络协议 所以我被指示使用硬件地址和 ARP 进行
  • 如何随时暂停 pthread?

    最近我开始将 ucos ii 移植到 Ubuntu PC 上 我们知道 在pthread的回调函数中的 while 循环中简单地添加一个标志来执行暂停和恢复是不可能模拟ucos ii中的 进程 的 如下解决方案 因为ucos ii中的 进程
  • 从java程序调用SVN命令

    我想从 java 程序调用 SVN 命令 update commit 有什么帮助吗 SVN 乌龟SVN 环境 java程序将在jBoss服务器内运行 从应用程序服务器内使用 GUI SVN 客户端是一个非常非常糟糕的主意 而Tortoise
  • 用简单的英语来说,什么是单例?

    我已经在谷歌上搜索了大约一个小时 但我仍然不清楚什么是单例 谁能让我更清楚一点 也许可以发布一个代码示例 我所知道的是 一个给定类只能有一个实例 但是你不能为此使用静态类吗 提前致谢 The simple plain English1 ve
  • 如何从 C 文件更改终端中的目录

    如何从 C 程序更改将在终端上生效的目录 实际上不要告诉 system 函数或 chdir 函数 这些仅适用于 C 中的进程或子 shell 假设我正在从 bash shell 执行一个 C 程序 其进程 ID 为 10223 那么 我可以
  • S3 Java 客户端经常失败,并出现“内容长度分隔消息正文过早结束”或“java.net.SocketException 套接字已关闭”

    我有一个在 S3 上做很多工作的应用程序 主要是从中下载文件 我看到很多此类错误 我想知道这是否是我的代码中的问题 或者服务是否真的像这样不可靠 我用来从 S3 对象流读取的代码如下 public static final void wri
  • alter Windows 文件中的 krb5.ini 文件哪里去了?

    至少在 Windows XP 之前 如果您加入具有 Kerberos 领域特定设置的域 就会有一个 krb5 ini 文件 从 Vista 或 7 开始 不再需要此文件 我试图找到有关此的更多信息 但陷入困境 krb5 ini 文件中的设置
  • 通过两个标准比较两个对象[重复]

    这个问题在这里已经有答案了 我有一个包含布尔字段的类用户 我想对用户列表进行排序 我希望布尔字段等于 true 的用户位于列表的顶部 并且我想按名称对它们进行排序 这是我的课程 public class User int id String
  • 如何在运行时获取类名,但仅获取类名?

    如何在运行时获取类名 但仅获取实际的类名而不是整个 com xyz etc 我的意思只是最后一个句点之后的名字部分 您必须将以下代码片段用于对象 yourObject getClass getSimpleName 或供课堂使用 yourCl
  • 将 xml 传递给 jquery 脚本时出现问题

    我正在尝试使用 jsp 中的 bufferedReader 从本地路径读取 xml 并尝试将 xml 传递给 jquery 脚本 如下所示
  • 将列表沿元素拆分为子列表

    我有这个清单 List
  • 如何在Java中从一组选定的颜色中输出随机颜色? (安卓)

    因此 我希望每当用户输入答案时都为字符串赋予随机颜色 我的问题是 我不确定如何使字符串的随机颜色成为特定范围的颜色 例如 如果我希望字符串随机变成蓝色 红色 绿色 粉色 白色或棕色 只有这些颜色 没有其他颜色 到目前为止 我已经使用以下代码
  • 当我计划高效缓存多个值时,应该如何实现 Guava 缓存?

    我有一个带有 Guava 的 Java 类LoadingCache
  • 无法解析符号“servlet”

    我有一个新手大问题 当我尝试以下操作时 servlet 变成红色并指示 无法解析符号 servlet import javax servlet http import javax servlet ServletException 我的 ap
  • 使用 Spring Security 滑动过期

    我正在使用 Spring Security 我注意到 当用户登录时 身份验证 cookie 的有效期约为一天 它似乎并没有 刷新 这个过期日期 cookie 在一天后过期 即使在当天结束前 5 分钟我已经通过安全 URL 向服务器发出了请求
  • 压缩 Log4j 文件

    是否可以压缩日志文件 我通过 RollingFileAppender 进行 log4j 附加功能 http logging apache org log4j extras 对此表示支持 只需将以下内容添加到您的RollingFileAppe
  • Spring MVC 中拦截器和过滤器的区别

    我有点困惑Filter and Interceptor目的 据我从文档中了解到 Interceptor在请求之间运行 另一方面Filter在渲染视图之前运行 但在控制器渲染响应之后运行 那么两者的区别在哪里postHandle 在拦截器和d
  • IntelliJ IDEA 无法在 Ubuntu 上启动

    我用IDEA好几个月了 到现在还可以 现在从快捷方式启动IDEA没有效果 我想这是在一些更新之后发生的 我尝试重新安装IDEA 但问题仍然存在 从终端启动 idea sh 会产生类似的效果 chronoexp ChronoExp PC Pr
  • Java 全屏模式对话框

    如何创建一个可用作内部对话框的自定义模式 JDialog 用于全屏独占模式 我有一个 JScrollPane 带有一个巨大的滚动条 里面充满了巨大的按钮 如下所示 FOO BAR BIZ

随机推荐

  • Vue项目打包详细过程(非nginx代理配置)

    Vue项目打包部署至阿里云ECS 将项目入口文件中含有跨域连接的地址改为服务器地址 将Config目录下index js中的build中的assetsPublicPath修改为 在build目录下util js中添加publicPath 同
  • docker安装openwrt

    docker安装openwrt docker安装openwrt 安装问题 1 docker Error response from daemon failed to create the macvlan port devic 插件安装 do
  • [Basic]测试的概念 - 集成测试- 系统测试- 验收测试- 回归测试 -

    b 集成测试 英文是Integration Testing b 集成测试是指一个应用系统的各个部件的联合测试 以决定他们能否在一起共同工作并没有冲突 部件可以是代码块 独立的应用 网络上的客户端或服务器端程序 这种类型的测试尤其与客户服务器
  • Mpvue介绍

    Mpvue是什么 Mpvue是一个基于Vue的微信小程序前端框架 可以让我们用vue的语法写小程序的项目 简单来说就是 以前我们写微信小程序 必须借助微信小程序的开发者工具 微信开发工具提供的语法才能写小程序 Mpvue的出现 让我们可以先
  • Java开发之高并发必备篇(一)——线程基础

    提到高并发 这几年几乎是火遍编程界的网络名词了 无它 随着现在互联网的高速发展特别是电商平台类的应用快速发展 互联网服务内容也越来越丰富 用户越来越多 淘宝 天猫 京东 拼夕夕 抖音等几乎成为了广大群众每日必用的应用了 而在这些应用中见到的
  • Pocket PC 2003中文模拟器

    在用EVC中有自带的模拟器STANDSDK emulator 进行基于WinCE平台的开发时 Pocket PC 2003 SDK是必不可少的 在安装完PPC后可以安装其中文补丁第二版 这样模拟器所使用的就是中文操作系统界面了 如果没有安装
  • dbscan聚类python_20分钟学会DBSCAN聚类算法

    DBSCAN是一种非常著名的基于密度的聚类算法 其英文全称是 Density Based Spatial Clustering of Applications with Noise 意即 一种基于密度 对噪声鲁棒的空间聚类算法 直观效果上看
  • 利用python语言编程控制LEGO EV3

    1 环境搭建 安装WinSCP 网址 https sourceforge net projects winscp 下载一个自己喜欢的python IDE 例如pycharm 将EV3的系统换为ev3dev 参考网址 https www ev
  • 适合儿童学习的编程语言一览

    近两年我们常常会看到如下新闻 4 5岁的就能具备独立开发APP的能力 6 7岁的孩子甚至可以设计出可以上线的小游戏 在我们感慨小朋友们出色的编程能力的同时 不难发现编程已从边缘学科逐渐被大家重视 编程普及率不断提升 而且逐渐呈现出低龄化发展
  • python——常见ERROR汇总

    读取txt csv等数据时 UnicodeDecodeError gbk codec can t decode byte 0xbf in position 2 illegal multibyte sequence 释义 Unicode的解码
  • 80. 删除有序数组中的重复项 II

    Powered by NEFU AB IN Link 文章目录 80 删除有序数组中的重复项 II 题意 思路 代码 80 删除有序数组中的重复项 II 题意 给你一个有序数组 nums 请你 原地 删除重复出现的元素 使得出现次数超过两次
  • 和愚蠢的人打交道_如何与工作困难的人打交道

    和愚蠢的人打交道 Humans are social creatures who seek personal validation based on how others interact with them We feel good an
  • (转) serialVersionUID作用

    Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的 在进行反序列化时 JVM会把传来的字节流中的serialVersionUID与本地相应实体 类 的serialVersionUID进行比较 如果相
  • C++11 -- 包装器

    文章目录 function包装器 function包装器的概念 function的运用 function实例化 使用function解决逆波兰表达式 bind包装器 bind包装器相关介绍 bind调整函数形参传参顺序 bind绑定函数固定
  • 双机热备,如何用浮动IP跨网络访问异地服务

    环境是这样的 本地有两台服务器A B A 192 168 151 170 主 B 192 168 151 171 备 双机的浮动IP 192 168 151 174 承载网IP 10 182 254 164 异地服务端 172 16 122
  • python怎么去除字符串的空格、回车

    内容取此 str 123 456 print str strip 去除左右两边的空格 print str lstrip 去除左边的空格 print str rstrip 去除右边的空格 print str replace 去除字符串全部空格
  • ELK详解(十七)——filebeat输出到Redis和Elasticsearch实战

    今天继续给大家介绍Linux运维相关知识 本文主要内容是使用filebeat将日志输出到Redis和Elasticsearch的实战配置 在ELK详解 十六 filebeat安装与使用一文中 我们介绍了filebeat的安装 部署和简单应用
  • 基于SpringBoot-Dubbo的微服务快速开发框架

    简介 基于Dubbo的分布式 微服务基础框架 为前端提供脚手架开发服务 结合前一篇 Web AP快速开发基础框架 可快速上手基于Dubbo的分布式服务开发 项目代码 https github com backkoms web service
  • 微信小程序最新获取头像昵称方式

    前言 版本历史变迁 一 获取头像的正确姿势 二 获取昵称的正确姿势 总结 前言 产品需要获取微信用户的昵称和头像 这这还不简单 so easy 通过wx getUserProfile或者 wx getUserInfo 就可以获取到 但是获取
  • Nacos安装配置详细流程

    快速导航 1 Nacos安装 1 1概述 1 2 下载 1 3 安装 1 4 启动和关闭 1 5 测试 2 Nacos持久化 2 1为什么持久化 2 2配置Nacos持久化 2 2 1 切换数据库 2 2 2 初始化数据库 2 2 3 测试