Spring Boot 3 实现 MySQL 主从数据库之间的数据同步

打印 上一主题 下一主题

主题 1719|帖子 1719|积分 5157

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Spring Boot 3 实现 MySQL 主从数据库之间的数据同步

在现实项目中,为了提高 系统的读性能数据的可用性,通常会使用 主从数据库架构。Spring Boot 提供了对 多数据源 的良好支持,可以轻松设置 主从数据库 的数据同步,实现 读写分离
<hr> 方案介绍

我们将通过 Spring Boot 3 来实现以下目的:

  • 主库(Master):处置惩罚所有的 写操作(INSERT、UPDATE、DELETE)。
  • 从库(Slave):处置惩罚所有的 读操作(SELECT)。
通过 读写分离 的方式,我们可以有效减轻主库的压力,同时提升系统的读性能。
<hr> 步骤 1:设置 MySQL 主从同步

首先,确保你的 MySQL 主从服务器已经设置好。
假如你还没有设置主从,请参考以下步骤:

  • 主库 上启用 binlog 日志。
  • 从库 上设置 CHANGE MASTER TO 语句。
具体设置可以参考这里的指南:
  MySQL 主从同步设置
<hr> 步骤 2:Spring Boot 多数据源设置

1️⃣ 添加依赖

pom.xml 文件中添加 MySQL 驱动Spring Data JPA 依赖。
  1. <dependency>
  2.     <groupId>org.springframework.boot</groupId>
  3.     <artifactId>spring-boot-starter-data-jpa</artifactId>
  4. </dependency>
  5. <dependency>
  6.     <groupId>mysql</groupId>
  7.     <artifactId>mysql-connector-java</artifactId>
  8. </dependency>
复制代码
<hr> 2️⃣ 设置 application.properties

设置 主库从库 的数据源。
  1. # 主库数据源
  2. spring.datasource.master.url=jdbc:mysql://localhost:3306/master_db
  3. spring.datasource.master.username=root
  4. spring.datasource.master.password=master_password
  5. spring.datasource.master.driver-class-name=com.mysql.cj.jdbc.Driver
  6. # 从库数据源
  7. spring.datasource.slave.url=jdbc:mysql://localhost:3306/slave_db
  8. spring.datasource.slave.username=root
  9. spring.datasource.slave.password=slave_password
  10. spring.datasource.slave.driver-class-name=com.mysql.cj.jdbc.Driver
复制代码
<hr> 3️⃣ 设置多数据源

创建 MasterDataSourceConfig

  1. @Configuration
  2. @EnableTransactionManagement
  3. @EnableJpaRepositories(
  4.         basePackages = "com.example.repository",
  5.         entityManagerFactoryRef = "masterEntityManager",
  6.         transactionManagerRef = "masterTransactionManager"
  7. )
  8. public class MasterDataSourceConfig {
  9.    
  10.     @Primary
  11.     @Bean(name = "masterDataSource")
  12.     @ConfigurationProperties(prefix =
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表