Skip to main content

02小节:依赖中间件&公有云使用讲解

作者:程序员马丁

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

note

热门项目实战社群,收获国内众多知名公司面试青睐,近千名同学面试成功!助力你在校招或社招上拿个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