建木HA部署

news2024/11/29 0:54:29

背景

在建木v2.6.1之前,建木Server仅支持单机部署,如果出现单机故障,难以应用于在线场景,并且单机压力过大时,会影响系统延展性。

什么是HA

HA(High Availability Cluster)是高可用集群系统的简称,是保证业务连续性的有效解决方案,是指以减少服务中断时间为目的的服务器集群技术。它可以保护业务程序对外提供不间断的服务,把因软件、硬件、人为造成的故障对业务的影响降到最小。

建木HA部署

本文只介绍建木HA部署,单机部署请查看 建木部署文档

  • 资源准备
    • 一台虚拟机部署Nginx及建木UI
    • 两台虚拟机部署建木Server
    • 两台虚拟机部署建木Worker
    • 一台虚拟机部署Redis
    • 一台虚拟机部署Mysql
    • 一台虚拟机部署共享存储,需挂载到部署建木Server的两台虚拟机上

注意:多个建木Server需配置同一台Mysql和Redis数据库

  • 部署架构图



上图中,用Nginx实现多个建木Server的负载均衡,用户也可以使用其他中间件实现 

  • 建木UI配置

安装Nginx,构建建木UI并部署到Nginx,配置示例:

完整配置请查看nginx-http.conf

# 如下为建木UI页面配置相关片段
server {
  location / {
    # build后的页面放到该目录下
    root /home/dist;
    index index.html;
    try_files $uri $uri/ /index.html;
  }
}
复制代码
  • 建木Server配置

建木实现了基于Redis的通信机制,多个Server之间可以通过Redis通信协作,配置示例:

SPRING_REDIS_HOST: xxx.xxx.xxx.xxx
SPRING_REDIS_DATABASE: 0
SPRING_REDIS_PASSWORD: xxx
JIANMU_EVENT_TYPE: redis
复制代码

配置quartz存储方式为jdbc:

quartz集群需要导入mysql文件

SPRING.QUARTZ.JOB-STORE-TYPE: jdbc 
复制代码

为防止并发,只需一台建木Server开启流程实例自动清理(默认开启),其他机器应关闭流程实例自动清理:

# 表示关闭自动清理流程实例记录
JIANMU_GLOBAL_RECORD_AUTO-CLEAN: 'false'
复制代码

多Server部署时,需配置共享存储,并挂载共享目录:

volumes:
  - /xxx/xxx:/ci
复制代码

负载均衡,配置示例:

完整配置请查看nginx-http.conf

# 如下为建木Server负载均衡配置相关片段
upstream ci-server {
  # 建木Server1 ip:port
  server x.x.x.x:8081;
  # 建木Server2 ip:port
  server x.x.x.x:8081;
}
复制代码
  • 建木Worker配置

Worker配置的建木地址需要设置为建木Server的统一访问入口,如上图为Nginx的ip:port

JIANMU_SRV_ADDRESS: http://ip:port
复制代码

配置完成后,启动建木服务,建木HA就部署完成了!

官⽹:jianmu.dev

代码:gitee.com/jianmu-dev

文档:docs.jianmu.dev

示例:ci.jianmu.dev

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

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

相关文章

【软件测试】开发人员不鸟自己?看看资深测试如何做的......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试人员经常抱怨开…

jsp+servlet+mysql实现的新闻发布管理系统源码+运行教程+文档

今天给大家演示一下一款由jsp servlet mysql实现的新闻发布管理系统,主要实现了前台游客浏览新闻、评论新闻,后台管理员管理新闻等功能,新闻有热点新闻、最新更新等方式在首页展示,还有幻灯片展示重大新闻等功能,满足了…

一招解决开发环境问题——远程容器开发指南

前言 使用C作为主要开发语言的程序猿们应该会认同搭建开发环境是一件烦人的事情。为了编译一个程序不仅需要下载各种依赖包,还可能面临本地系统不兼容、编译器版本不一致、包版本冲突等各种问题。笔者在运营iLogtail开源社区的过程中发现开发和调试环境问题也是成员…

web网页设计期末课程大作业——HTML+CSS+JavaScript美食餐饮文化主题网站设计与实现

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

为云原生插上翅膀,天翼云弹性存储CStor-CSI助力容器腾飞

云原生是一种新型技术体系,已成为云计算未来的发展方向,越来越多的数字化项目与云原生紧密相连。作为云原生的基座,容器是必不可少的核心技术。然而,以Docker为代表的容器引擎,并不能满足大批量的容器业务需求&#xf…

推荐一套yyds的Java学习资料(非常经典)

Java 是全球最受欢迎的编程语言之一,在世界编程语言排行榜 TIOBE 中,Java 一直霸占着前三名,有好多年甚至都是第一名。 最近几年,全球约有 1/3 的专业程序员将 Java 作为主要编程语言,这一比例在我国更是高达 1/2&…

