当前位置: 首页 > news >正文

怀化 网站建设seo搜索优化网站推广排名

怀化 网站建设,seo搜索优化网站推广排名,网站设计目标与背景,线上推广员是做什么的要在Spring Boot项目中集成ShardingSphere并实现读写分离,可以按照以下步骤进行配置和实现。以下是详细的配置和说明: 1. 引入依赖 在pom.xml中添加ShardingSphere和数据库连接池的依赖。注意,ShardingSphere已经内置了数据源管理功能&…

  要在Spring Boot项目中集成ShardingSphere并实现读写分离,可以按照以下步骤进行配置和实现。以下是详细的配置和说明:

1. 引入依赖

pom.xml中添加ShardingSphere和数据库连接池的依赖。注意,ShardingSphere已经内置了数据源管理功能,因此不需要额外引入druid-spring-boot-starter,而是直接使用druid

 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.3</version><exclusions><exclusion><artifactId>snakeyaml</artifactId><groupId>org.yaml</groupId></exclusion></exclusions></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.32</version></dependency><dependency><groupId>org.apache.shardingsphere</groupId><artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId><version>5.2.1</version><exclusions><exclusion><artifactId>snakeyaml</artifactId><groupId>org.yaml</groupId></exclusion><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.5.3</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.3.3</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><dependency><groupId>org.yaml</groupId><artifactId>snakeyaml</artifactId><version>1.33</version></dependency><!--引入shardingJDBC后,就不要直接使用druid-sprint-boot-starter依赖了。因为这个依赖会在Spring容器中注入一个DataSource,这样再要使用ShardingSphere注入DataSource就会产生冲突了。--><!--<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.20</version></dependency>--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.20</version></dependency></dependencies>

2. 配置数据源和读写分离规则

application.yml中配置数据源和读写分离规则。以下是一个示例配置:

spring:shardingsphere:datasource:names: master,slave0,slave1master:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/masterdb?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456slave0:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/slavedb0?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456slave1:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/slavedb1?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8username: rootpassword: 123456rules:readwrite-splitting:data-sources:ds:static-strategy:write-data-source-name: masterread-data-source-names:- slave0- slave1load-balancer-name: order_lbload-balancers:order_lb:type: ROUND_ROBINprops:sql-show: truemybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3. 配置说明

  • 数据源配置

    • master:主库数据源,用于写操作。

    • slave0 和 slave1:从库数据源,用于读操作。

  • 读写分离规则

    • ds:逻辑数据源名称,应用程序通过该名称访问数据库。

    • write-data-source-name:指定写操作的数据源。

    • read-data-source-names:指定读操作的数据源列表。

    • load-balancer-name:指定读操作的负载均衡算法。

  • 负载均衡算法

    • ROUND_ROBIN:轮询算法,读请求会在 slave0 和 slave1 之间轮询。

    • 其他可选算法:RANDOM(随机)、WEIGHT(权重)等。


4. 测试读写分离

编写测试代码,验证读写分离是否生效。

4.1 插入数据(写操作)
@RestController
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserMapper userMapper;@PostMapping("/add")public String addUser(@RequestBody User user) {// 插入数据return userMapper.addUser(user); }
}
4.2 查询数据(读操作)
 @GetMapping("/detail/{id}")public User getDetail(@PathVariable Long id) {//查询详情return userMapper.detail(id);  }
4.3 验证日志
  • 写操作addUser方法会被路由到主库(master)。

  • 读操作getDetail方法会被路由到从库(slave0 或 slave1)。

ShardingSphere-SQL: Logic SQL: INSERT INTO user (user_name,mobile,address,create_time,update_time )  VALUES  ( ?,?,?,?,? )
ShardingSphere-SQL: Actual SQL: master :::INSERT INTO user (user_name,mobile,address,create_time,update_time )  VALUES  ( ?,?,?,?,? )


5. 注意事项

5.1 Mysql主从复制

    写操作时,slave0,slave1的数据并不会自动同步master的更改,因为master,slave0,slave1是同一个Mysql实例中的三个不同数据库,彼此独立。要实现Mysql的主从复制,必须是不同的Mysql服务器和不同的数据库。因为Mysql复制是基于整个实例的,也就是说,通常主库的二进制日志会记录所有数据库的更改,而从库会复制整个实例的数据。

    同一个Mysql服务器,不同数据库实现主从复制,可以使用触发器或者使用CDC工具(如Canal)实现同步。

5.2 负载均衡算法:

         ShardingSphere支持多种负载均衡算法,如ROUND_ROBIN(轮询)、RANDOM(随机)等。可根据业务需求自定义负载均衡算法。

5.3 SQL日志 

         开启sql-show: true,便于调试和验证读写分离是否生效。 

5.4 事务管理 

        读写分离场景下,事务中的读操作默认路由到主库,可通过配置调整 。

6. 总结

       通过ShardingSphere的读写分离功能,可以轻松实现数据库的读写分离,提升系统的读取性能。配置简单,且与主流ORM框架(如MyBatis-Plus)无缝集成。在实际应用中,需根据业务需求选择合适的负载均衡算法,并确保数据同步机制的正确性。

http://www.cadmedia.cn/news/16683.html

相关文章:

  • 宁波网站建设公司推荐易企网网上打广告有哪些软件
  • 网站建设的cms系统360识图
  • 河南中恒诚信建设有限公司网站站长素材官网
  • 电子商务网站建设策划说沈阳关键词优化费用
  • 全球最大的平面设计网站网络营销推广策略
  • 营销广告策划方案江门关键词优化公司
  • 建站系统北京外包seo公司
  • 摄影工作室网站建设模板南京seo公司教程
  • 视频制作专业软件seo外链工具源码
  • 官方网站下载打印机驱动农产品网络营销
  • 网站建设app杭州谷歌优化推广
  • 怎么做网站的跳转软文代发布
  • 网络推广公司司萌新seo
  • 做AE视频素材在哪些网站上可以找零售客户电商网站
  • 自己做优惠劵网站赚钱吗汕头seo外包公司
  • 贵阳工程建设招聘信息网站seo的优化方向
  • 建设工程企业资质工作网站大数据营销是什么
  • 威海电子商务网站建设促销策略的四种方式
  • 网站建设咨询有客价优网站建设咨询淘宝流量网站
  • 广告公司年终总结seo sem什么意思
  • 网络营销做得比较好的企业宁波seo优化报价多少
  • 现在学ui吃香吗青岛seo外包服务
  • 免费有趣的网站营销型网站建设公司
  • android studio开发app中国seo高手排行榜
  • 成都网站建设哪家好搜索引擎yandex入口
  • 直播软件app平台大全最新seo新手教程
  • 黔南服务好的高端网站设计公司百度联盟广告收益
  • 成都建站鄞州seo整站优化服务
  • 图片链接生成网站域名怎么查
  • 网站建设86215舆情监控