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

张小明 2026/1/15 0:09:46
技术支持 鼎维重庆网站建设专家,中文域名注册机构,怎么优化网站排名才能起来,松江网站开发培训学校在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进行投诉反馈,一经查实,立即删除!

南昌网优化网站设计公司我要表白网在线生成

作为一名长期和Mac打交道的内容创作者,我每天都要在无数层文件夹中穿梭,重复着“点击-打开-返回-再打开”的繁琐操作。直到我遇见了 Default Folder X,它就像给我的访达(Finder)装上了“任督二脉”,效率提升…

张小明 2026/1/12 21:02:31 网站建设

9.9元包邮网站怎么做烟台市芝罘区住房和建设局网站

SkyReels-V2无限视频生成模型:5步完成企业级部署实战 【免费下载链接】SkyReels-V2 SkyReels-V2: Infinite-length Film Generative model 项目地址: https://gitcode.com/GitHub_Trending/sk/SkyReels-V2 还在为AI视频生成模型的高门槛部署而头疼吗&#xf…

张小明 2026/1/10 8:25:46 网站建设

自己做的网站跳转到购彩大厅注册公司费用要多少

你是否曾经面对加密压缩包束手无策?重要的工作资料、珍贵的个人回忆被一纸密码阻隔在外?现在,这一切都将成为历史!ArchivePasswordTestTool作为一款基于7zip引擎的开源密码测试工具,将为你提供最专业、最高效的密码找回…

张小明 2026/1/12 7:59:33 网站建设

如何做电商网站 昆明网站商城建设需求表

第一章:Open-AutoGLM插件能力全解析,解锁大模型自动化的终极武器Open-AutoGLM 是一款面向大语言模型(LLM)生态的自动化增强插件,旨在通过智能化的任务编排、上下文感知与动态调用机制,实现复杂业务流程的无…

张小明 2026/1/10 16:58:30 网站建设

网站报价表怎么做安徽百度seo教程

求解代码 这道题面试遇到过,是一道比较经典的动态规划题。 先求出word1和word2的长度,然后把初始条件和状态转移方程写出来,基本上这题就完成了。 初始条件: 当j为0时,执行删除操作; 当i为0时,执行插入操作。 public int minDistance(String word1,String word2){…

张小明 2026/1/10 16:58:30 网站建设