CTFSHOW web入门 java反序列化篇 web855

web855 得到源码后看到readObject里面有两条路可以走 1、写文件,文件名固定,文件内容开头固定后面内容可以通过write写入 2、执行命令,但是shellcodoe是不可控的(static) 如果两条路分开来看都没啥可利用的价值&…

ai绘画新功能上线,说一句话就能生成好看的AI画作

ai绘画可以将自己的图片生成二次元,还可以通过关键词描述生成好看的画作,这些我们都早已尝试过了,并且也玩得不亦乐乎,但AI绘画还能进行语音创作,只需要同AI说一句话,它就能创造出相关的画作,所…

【Linux开发笔记】VSCode+WSL——Windows搭建最轻量便捷的Ubuntu/Linux开发环境

1.概述 我们一般搭建Ubuntu开发环境都是采用VMware或者VirtualBox的虚拟机安装Ubuntu的方案,但是这样的方案会有几个弊端: 安装、启动慢;使用图形桌面时卡顿、鼠标不跟手、打字有延迟;磁盘空间占用比较大;内存资源占用…

安卓开发Android studio学习笔记21:ViewPager两种方式实现引导页

实现引导页一、ViewPager实现引导页第一步:创建三个xml1.page1.xml2.page2.xml3.page3.xml第二步:创建适配器GuideAdapter第三步:创建引导页原点1.activity_guide.xml2.GuideActivity.java二、 ViewPager(2)实现引导页…

[附源码]Node.js计算机毕业设计电影售票管理系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

Docker中的bridge模式,可以这么设置

最近有几个已经就业的小伙伴,过来问千锋健哥关于Docker网络配置的问题,他们在实际开发中还是有些疑问。关于Docker网络这一块的内容确实很多,为了让大家搞清楚这个问题,健哥准备搞几篇系列文章,来为各位小伙伴解惑。这…

小游戏开发者流量变现指南

2018年微信在其6.6.1版本中宣布支持小游戏,之后的几年,但凡能掀起各大社交平台上病毒式传播的,几乎都是小游戏。 小游戏玩法简单,传播机制简单,套路简单,连赚钱的本质也简单。就拿近期火爆的《羊了个羊》小…

程序员也可以很浪漫,精选10个圣诞节特效及源码

最近离圣诞节不远了、整理了一些关于圣诞相关的前端特效网页设计和小游戏的代码送大家、直接上效果吧。 代码过长的 可预览获取 圣诞节快乐 - 文字渐入动画 <body><svg viewport"0 0 300 300"><text class"Merry" x"150" y&qu…

货淋室及货通道维护要点有哪些

货淋室及货淋通道维护要点&#xff0c;货淋室是货物进入洁净室所必需的通道&#xff0c;它可以减少货物进出洁净室所带来的污染问题。 货淋室及货淋通道维护要点&#xff1a; 1、定期使用仪器测定设备的各项技术指标&#xff0c;如不符合技术参数要求应及时予以处理。 2、根…

高低jdk版本中jndi注入(下)

目录 0x01 绕过高版本JDK&#xff08;8u191&#xff09;限制 如下两种绕过方式&#xff1a; 0x02 利用本地恶意Class作为Reference Factory 2.1 攻击利用 1. 服务端 2. 服务端 2.2 几种变体的表达式 调试分析 小结 0x03 利用LDAP返回序列化数据&#xff0c;触发本地Gadg…

nacos--基础--5.1--集成--SpringCloud--配置管理、服务发现、服务注册

nacos–基础–5.1–集成–SpringCloud–配置管理、服务发现、服务注册 代码位置 https://gitee.com/DanShenGuiZu/learnDemo/tree/master/nacos-learn/nacos-spring-cloud1、介绍 主要面向 Spring 的使用者通过2个实例&#xff0c;来介绍nacos和Spring的集成 配置管理服务注册…

运行时发现文件路径输出404

运行时发现文件路径输出404 tomcat不能显示中文原因主要是编码的问题&#xff0c; 因为Tomcat5的http Connector所用的URI解码默认用的是 ISO-8859-1&#xff0c; 而一般浏览器默认用的发送编码为UTF-8&#xff0c;这样问题就出现了&#xff0c; 初步的解决方法如下&#xff1a…

Mentor-dft 学习笔记 day40-Basic Test Data Formats for Patterns

Reduce Serial Loading Simulation Time with Sampling 使用write_patterns命令时&#xff0c;可以使用-sample开关保存完整pattern集的样本。这将减少pattern文件中的pattern数量&#xff0c;从而减少模拟时间。此外&#xff0c;-Sample开关允许您控制样本中包含的每种类型的p…

回归预测 | MATLAB实现WOA-BiLSTM鲸鱼算法优化双向长短期记忆神经网络多输入单输出航空寿命数据回归预测

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …