首页 > 其他分享 >Nacos搭建单机实例

Nacos搭建单机实例

时间:2023-07-22 23:12:28浏览次数:35  
标签:单机 数据库 MySQL db nacos Nacos 实例 mysql

Nacos是阿里开源的微服务架构组件,既可以用作服务注册中心,也可用作配置中心。
虽然Nacos的官方文档也有关于如何部署的说明,但是个人觉得不够详细和连续,故本文将阐述在单机环境实际搭建Nacos环境的详细步骤已经遇到的一些问题。

环境准备

由于安装的是单机环境,且需要使用MySQL数据库,所以需要在安装主机准备好Java8+运行时环境和MySQL数据库服务。
安装MySQL服务可以参考:yum方式安装mysql

安装步骤

第一步:下载Nacos安装包

Nacos的最新发布版本可以从这里下载,有2中格式的压缩包文件(zip和tar.gz),分别为:nacos-server-${version}.tar.gznacos-server-${version}.zip。如本文示例中使用的安装包为:nacos-server-2.2.3.zip

第二步:安装Nacos

由于Nacos只是一个简单的压缩包,所以所谓的安装就是解压到一个指定的目录即可,比如:~/opt

unzip nacos-server-2.2.3.zip -d ~/opt

从Nacos的配置文件中可以找到有关MySQL的连接配置,如下:

vim ~/opt/nacos/conf/application.properties
### If use MySQL as datasource:
### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
# spring.sql.init.platform=mysql

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

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

显然,需要将如下几项配置参数的注释删除掉:

spring.sql.init.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

由上述配置参数可知,默认连接的数据库名为nacos,连接用户名为:nacos,连接用户密码为:nacos
因此,需要登录MySQL数据库执行相应的初始化操作。

首先,需要创建一个名为nacos的数据库(如下命令基于MySQL 8.0.34操作)。

# 创建数据库
mysql> create database nacos DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

其次,需要添加访问用户并为之授权。

# 添加用户
mysql> create user 'nacos'@'%' identified by 'nacos';
# 为用户授权
mysql> grant all privileges on *.* to 'nacos'@'%' with grant option;
# 刷新权限
mysql> flush privileges;

再者,在nacos的安装目录下还存在一个数据库表的初始化脚本,即:mysql-schema.sql,需要将该脚本导入上面创建的nacos数据库中。

## 登录到MySQL中并切换到nacos数据库后执行如下操作
mysql> source /root/opt/nacos/conf/mysql-schema.sql

至此,运行一个使用MySQL数据库的单实例nacos环境已经准备好了。

第三步:启动Nacos

执行如下命令启动nacos:

cd ~/opt/nacos/bin
sh startup.sh -m standalone

查看日志~/opt/nacos/logs/start.out,当出现如下提示时说明nacos启动成功了。

         ,--.
       ,--.'|
   ,--,:  : |                                           Nacos 2.2.3
,`--.'`|  ' :                       ,---.               Running in stand alone mode, All function modules
|   :  :  | |                      '   ,'\   .--.--.    Port: 8848
:   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 7363
|   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://192.168.2.24:8848/nacos/index.html ## 这里提示访问nacos控制台页面的地址
'   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_
|   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io
'   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \
|   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  /
'   : |     ;  :   .'   \   :    : `----'  '--'.     /
;   |.'     |  ,     .-./\   \  /            `--'---'
'---'        `--`---'     `----'

2023-07-22 10:15:07,812 INFO Tomcat initialized with port(s): 8848 (http) ## nacos服务运行端口

2023-07-22 10:15:07,949 INFO Root WebApplicationContext: initialization completed in 3036 ms

2023-07-22 10:15:11,699 INFO Adding welcome page: class path resource [static/index.html]

第四步:停止Nacos

如果需要停止nacos,则执行如下操作:

cd ~/opt/nacos/bin
sh shutdown.sh

如何使用nacos作为注册中心

对于应用程序而言(不论是服务提供者还是服务消费者),通过如下2种方式集成nacos客户端即可接入nacos了。

方式1:引入nacos-client组件。

<dependency>
    <groupId>com.alibaba.nacos</groupId>
    <artifactId>nacos-client</artifactId>
    <version>${version}</version>
</dependency>

