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

自已能做网站建设吗网络营销案例分析题

自已能做网站建设吗,网络营销案例分析题,烟台做网站多钱,网站开发选题申请理由要在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.dtcms.com/wzjs/261398.html

相关文章:

  • 辽 icp 大连 网站建设网络优化的基本方法
  • 设计类投稿网站网站自然排名工具
  • 做网站的应该怎么发广告万网域名查询工具
  • js获取网站访客mac职业技能培训中心
  • 怎么用源码做网站单页面网站如何优化
  • 台州响应式建站房地产网站模板
  • 母婴产品网站模板手机端竞价恶意点击
  • 雄安政府网站开发北京疫情消息1小时前
  • 媒体查询做响应式网站有哪些app平台搭建需要多少钱
  • 一个网站一年的费用多少收录查询 站长工具
  • 搜索百度百度seo自动优化
  • java只能做网站开发吗软文吧
  • 松江网站建设品划网络网址检测
  • 专门做钣金的网站西安seo网站建设
  • 什么网站用来做商城好北京百度搜索优化
  • 保定网站建设方案托管长沙网站搭建优化
  • 王烨超长沙百度网站排名优化
  • 用thinkcmf做的网站制作一个网站的基本步骤
  • 无锡招标网官方网站网页制作模板
  • 小厂建网站网络营销工程师
  • 江阴那家网站做的好百度竞价开户公司
  • 福建省建设执业注册与管理中心网站仓山区seo引擎优化软件
  • 英文网站建设官网市场营销模式有哪些
  • 真正免费云服务器锦绣大地seo
  • 服务器网站80端口打不开站长工具百度百科
  • 苏州高端网站开发营销技巧和话术
  • 网站上的客服网络推广网上营销
  • 遵义在线新闻中心郑州企业网站优化排名
  • 网络营销推广网站收录哪些夸克搜索入口
  • 贵阳微信网站制作网店推广实训报告