梅河口网站建设/自己怎么做一个网页

梅河口网站建设,自己怎么做一个网页,时时彩网站谁做,佛山营销网站建设联系方式在使用 ShardingSphere Proxy 模式时,结合 主从复制架构 实现 读写分离,并按照 用户ID哈希算法 确定库、时间范围 确定表的场景下,配置文件需要做一些调整以支持分片、读写分离以及主从复制。 以下是如何配置 ShardingSphere Proxy 模式的详…

在使用 ShardingSphere Proxy 模式时,结合 主从复制架构 实现 读写分离,并按照 用户ID哈希算法 确定库、时间范围 确定表的场景下,配置文件需要做一些调整以支持分片、读写分离以及主从复制。

以下是如何配置 ShardingSphere Proxy 模式的详细步骤:

1. 数据库配置

假设我们有多个数据库 db_0, db_1, …, db_9,每个数据库都有主从复制架构,即每个数据库都有一个主节点和多个从节点。我们可以按照以下方式配置 ShardingSphere Proxy。

配置文件示例(sharding.yml

schemaName: sharding_dbdataSources:# 主库配置(每个数据库有主从架构)ds_0_master:url: jdbc:mysql://localhost:3306/db_0_masterusername: rootpassword: rootdriverClassName: com.mysql.cj.jdbc.Driverds_0_slave:url: jdbc:mysql://localhost:3306/db_0_slaveusername: rootpassword: rootdriverClassName: com.mysql.cj.jdbc.Driverds_1_master:url: jdbc:mysql://localhost:3306/db_1_masterusername: rootpassword: rootdriverClassName: com.mysql.cj.jdbc.Driverds_1_slave:url: jdbc:mysql://localhost:3306/db_1_slaveusername: rootpassword: rootdriverClassName: com.mysql.cj.jdbc.Driver# 配置其他数据库的主从架构...# 配置读写分离
readwriteSplitting:ds_0:writeDataSourceName: ds_0_masterreadDataSourceNames:- ds_0_slaveds_1:writeDataSourceName: ds_1_masterreadDataSourceNames:- ds_1_slave# 配置其他数据库的主从架构...# 配置分片规则
sharding:tables:user_trades:actualDataNodes: ds${0..9}.user_trades_${yyyy_MM}tableStrategy:inline:shardingColumn: user_idalgorithmExpression: user_trades_${yyyy_MM}databaseStrategy:inline:shardingColumn: user_idalgorithmExpression: ds${user_id.hashCode() % 10}keyGenerator:column: trade_idtype: SNOWFLAKEbindingTables:- user_trades

配置 Spring Boot 与 ShardingSphere Proxy 连接

在 application.properties 或 application.yml 中配置数据源连接 ShardingSphere Proxy。
application.yml 配置

spring:datasource:url: jdbc:mysql://localhost:3307/example_dsusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverhikari:maximum-pool-size: 10

此配置中,localhost:3307 是 ShardingSphere Proxy 的地址,假设 Proxy 配置监听在该端口。

2. 解释配置内容

数据源配置 (dataSources)

每个数据源(ds_0_master, ds_0_slave, ds_1_master, ds_1_slave 等)都配置了一个主库和从库。主库用于写操作,从库用于读操作。通过这种方式,ShardingSphere Proxy 可以实现 读写分离

  • 主库:用于所有的写操作。
  • 从库:用于所有的读操作。

读写分离配置 (readwriteSplitting)

readwriteSplitting 配置将数据库的主从节点进行绑定,指定写操作走主库,读操作走从库。
例如:

ds_0:writeDataSourceName: ds_0_masterreadDataSourceNames:- ds_0_slave

该配置意味着,所有针对 ds_0 数据源的写操作会被路由到 ds_0_master,而所有读操作则会被路由到 ds_0_slave

分片规则 (sharding)

ShardingSphere 中,分片规则的配置包括 数据库分片表分片

  • 数据库分片策略
    • 基于 用户ID哈希算法 对数据库进行分片。通过 user_id.hashCode() % 10 确定用户数据存储在哪个数据库(ds_0, ds_1, …, ds_9)。
  • 表分片策略
    • 根据 时间范围 来确定表。例如,可以按月来分片,表名会是 user_trades_2023_01, user_trades_2023_02 等。
    • actualDataNodes: ds${0..9}.user_trades_${yyyy_MM} 配置表示每个数据库中都有以 yyyy_MM 格式命名的表。

分片键

  • user_id 是分片键,ShardingSphere 会根据 user_id 的哈希值决定数据落在哪个数据库上。
  • yyyy_MM 是时间范围,用来决定数据落在哪个具体的表上。

主键生成器

  • 这里使用了 Snowflake 算法生成 trade_id,确保每个 trade_id 在分布式环境下是唯一的。

3. 读写分离工作原理

  • 写操作:所有的写操作会根据 user_id 哈希值决定目标数据库,然后路由到对应的 主库ds_0_master, ds_1_master, …)。
  • 读操作:所有的读操作会根据 user_id 哈希值决定目标数据库,然后路由到对应的 从库ds_0_slave, ds_1_slave, …)。

4. 配置调整

  • 分片粒度:你可以根据实际需求调整分片粒度,按 月、季度、年 等时间段进行分表。
  • 数据库扩展:随着数据量的增加,你可以增加更多的数据库(ds_10, ds_11, …),并相应修改分片策略,以支持水平扩展。

5. 测试和监控

  • 在生产环境中,进行充分的 负载测试性能监控,确保读写分离能够有效地缓解读压力,并且系统的整体性能达到预期。
  • 使用 ShardingSphere 提供的监控工具(如 Prometheus、Grafana)来监控数据库负载、请求量等指标,确保系统稳定。

总结

通过 ShardingSphere Proxy 模式和主从复制架构,你可以实现 读写分离分布式分片。配置文件中,关键是将 数据库分片读写分离 配置结合起来,确保写操作进入主库,读操作路由到从库,同时按照 用户ID哈希算法 来决定库,按 时间范围 来决定表。这种设计可以有效提高系统的可扩展性、性能和容错性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis集群机制及一个Redis架构演进实例

Replication(主从复制) Redis的replication机制允许slave从master那里通过网络传输拷贝到完整的数据备份,从而达到主从机制。为了实现主从复制,我们准备三个redis服务,依次命名为master,slave1,…

Windows系统编程项目(一)进程管理器

本项目将通过MFC实现一个进程管理器,如下图详细信息页所示: 一.首先创建一个基于对话框的MFC项目,在静态库中使用MFC 二.在项目默认的对话框中添加一个列表 三.列表添加变量 四.初始化列表 1.设置列表风格和表头 2.填充列表内容 我们需要在…

RAG-202502

目录 RAG场景的坑知识等级金字塔 初级RAG存在的问题高级RAG索前优化检索优化检索后优化 优化经验总结参考 RAG场景的坑 晦涩的专业术语 误区:在专业领域中。许多文献和资料中充满了专业术语,这些术语对于非专业人士(甚至是大模型&#xff0…

STM32-智能小车项目

项目框图 ST-link接线 实物图: 正面: 反面: 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 测速模块 语音模块SU-03T 网站:智能公元/AI产品零代码平台 一、让小车动起来 新建文件夹智能小车项目 在里面…

【Linux】vim 设置

【Linux】vim 设置 零、起因 刚学Linux,有时候会重装Linux系统,然后默认的vi不太好用,需要进行一些设置,本文简述如何配置一个好用的vim。 壹、软件安装 sudo apt-get install vim贰、配置路径 对所有用户生效: …

17164字符迁移

17164字符迁移 ⭐️难度:中等 📖 📚 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);int n scanner.nextInt();int q scanner.nextInt();scanner.next…

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决

IDEA关闭SpringBoot程序后仍然占用端口的排查与解决 问题描述 在使用 IntelliJ IDEA 开发 Spring Boot 应用时,有时即使关闭了应用,程序仍然占用端口(例如:4001 端口)。这会导致重新启动应用时出现端口被占用的错误&a…

QT:QPen、QBrush、与图形抗锯齿的关联

QPen QPen 是 Qt 框架中用于定义绘图时使用的画笔属性的类。在使用 QPainter 进行 2D 绘图时,QPen 可以控制线条的外观,比如线条的颜色、宽度、样式(如实线、虚线等)、端点样式(如方形端点、圆形端点等)和…

论文笔记(七十二)Reward Centering(三)