方式2:对于Dubbo应用而言,还可以直接引入dubbo-registry-nacos组件。

<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-registry-nacos</artifactId>
    <version>${version}</version>
</dependency>

如果是应用程序是基于Spring Boot框架开发,添加如下配置:

dubbo:
  registry:
    address: nacos://192.168.2.24:8848

如果项目并非基于Spring Boot框架开发,接入Nacos的详细步骤参考:Java SDK

至此,就完成了应用程序接入nacos的全部工作。

遇到的问题

Q1:主机未关闭防火墙,导致nacos无法连接MySQL数据库。
A1:我的安装环境为CentOS 8.5.2111,默认是启动了防火墙的,即使MySQL服务和nacos安装在同一台主机也需要将防火墙关闭才能连接,否则nacos会启动失败,并且在日志中会看到报错信息:Caused by: java.lang.IllegalStateException: No DataSource set
当然,我看github上有人还遇到了同样的报错问题,参考:部署 Nacos:2.0.3 连接 MySQL 报错 Nacos Server did not start because dumpservice bean construction failure : No DataSource set
关闭防火墙命令:systemctl stop firewalld.service

【参考】
Nacos 快速开始
Nacos部署环境

标签:单机,数据库,MySQL,db,nacos,Nacos,实例,mysql
From: https://www.cnblogs.com/nuccch/p/17574490.html

相关文章

  • c语言_练习实例100
     题1:1.有 1、2、3、4 四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?#include<stdio.h>intmain(){for(inti=1;i<5;i++){//取百位for(intj=1;j<5;j++){//取十位for(intk=1;k<5;k++){//取个位if(i!=j&&j!......
  • AspnetCore接入Nacos配置中心
    一、什么是nacosNacos/nɑ:kəʊs/是DynamicNamingandConfigurationService的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服......
  • redis中的Cursor使用实例
    Redis中的Cursor使用实例Redis是一种高性能的键值存储系统,常用于缓存、消息队列和排行榜等应用场景。在Redis中,Cursor是一种用于遍历集合元素的机制。通过使用Cursor,我们可以逐步地获取集合中的元素,而不需要一次性将整个集合加载到内存中。什么是Cursor在Redis中,Cursor是一个游......
  • golang 实现 RPC(远程过程调⽤实例)
    golang实现RPC 前提概要,先了解几个概念,websocket简介什么是websocketWebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的Websocket是一个持久化的协议webs......
  • SpringCloud-Nacos配置中心实现原理(转)
    原文:https://blog.csdn.net/Zong_0915/article/details/113089265作者:Zong_0915 一.NacosConfig实现原理解析首先,NacosConfig针对配置的管理提供了4种操作):获取配置,从NacosConfigServer中读取配置。监听配置:订阅感兴趣的配置,当配置发生变化的时候可以收到一个事件。发布......
  • C# 实现抓取财经网站页面内容的实例方法
    ​ protectedvoidEnter_Click(objectsender,EventArgse)        {            WebClientwe=newWebClient();  //主要使用WebClient类            byte[]myDataBuffer;            myDataBuffer=we.DownloadData......
  • c#不安装excle创建表格的实例
    ​  使用c#创建excel的示例,刚时给出了不安装excel也可创建excel的方法,需要的朋友可以参考学习网上的列子学习下下//创建excelobjectmissing=System.Reflection.Missing.Value;Excel.Applicationapp=newExcel.Application();app.Application.Workbooks.Add(true);......
  • moveable实例学习地址
    https://daybrush.com/moveable/storybook/?path=/story/able-combination--combination-draggable-resizable-rotatble支持大部分主流开发语言的实例,废话不多说,直接看图。 ......
  • LECTOR 621阅读器用于料盘读码和筛选调试实例
    第一部分:现场需求/问题描述 客户样品为卷料盘,料盘上有一张白色标签和一个粉色标签,白色标签上有4个一维码及一个二维码(QR码),粉色标签上有一个一维码 客户要求静态读取粉色标签上一维码和白色标签QR码,客户要求在没有粉色标签的时候输出二维码,在有粉色标签的情况下既输......
  • nacos适配达梦、瀚高、人大金仓数据库及部分源码探究
    一.插件实现1.插件目录结构2.pom依赖<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-datasource-plugin</artifactId><version>2.2.4</version></d......