rocketmq-connector
  • Message Connector 简介
  • 架构设计
    • Woker
    • Runtime
    • Connector
    • Routing Task
    • 消费位点同步
    • 消息路由监控
  • Quick Start
    • 前期准备
      • RocketMQ单机环境
      • RocketMQ集群搭建
    • RocketMQ Runtime
    • File Connector
  • RocketMQ Connect
    • RocketMQ Connect 简介
    • 应用场景
    • RocketMQ Runtime
      • 启动流程
      • Runtime 参数配置
      • RESTful 接口
      • Connector生命周期
      • 负载均衡
    • RocketMQ Console
      • Console 简介
      • 安装和使用
      • 使用指南
  • RocketMQ Connector
    • RocketMQ Replicator
      • Replicator简介
      • Replicator快速开始
      • Replicator 参数配置
    • Connect-Mongo
    • Connect-MySQL
    • Connect-Redis
  • 开发者中心
    • RELEASE NOTE
    • mqadmin 操作指南
    • 最佳实践
    • 工业实践
      • connector-mongo实践
  • 贡献者指北
    • 参与告知
    • 文档贡献指北
    • 本地调试向导
    • 一个简单Connector的实现
    • Contributor二三言
Powered by GitBook
On this page
  • 负载均衡
  • 一致性hash负载均衡算法
  • 在runtime中配置负载均衡算法
  • 使用说明
  • 集群搭建部署方式

Was this helpful?

  1. RocketMQ Connect
  2. RocketMQ Runtime

负载均衡

RocketMQ Connect的负载均衡实现方式和主要算法

PreviousConnector生命周期NextRocketMQ Console

Last updated 5 years ago

Was this helpful?

负载均衡

RocketMQ Connect负载均衡跟RocketMQ Consumer和Queue之间的负载均衡类似,都是每个节点运行相同的负责均衡算法计算本节点应该处理的Task。

RocketMQ Connect集群中如果有节点挂掉,集群信息会发生变化,每个节点检查到集群信息发生了变化就会出发负载均衡,对集群中运行的Connector, Task重新分配,从而保证故障节点的任务分配到其它接单处理。

一致性hash负载均衡算法

RocketMQ Runtime的一致性Hash算法作用是负载均衡是不会对运行中的connector任务再次影响。

RocketMQ Runtime实现了通过设置JVM来设置一致性hash负载均衡算法,具体参数请参考

在runtime中配置负载均衡算法

使用说明

1. 在rocketmq-connect-runtime/target/distribution/conf/connect.conf中配置 allocTaskStrategy参数

## Http prot for user to access REST API
httpPort=8081

# Rocketmq namesrvAddr
# namesrv地址相同即为一个runtime集群
namesrvAddr=4xx.1xx.2xx.1xx:9876

# Source or sink connector jar file dir,The default value is rocketmq-connect-sample
pluginPaths=/usr/local/connector-plugins/

# 本地存储路径(如果多个Worker在一个上,需要文件夹不同)
storePathRootDir=/Users/yongqifeng/connectorStore/

# 负载均衡策略
allocTaskStrategy=org.apache.rocketmq.connect.runtime.service.strategy.AllocateConnAndTaskStrategyByConsistentHash

2. 在run_worker.sh 添加jvm参数 virtualNode

#!/bin/bash
echo "run rumtime worker"
cd target/distribution/ && java -DvirtualNode=2 -cp .:./conf/:./lib/* org.apache.rocketmq.connect.runtime.ConnectStartup -c conf/connect.conf

3. 重复上面的1和2步骤多个Worker,然后启动

The worker [192.168.1.115@34974] boot success.
The worker [192.168.1.115@34915] boot success.
# 结果返回
["192.168.1.115@34974","192.168.1.115@34915"]

集群搭建部署方式

  • 一个机器上运行多个runtime(方便测试使用)

  • 多个机器,每个机器部署一个runtime

4. 看到多个Worker正常运行,请求,看到如下信息说明集群启动成功。

Runtime 参数配置
http://localhost:8081/getClusterInfo