Skip to main content

依赖公有云使用讲解

作者:程序员马丁

在线博客:https://nageoffer.com

note

Ragent AI —— 从 0 到 1 纯手工打造企业级 Agentic RAG,拒绝 Demo 玩具!AI 时代,助你拿个offer。

依赖中间件&公有云使用讲解,元数据信息:

©版权所有 - 拿个offer-开源&项目实战星球专属学习项目,依据《中华人民共和国著作权法实施条例》和《知识星球产权保护》,严禁未经本项目原作者明确书面授权擅自分享至 GitHub、Gitee 等任何开放平台。违者将面临法律追究。


内容摘要:因为受本地环境等多因素影响,安装众多中间件无疑会影响大家学习进度,所以星球提供了强依赖中间件的云服务版本。

由于本节内容主要涉及代码规范,没有特别复杂或隐晦的部分,因此没有录制视频。

课程目录如下所示:

  • 公有云中间件
  • 本地中间件安装

公有云中间件​

1. 中间件连接​

Redis

Nacos

RocketMQ

2. 使用方式​

在 Idea 中打开关于应用程序启动配置页面,配置相关的 VM 参数。

如果大家刚拉下来项目,有可能是没有服务列表的,大家将所有服务的应用程序类启动下即可。

报错也无所谓,只要能出现配置类执行下述流程就好。

打开编辑应用配置程序之后,点击 Modify options 添加 Add VM options 选项,将 VM 参数选项打开即可。

添加以下 VM 参数到新增加的 VM options 输入框中,点击 OK 即可完成启动。

-Dunique-name=-**********
-Dframework.cache.redis.prefix=**********:
-Dspring.data.redis.host=**************************
-Dspring.data.redis.password=**************************
-Dspring.data.redis.port=19389
-Drocketmq.name-server=**************************:9876
-Dspring.cloud.nacos.discovery.server-addr=**************************:8848

unique-name 参数指的是什么呢?我们把服务注册到 Nacos,如果不使用 unique-name 区分,大家的 application-name 是一致的,那么就会出现服务调用错乱的情况。

除了 Nacos 用到了这个参数,RocketMQ 中同样也使用到了这个参数,同理。

framework.cache.redis.prefix 参数是给大家使用 Redis 操作 Kye 时添加统一前缀,避免大家使用同一个 Redis 被互相影响。

本地中间件安装​

1. 安装说明​

对于除 MySQL 外的强依赖中间件,不建议大家在本地安装。建议首先让应用正常运行,然后再进行学习。

2. MySQL​

考虑到多人使用同一台 MySQL 实例的数据会存在脏数据问题,所以 MySQL 不提供公有云版本,大家按照下述文档在本地进行安装 MySQL 即可。

Windows、Linux 以及 Mac M1 以下电脑通过以下 Docker 命令启动 MySQL 实例。

docker run --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_HOST='%' \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7.36

Docker 启动配置参数说明:

  • -d:以后台的方式运行。
  • --name mysql:指定容器的名称为 mysql。
  • -e MYSQL_ROOT_HOST='%':允许 root 用户在任何主机访问。
  • -p 3306:3306:将容器的 3306 端口挂载到宿主机的 3306 端口上。
  • -e MYSQL_ROOT_PASSWORD=root:指定 root 的密码为 root。

如果你是 Mac M1 及以上电脑,需要执行下述 Docker 语句创建 MySQL。

docker run --name mysql \
--platform=linux/amd64 \
-p 3306:3306 \
-e MYSQL_ROOT_HOST='%' \
-e MYSQL_ROOT_PASSWORD=root \
-d amd64/mysql:5.7.36

⚠️ 注意事项,创建好本地 MySQL 后,修改对应项目的数据库配置文件。

每个项目 resources 包下的 shardingsphere-config.yaml 是数据库配置文件,如果大家发现 MySQL IP、Port、数据库名称、用户名密码不对,记得及时改正。

# 数据源集合
dataSources:
# 自定义数据源名称,可以是 ds_0 也可以叫 datasource_0 都可以
ds_0:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://127.0.0.1:3306/one_coupon_0?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: root
ds_1:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
driverClassName: com.mysql.cj.jdbc.Driver
jdbcUrl: jdbc:mysql://127.0.0.1:3306/one_coupon_1?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true&allowMultiQueries=true&serverTimezone=Asia/Shanghai
username: root
password: root