如何解决Uber Cadence生产设置
我当时正在寻找一个微服务协调器,遇到了Uber Cadence。我浏览了文档,并在开发设置中使用了它。
对于生产场景,我有几个问题:
-
是否建议为工作流及其使用的不同活动提供专用的任务列表?还是我们应该对所有任务使用单个任务列表?这个决定会影响可扩展性或性能吗?
-
当我们添加新的工作计算机时,在同一台计算机上为所有活动/工作流运行所有工作计算机是一种常见的做法吗?示例:
Worker.Factory factory = new Worker.Factory("samples-domain"); Worker helloWorkflowWorker = factory.newWorker("HelloWorkflowTaskList"); helloWorkflowWorker.registerWorkflowImplementationTypes(HelloWorkflowImpl.class); Worker helloActivityWorker = factory.newWorker("HelloActivityTaskList"); helloActivityWorker.registeractivitiesImplementations(new HelloActivityImpl()); Worker upperCaseActivityWorker = factory.newWorker("UpperCaseActivityTaskList"); upperCaseActivityWorker.registeractivitiesImplementations(new UpperCaseActivityImpl()); factory.start();
还是我们应该在专用计算机上运行每个活动/工作流工作者?
-
在一台工人计算机上,我们可以为给定活动创建多少工人?例如,如果我们有活动HelloActivityImpl,是否应该在同一工作计算机上为其创建多个工作计算机?
-
我没有找到任何用于生产设置的文档。例如,如何在生产中安装和配置Cadence服务?有人可以为此指导我正确的材料,那就太好了。
-
在一些视频教程中,提到要实现高可用性,我们可以跨多个数据中心设置Cadence Service。如何为此配置Cadence服务?
解决方法
-
除非您需要对一组活动进行单独的流控制和速率限制,否则没有理由在每个工作进程中使用多个任务队列。
-
正如我在1中提到的,我会将您的代码重写为:
client.on('messageReactionAdd',(reaction,user) => { if (user.bot) return; var roleName = reaction.emoji.name; console.log(roleName); var role = reaction.message.guild.roles.cache( (role) => role.name.toLowerCase() === roleName.toLowerCase() ); var member = reaction.message.guild.members.find( (member) => member.id === user.id ); if (member.roles.has(role.id)) { member .removeRole(role.id) .then((member) => { console.log( 'Removed' + member.user.username + ' from the ' + role.name + ' role.' ); }) .catch((err) => console.error); } else { member .addRole(role.id) .then((member) => { console.log( 'Added ' + member.user.username + ' to the ' + role.name + ' role.' ); }) .catch((err) => console.error); } });
-
没有理由为同一活动创建多个工人。
-
不确定Cadence。 Here is临时文档,展示了如何部署到Kubernetes。
-
此文档尚不可用。 Temporal的我们正在努力。
您还可以使用Cadence头盔图https://hub.helm.sh/charts/banzaicloud-stable/cadence
我正在与Cadence团队积极合作,以获取社区的操作文档。对于像我这样不想在K8上运行的人来说,它将很有用。我会等我们取得进展后再回来。
当前草稿版本:https://docs.google.com/document/d/1tQyLv2gEMDOjzFibKeuVYAA4fucjUFlxpojkOMAIwnA
将很快发布到cadence-docs。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。