技术支持 鼎维重庆网站建设专家中文域名注册机构

张小明 2025/12/30 2:15:40
技术支持 鼎维重庆网站建设专家,中文域名注册机构,怎么优化网站排名才能起来,松江网站开发培训学校在VonaJS中实现读写分离#xff0c;只需提供一组写数据源和一组读数据源。当用户访问后端 API 时#xff0c;系统会按照规则自动选择写数据源或读数据源#xff0c;访问相应的数据库#xff0c;从而分摊压力#xff0c;提升系统性能安装模块读写分离作为独立的模块提供只需提供一组写数据源和一组读数据源。当用户访问后端 API 时系统会按照规则自动选择写数据源或读数据源访问相应的数据库从而分摊压力提升系统性能安装模块读写分离作为独立的模块提供因此需要在VonaJS项目中安装此模块$ pnpm add vona-module-a-datasharding -w添加数据源首先需要添加一组数据源1. 添加类型定义为新数据源添加类型定义src/backend/config/config/config.tsdeclare module vona-module-a-orm {export interface IDatabaseClientRecord {read1: never;read2: never;write1: never;write2: never;}}2. 增加数据源配置src/backend/config/config/config.ts// databaseconfig.database {clients: {read1: {client: pg,connection: {host: 127.0.0.1,port: 5432,user: postgres,password: ,database: xxxx-read1,},},read2: {...},write1: {...},write2: {...},},};配置读写数据源然后配置模块的读写数据源src/backend/config/config/config.ts// modulesconfig.modules {a-datasharding: {client: {reads: [read1, read2],writes: [write1, write2],randomRead: undefined,randomWrite: undefined,},},};名称 说明reads 指定一组读数据源writes 指定一组写数据源randomRead 可指定自定义函数从reads中提取一个读数据源。默认为undefined由系统随机提取randomWrite 可指定自定义函数从writes中提取一个写数据源。默认为undefined由系统随机提取读写分离的运行机制当配置好读写数据源之后读写分离机制就自动生效了现在解释一下读写分离的运行机制模块提供了一个全局拦截器a-datasharding:datasharding。该拦截器判断当前 API Method如果是POST/PATCH/DELETE/PUT那么就使用写数据源否则使用读数据源数据一致性: 缓存写数据源场景分析同一个用户由于数据库同步有延时会出现数据不一致性的情况。比如用户访问Write-API将数据写入写数据库。接下来用户访问Read-API此时读数据库还没有同步那么就会读到旧数据为了解决以上问题模块自动提供了一个机制当用户访问Write-API时会自动将写数据源存入二级缓存并设置过期时间。在这个时间之内用户访问Read-API时也会继续使用同一个写数据源从而确保在写入数据后总是可以读取到最新的数据修改过期时间二级缓存的名称是a-datasharding:datasourceWrite可以在 App config 中修改过期时间src/backend/config/config/config.ts// onionsconfig.onions {summerCache: {a-datasharding:datasourceWrite: {mem: {ttl: 5 * 1000, // 5s},redis: {ttl: 5 * 1000, // 5s},},},};名称 说明mem.ttl Mem缓存的过期时间默认为3秒redis.ttl Redis缓存的过期时间默认为3秒数据一致性: 缓存双删场景分析不同用户Vona ORM 提供了开箱即用的缓存机制参见缓存由于数据库同步有延时会出现缓存不一致性的情况。比如用户 A 访问Write-API将数据写入写数据库并自动删除缓存。接下来用户 B 访问Read-API此时读数据库还没有同步那么就会读到旧数据并存入缓存为了解决以上问题模块a-orm提供了缓存双删机制当用户 A 访问Write-API时将数据写入写数据库并自动删除缓存。然后在指定时间之后再次删除缓存从而确保缓存总是最新数据启用缓存双删src/backend/config/config/config.ts// modulesconfig.modules {a-orm: {sharding: {cache: {doubleDelete: true,},},},};修改缓存双删延迟时间系统采用队列任务执行缓存双删队列名称是a-orm:doubleDelete可以在 App config 中修改缓存双删延迟时间src/backend/config/config/config.ts// onionsconfig.onions {queue: {a-orm:doubleDelete: {options: {job: {delay: 5 * 1000, // 5s},},},},};名称 说明job.delay 指定延迟多长时间执行缓存双删任务默认为3秒
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网页型网站抚州购物网站开发设计

FaceFusion实战指南:在GPU环境下加速人脸可视化分析如今,从短视频平台的虚拟换脸特效到影视工业中的数字替身,再到医学美容的术前模拟,基于深度学习的人脸生成与编辑技术正以前所未有的速度渗透进各行各业。而在这股浪潮中&#x…

张小明 2025/12/28 21:30:24 网站建设

icp备案 网站房地产销售赚钱吗

文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言 🌞博主介绍:✌全网粉丝15W,CSDN特邀作者、211毕业、高级全…

张小明 2025/12/28 21:29:48 网站建设

wordpress 支付 小程序优化大师哪个好

职业转折:裁员浪潮下的自我剖析收到裁员通知时,我内心早已有所准备。但当这一刻真正来临,迷茫仍悄然袭来。短暂的自我调节后,我开始冷静分析形势:我的优势:具备跨团队项目经验、能带领小型团队,…

张小明 2025/12/28 21:29:12 网站建设

成都海鸥手表网站电子商务网站建设与维护pdf

Cypress 是一款现代化的前端自动化测试工具,提供友好的 Test Runner 和丰富的 API,能够快速构建和执行测试用例。本文将带你从 Cypress 安装、文件结构、基本测试实现,到多种方式执行测试的完整流程。一、启动 Cypress Test RunnerCypress Te…

张小明 2025/12/28 21:28:38 网站建设

嘉定集团网站建设关键词搜索量全网查询

第一章:生物制药Agent实验设计的挑战与机遇在生物制药领域,基于智能Agent的实验设计正逐步成为推动新药研发效率的关键技术。这类系统通过模拟研究人员的决策逻辑,自动规划实验路径、优化参数组合,并动态响应实验反馈,…

张小明 2025/12/28 21:28:04 网站建设

西宁seo网站一份完整的活动策划方案

核心问题分析为什么 style 是 null? 在 OpenLayers 中,Feature(要素/图标)的样式有两种来源:一是 Feature 自身设置的样式,二是 Layer(图层)设置的统一样式。当你发现 style 为 null…

张小明 2025/12/28 21:27:30 网站建设