Reward Centering(三) 文章概括摘要3 基于值的奖励中心化4 案例研究: 以奖励为中心的 Q-learning5 讨论、局限性与未来工作致谢 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan…

单例模式——c++

一个类,只能有1个对象 (对象在堆空间) 再次创建该对象,直接引用之前的对象 so构造函数不能随意调用 so构造函数私有 so对象不能构造 如何调用私有化的构造函数: 公开接口调用构造函数 调用构造函数:singleTon instance; 但…

NLP学习记录十:多头注意力

一、单头注意力 单头注意力的大致流程如下: ① 查询编码向量、键编码向量和值编码向量分别经过自己的全连接层(Wq、Wk、Wv)后得到查询Q、键K和值V; ② 查询Q和键K经过注意力评分函数(如:缩放点积运算&am…

【原创工具】同文件夹PDF文件合并 By怜渠客

【原创工具】同文件夹PDF文件合并 By怜渠客 原贴:可批量合并多个文件夹内的pdf工具 - 吾爱破解 - 52pojie.cn 他这个存在一些问题,并非是软件内自主实现的PDF合并,而是调用的pdftk这一工具,但楼主并没有提供pdftk,而…

渗透测试【seacms V9】

搭建seacms环境 我选择在虚拟机中用宝塔搭建环境 将在官网选择的下载下来的文件解压后拖入宝塔面板的文件中 创建网站 添加站点 搭建完成seacmsV9 找到一个报错口 代码分析 <?php set_time_limit(0); error_reporting(0); $verMsg V6.x UTF8; $s_lang utf-8; $dfDbn…

论文阅读笔记:Continual Forgetting for Pre-trained Vision Models

论文阅读笔记&#xff1a;Continual Forgetting for Pre-trained Vision Models 1 背景2 创新点3 方法4 模块4.1 问题设置4.2 LoRA4.3 概述4.4 GS-LoRA4.5 损失函数 5 效果6 结论 1 背景 出于隐私和安全考虑&#xff0c;如今从预先训练的视觉模型中删除不需要的信息的需求越来…

车载DoIP诊断框架 --- 连接 DoIP ECU/车辆的故障排除

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

【爬虫基础】第二部分 爬虫基础理论 P1/3

上节内容回顾&#xff1a;【爬虫基础】第一部分 网络通讯 P1/3-CSDN博客 【爬虫基础】第一部分 网络通讯-Socket套接字 P2/3-CSDN博客 【爬虫基础】第一部分 网络通讯-编程 P3/3-CSDN博客 爬虫相关文档&#xff0c;希望互相学习&#xff0c;共同进步 风123456789&#xff…

ue5 3dcesium中从本地配置文件读取路3dtilles的路径

关卡蓝图中获得3dtiles的引用 拉出设置url 设置路径 至于设置的路径从哪里来 可以使用varest读取文件里的接送字符串 path中配置地址 path变量的值为: Data/VillageStartMapConfig.json此地址代表content的地下的data文件夹里的config.json文件 {"FilePath": &quo…

音视频入门基础:RTP专题(12)——RTP中的NAL Unit Type简介

一、引言 RTP封装H.264时&#xff0c;RTP对NALU Header的nal_unit_type附加了扩展含义。 由《音视频入门基础&#xff1a;H.264专题&#xff08;4&#xff09;——NALU Header&#xff1a;forbidden_zero_bit、nal_ref_idc、nal_unit_type简介》可以知道&#xff0c;nal_unit…

学习记录:初次学习使用transformers进行大模型微调

初次使用transformers进行大模型微调 环境&#xff1a; 电脑配置&#xff1a; 笔记本电脑&#xff1a;I5&#xff08;6核12线程&#xff09; 16G RTX3070&#xff08;8G显存&#xff09; 需要自行解决科学上网 Python环境&#xff1a; python版本:3.8.8 大模型&#xff1a…

【Java学习】Object类与接口

面向对象系列五 一、引用 1.自调传自与this类型 2.类变量引用 3.重写时的发生 二、Object类 1.toString 2.equals 3.hashCode 4.clone 三、排序规则接口 1.Comparable 2.Comparator 一、引用 1.自调传自与this类型 似复刻变量调用里面的非静态方法时&#xff0c;都…