人们不是嘲笑你的梦想
他们嘲笑的是你的实力

Debian11安装Nacos等微服务组件

Nacos2.2.3

安装Java

这些微服务都依赖Java,所以首先需要安装Java。

下载并解压Nacos

接下来,我们将下载并解压Nacos。首先,访问Nacos的Github发布页面(https://github.com/alibaba/nacos/releases)并下载最新版本的Nacos。或者,你也可以在终端中使用wget命令下载。例如,要下载2.2.3版本的Nacos,你可以使用以下命令:

wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz

下载完成后,使用tar命令解压下载的文件:

tar -xzf nacos-server-2.2.3.tar.gz

启动Nacos服务器

解压完成后,进入Nacos的目录,然后启动Nacos服务器:

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

在这里,-m standalone选项表示我们将在单机模式下启动Nacos。

现在,Nacos应该已经在你的机器上成功运行。你可以通过访问http://localhost:8848/nacos来访问Nacos的Web界面,用户名和密码默认都是nacos

修改配置

这只是在本地运行Nacos的基本步骤。在生产环境中,你可能需要额外的配置,例如修改默认的用户名和密码、设置集群模式等。你可以访问Nacos的官方文档(https://nacos.io/zh-cn/docs/what-is-nacos.html)获取更多信息。

修改端口号

Nacos 默认的端口号是 8848。如果你需要修改这个端口号,你可以修改 Nacos 的配置文件来实现。配置文件是在 Nacos 的安装目录下的 conf 文件夹中的 application.properties 文件。你可以在这个文件中找到 server.port 这一行,然后将其后面的值修改为你需要的端口号。

例如,如果你希望将端口号修改为 8011,你可以修改这一行为:

server.port=8011

修改完成后,你需要重启 Nacos 服务器来使改动生效。

修改数据库

Nacos默认使用内嵌的H2数据库作为存储配置,但在生产环境中,我们通常会将Nacos配置为使用MySQL数据库。以下是修改Nacos的数据库配置的步骤:

创建数据库

在MySQL服务器中创建一个新的数据库,例如,我们创建一个名为nacos_config的数据库:

CREATE DATABASE nacos_config;
初始化数据库

你需要从Nacos的源码中获取数据库的初始化脚本。初始化脚本位于Nacos源码的distribution/conf目录下,文件名为mysql.sql。将此脚本运行在你刚刚创建的数据库中。

修改Nacos的配置文件

Nacos的配置文件位于其安装目录下的conf文件夹中,文件名为application.properties。你需要在这个文件中指定你的数据库配置:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=username
db.password=password

在上述配置中,将db.url.0中的IP地址、端口号和数据库名修改为你的实际MySQL服务器和数据库名,将db.userdb.password修改为你的MySQL用户名和密码。

重启Nacos服务器

配置修改完成后,你需要重启Nacos服务器来使改动生效。

停止Nacos服务器

首先,你需要找到Nacos服务器的进程ID,然后使用kill命令来停止它。你可以使用以下命令来找到Nacos服务器的进程ID:

ps -ef | grep nacos | grep -v grep

这个命令应该会返回一个或多个包含"nacos"的进程。你需要找到Nacos服务器的进程ID,它应该是命令返回结果中的第二列。然后,你可以使用以下命令来停止Nacos服务器:

kill -9 <Nacos进程ID>

在这里,<Nacos进程ID>需要替换为你实际的Nacos服务器的进程ID。

启动Nacos服务器

然后,你可以使用以下命令来重新启动Nacos服务器:

sh /path/to/nacos/bin/startup.sh -m standalone 

在这里,/path/to/nacos/需要替换为你实际的Nacos的安装路径。

修改账号密码

开启鉴权

此部分内容参考官方文档: https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

按照官方文档配置启动,默认是不需要登录的,这样会导致配置中心对外直接暴露。而启用鉴权之后,需要在使用用户名和密码登录之后,才能正常使用nacos。

开启鉴权之前,application.properties中的配置信息为:

### If turn on auth system: nacos.core.auth.enabled=false

开启鉴权之后,application.properties中的配置信息为:

### If turn on auth system:
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true
自定义密钥

开启鉴权之后,你可以自定义用于生成JWT令牌的密钥,application.properties中的配置信息为:

注意:

  1. 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
  2. 在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
  3. 密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。
### The default token(Base64 String): nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 
### 2.1.0 版本后 nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符

在线base64工具: https://uutool.cn/base64-encode/

注意:鉴权开关是修改之后立马生效的,不需要重启服务端。动态修改token.secret.key时,请确保token是有效的,如果修改成无效值,会导致后续无法登录,请求访问异常。

开启Token缓存功能

服务端自2.2.1版本后,默认鉴权插件模块支持token缓存功能

无论是客户端SDK还是OpenAPI,在调用login接口获取accessToken之后,携带accessToken访问服务端,服务端解析Token进行鉴权。解析的动作比较耗时,如果想要提升接口的性能,可以考虑开启缓存Token的功能,用字符串比较代替Token解析。

开启方式
nacos.core.auth.plugin.nacos.token.cache.enable=true
注意事项

在开启Token缓存功能之前,服务端对每一个携带用户名密码访问login接口的请求都会生成新的token,接口的返回值中的tokenTtl字段跟服务端配置文件中设置的值相等,配置如下:

nacos.core.auth.plugin.nacos.token.expire.seconds=18000

在开启Token缓存功能之后,服务端对每一个携带用户名密码访问login接口的请求,会先检查缓存中是否存在该用户名对应的token。若不存在,生成新的Token,插入缓存再返回;若存在,返回该token,此时tokenTtl字段的值为配置文件中设置的值减去该Token在缓存中存留的时长。 如果Token在缓存中存留的时长超过配置文件设置的值的90%,当login接口收到请求时,尽管缓存中存在该用户名对应的Token,服务端会重新生成Token返回给请求方,并更新缓存。因此,最差情况下,请求方收到的tokenTtl只有配置文件设置的值的10%。

开启服务身份识别功能
### 开启鉴权
nacos.core.auth.enabled=true

### 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false

### 配置自定义身份识别的key(不可为空)和value(不可为空)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example

** 注意 ** 所有集群均需要配置相同的server.identity信息,否则可能导致服务端之间数据不一致或无法删除实例等问题。

修改nacos用户密码

Nacos 默认的用户名和密码是 nacos/nacos。你可以通过修改数据库来改变这个用户名和密码。Nacos 的用户信息是存储在 nacos_config 数据库的 users 表中的。

你需要首先登录到你的 MySQL 数据库,然后执行以下 SQL 语句来修改密码:

UPDATE users SET password_hash = '$2a$10$EuWPZHzz32dJN7j8Zz/JZ.jlfn98yBaYVJlS7ak2i.bZ5.6nBX1NK' WHERE username = 'nacos';

这将会将密码修改为 new_password。这个哈希值是通过 bcrypt 算法加密的,所以如果你需要修改密码,你需要生成一个新的哈希值。你可以在网上找到一些在线的 bcrypt 哈希生成器来帮助你生成新的哈希值。

例如: https://www.bejson.com/encrypt/bcrpyt_encode/

同样,修改完成后,你需要重启 Nacos 服务器来使改动生效。

Sentinel Dashboard

下载并运行 Sentinel Dashboard

你可以从 Sentinel 的 GitHub 仓库下载预编译的 Sentinel Dashboard JAR 文件。在终端中运行以下命令来下载和启动 Sentinel Dashboard:

wget https://github.com/alibaba/Sentinel/releases/download/2.0.0-alpha/sentinel-dashboard-2.0.0-alpha-preview.jar
java -jar sentinel-dashboard-2.0.0-alpha-preview.jar

这将会启动 Sentinel Dashboard,并在 8080 端口监听请求。

访问 Sentinel Dashboard

打开浏览器并访问 http://localhost:8080,你应该能看到 Sentinel Dashboard 的登录界面。默认的用户名和密码都是 "sentinel"。

修改配置

修改端口

Sentinel Dashboard 默认在8080端口运行。如果你想修改这个端口,你可以在启动 Sentinel Dashboard 时传递 server.port 参数。例如,如果你想把端口改为 8021,你可以使用以下命令:

java -Dserver.port=8021 -jar sentinel-dashboard-2.0.0-alpha-preview.jar

修改用户名和密码

Sentinel Dashboard 默认的用户名和密码都是 "sentinel"。你可以通过设置 spring.security.user.namespring.security.user.password 参数来修改用户名和密码。例如,如果你想把用户名改为 "admin",密码改为 "123456",你可以使用以下命令:

java -Dspring.security.user.name=admin -Dspring.security.user.password=123456 -jar sentinel-dashboard-2.0.0-alpha-preview.jar

注意,密码应该至少包含6个字符。

如果你同时想修改端口和用户名/密码,你可以在一个命令中传递所有参数,例如:

java -Dserver.port=8021 -Dsentinel.dashboard.auth.username=LS2eBE8gbkFJ6z -Dsentinel.dashboard.auth.password=LpH9XZR8gHnE2j -jar sentinel-dashboard-2.0.0-alpha-preview.jar

这样,Sentinel Dashboard 就会在 8021 端口上启动,用户名和密码会被设置为 "admin" 和 "123456"。

一般我们需要后台运行

nohup java -Dserver.port=8021 -Dsentinel.dashboard.auth.username=LS2eBE8gbkFJ6z -Dsentinel.dashboard.auth.password=LpH9XZR8gHnE2j -jar sentinel-dashboard-2.0.0-alpha-preview.jar &

Seata

下载并解压Seata

首先,访问Seata的Github发布页面(https://github.com/seata/seata/releases)并下载你需要的版本的Seata,即1.6.1版本。或者,你也可以在终端中使用wget命令下载。例如,要下载1.6.1版本的Seata,你可以使用以下命令:

wget https://github.com/seata/seata/releases/download/v1.6.1/seata-server-1.6.1.tar.gz

下载完成后,使用tar命令解压下载的文件:

tar -xzf seata-server-1.6.1.tar.gz

启动Seata服务器

解压完成后,进入Seata的目录,然后启动Seata服务器:

cd seata/bin 
bash seata-server.sh -p 8032  -h 127.0.0.1

这里用-p指定端口,-h指定面板的ip

RocketMQ

下载并解压RocketMQ

首先,访问RocketMQ的Github发布页面(https://github.com/apache/rocketmq/releases)并下载你需要的版本的RocketMQ,即5.1.1版本。或者,你也可以在终端中使用wget命令下载。例如,要下载5.1.1版本的RocketMQ,你可以使用以下命令:

wget https://archive.apache.org/dist/rocketmq/5.1.1/rocketmq-all-5.1.1-bin-release.zip

下载完成后,使用unzip命令解压下载的文件(如果你的系统中没有unzip,你可以通过sudo apt install unzip来安装):

unzip rocketmq-all-5.1.1-bin-release.zip

启动RocketMQ服务器

解压完成后,进入RocketMQ的目录,然后启动RocketMQ的名称服务器和代理服务器:

cd rocketmq-all-5.1.1-bin-release
nohup sh bin/mqnamesrv &
nohup sh bin/mqbroker -n localhost:8041 &

下载并解压RocketMQ Dashboard

你可以访问RocketMQ Dashboard的Github发布页面(https://github.com/apache/rocketmq-dashboard/releases),下载你需要的版本,即1.0.0版本的jar文件。或者,你也可以使用wget在终端中下载:

wget https://github.com/apache/rocketmq-dashboard/archive/refs/tags/rocketmq-dashboard-1.0.0.zip

下载完成后,使用unzip命令解压下载的文件

unzip rocketmq-dashboard-rocketmq-dashboard-1.0.0.zip

编译并运行 RocketMQ Dashboard

解压完成后,进入解压后的目录,然后使用 Maven 编译并运行 RocketMQ Dashboard:

cd rocketmq-dashboard-1.0.0
mvn clean package -Dmaven.test.skip=true

安装的过程可能比较久,等安装完了我们就可以运行了

nohup java -jar target/rocketmq-dashboard-*.jar &

修改端口

RocketMQ-Dashboard 使用 Spring Boot 开发,端口默认为 8080。如果要修改默认的端口号,你可以通过修改配置文件来完成。

在 RocketMQ-Dashboard 项目的 src/main/resources 目录下,你可以找到一个名为 application.properties 的配置文件,你可以在这个文件中找到相关的配置项。

修改这个文件,增加或者修改下列行,例如我们这里修改为8042:

server.port=8042

配置rocketmq地址

如果不配置rocketmq名称服务器的话,面板可能无法连接到导致无法正常使用

还是上面的配置文件,修改下列行,比如我们这里改为本地的8041

rocketmq.config.namesrvAddr=127.0.0.1:8041

不过修改了配置记得要重新用maven打包,重启服务才能生效哦

未经允许不得转载:四四的军火库 » Debian11安装Nacos等微服务组件