news 2026/9/3 3:53:11

VonaJS: Election

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VonaJS: Election

如果需要在后端启动一个独立服务,在 VonaJS 中该如何实现呢?

由于 VonaJS 是分布式架构,后端可以启动多个 Workers。那么,应该在哪个 Worker 中启动独立服务呢?

VonaJS 针对此场景提供了Election,工作原理如下:

  1. 所有 Workers 都会参与竞争,获取所有权
  2. 可以指定同时获取所有权的 Workers 数量
  3. 取得所有权的 Workers 可以启动服务
  4. 如果某个拥有所有权的 Worker 正常退出或者异常终止,那么其他 Workers 就会继续参与竞争

创建meta.election

比如,在模块 demo-student 中创建meta.election。在选中的 Worker 中启动一个定时器,每隔 2 秒输出Hello World

1. Cli命令

$ vona :create:bean meta election --module=demo-student

2. 菜单命令

右键菜单 -[模块路径]:`Vona Meta/Election`

meta.election定义

exporttypeTypeElectionObtainResource='echo';@Meta()exportclassMetaElectionextendsBeanElectionBase<TypeElectionObtainResource>{}
  • TypeElectionObtainResource: 定义 Election 资源的类型

创建 Module Monkey

接下来创建Module Monkey,响应appStartedappClose钩子

exportclassMonkeyextendsBeanSimpleimplementsIMonkeyAppStarted{asyncappStarted(){constscope=this.app.scope(__ThisModule__);scope.election.obtain('echo',()=>{// custom logic},async()=>{// cleanup});}}
  • appStarted: 调用election.obtain获取指定资源的所有权。当取得所有权就会调用回调函数

Tickets

在调用election.obtain时,可以指定允许多个 Workers 取得所有权:

async appStarted() { const scope = this.app.scope(__ThisModule__); scope.election.obtain('echo', () => { // custom logic }, async () => { // cleanup + }, { tickets: 2 }); }
名称说明
tickets允许指定数量的Workers取得所有权,默认为1

资源

  • Github:https://github.com/vonajs/vona
  • 文档:https://vona.js.org
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 11:37:36

腾讯云国际站代理商的TAPD有什么优势呢?

腾讯云国际站的 TAPD&#xff08;腾讯敏捷产品研发平台&#xff09;本身就具备适配跨境研发协作的全周期管理、智能化协作等核心能力&#xff0c;通过国际站代理商合作使用该服务&#xff0c;还能在成本支出、落地适配、技术支持等方面获得额外优势&#xff0c;具体如下&#x…

作者头像 李华
网站建设 2026/9/2 19:09:58

Langchain-Chatchat集成华为NPU部署Qwen2.5

Langchain-Chatchat集成华为NPU部署Qwen2.5 在企业级AI应用逐渐从“可用”迈向“可控”的今天&#xff0c;如何在保障数据安全的前提下构建高效、低成本的智能问答系统&#xff0c;成为众多组织面临的核心命题。公有云API虽然便捷&#xff0c;但一旦涉及敏感文档或内部知识库&a…

作者头像 李华
网站建设 2026/9/3 0:45:59

T型槽试验平台不可忽视的数据

T型槽试验平台适用于各种检验工作&#xff0c;精度测量用的基准平面&#xff0c;用于机床机械检验测量基准&#xff0c;检查零件的尺寸精度或行为偏差&#xff0c;并作划线&#xff0c;T型槽试验平台在机械制造中也是不可缺少的基本工具。 T型槽试验平台材料为强度高铸铁材质HT…

作者头像 李华
网站建设 2026/9/3 1:53:38

【完整源码+数据集+部署教程】犬类检测系统源码分享[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

一、背景意义 随着人工智能技术的迅猛发展&#xff0c;计算机视觉领域取得了显著的进步&#xff0c;尤其是在目标检测方面。目标检测技术的应用范围广泛&#xff0c;涵盖了安防监控、自动驾驶、智能家居等多个领域。犬类作为人类生活中不可或缺的伴侣动物&#xff0c;其检测与…

作者头像 李华
网站建设 2026/9/2 16:22:35

【计算机毕业设计案例】基于springboot的天气预报查询网站系统基于springboot天气预报查询系统(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华