当前位置: 首页 > 工具软件 > PhxQueue > 使用案例 >

phxqueue java_PhxQueue配置

龚凌
2023-12-01

简介

PhxQueue的配置分为两类:队列配置和服务器配置。队列配置控制队列的整体参数,需要在所有服务器上部署且保证内容一致,默认实现的队列配置采用json格式。服务器配置只在相应的模块机器上部署,控制当前服务器的特殊参数。

1. 队列配置

1.1 队列Global配置

队列Global配置设定队列的总体参数,文件路径为etc/globalconfig.conf。

topic_infos根配置项为Topic的数组。每个Topic有以下配置项:

配置项

说明

topic_id

Topic的全局唯一ID(不要求连续)

topic_name

Topic的名字

topic_config_path

队列Topic配置的路径

store_config_path

队列Store配置的路径

consumer_config_path

队列Consumer配置的路径

scheduler_config_path

队列Scheduler配置的路径

lock_config_path

队列Lock配置的路径

1.2 队列Topic配置

队列Topic配置设定一个Topic的具体参数,文件路径为etc/topicconfig.conf。

一个Topic有多个Publisher(发布者)和Subscriber(订阅者)。每个Publisher关联到多个Queue(类似于Kafka中的Partition)。

topic配置项

Topic设置,有以下子配置项:

配置项

说明

类型

topic_id

Topic的全局唯一ID(需与队列Global配置中指定的一致)

int32, 必须

handle_ids

Handler列表

int32, 必须

items_byte_size_limit

一次入队的尺寸上限

int32, 不建议修改

batch_limit

一次出队的尺寸上限

int32, 不建议修改

store_paxos_batch_count

Store的Batch入队个数上限

int32

store_paxos_batch_delay_time_ms

Store的Batch入队时间上限

int32

store_adjust_master_rate_time_interval_s

Store调整master权重时间间隔

int32

consumer_lock_lease_time_s

Consumer租约时长

int32, 不建议修改

scheduler_get_scale_interval_s

Scheduler负载均衡准备时间

int32, 不建议修改

scheduler_load_balance_interval_s

Scheduler负载均衡时间间隔

int32, 不建议修改

scheduler_lock_lease_time_s

Scheduler租约时长

int32, 不建议修改

lock_adjust_master_rate_time_interval_s

Lock调整master权重时间间隔

int32

queue_infos配置项

Queue组设置,有以下子配置项:

配置项

说明

类型

例子

queue_info_id

Queue组的唯一ID

int32, 必须

1

ranges

Queue组的范围列表

string, 必须

["0-4", "10-12"]

pubs配置项

Publisher设置,有以下子配置项:

配置项

说明

pub_id

Publisher的唯一ID

sub_ids

关联的Subscriber列表

queue_info_ids

Queue组的列表

subs配置项

Subscriber设置,有以下子配置项:

配置项

说明

sub_id

Subscriber的唯一ID

use_dynamic_scale

是否使用Scheduler进行负载均衡

skip_lock

是否跳过Lock抢锁机制

1.3 队列Store配置

文件路径为etc/storeconfig.conf。

stores根配置项为Store的数组,每个Store包含以下配置项:

配置项

说明

store_id

Store的唯一ID

addrs

各个节点地址的数组

scale

该Store的权重

pub_ids

关联的PublisherID

1.4 队列Consumer配置

文件路径为etc/consumerconfig.conf。

1.5 队列Scheduler配置

文件路径为etc/schedulerconfig.conf。

1.6 队列Lock配置

文件路径为etc/lockconfig.conf

locks根配置项为Lock的数组,每个Lock包含以下配置项:

配置项

说明

lock_id

Lock的唯一ID

addrs

各个节点地址的数组

scale

该Lock的权重

1.7 队列配置示例:多订阅

配置一个Topic,该Topic的ID为1000;单个Publisher,ID为1;多个Subscriber,ID为1和2。

修改etc/topicconfig.conf如下:

{

"topic":

{

"topic_id": "1000",

"handle_ids": ["1", "2"],

},

"queue_infos":

[

{

"queue_info_id": "1",

"ranges": ["0"]

}

],

"pubs":

[

{

"pub_id": "1",

"sub_ids": ["1", "2"],

"queue_info_ids": ["1"]

}

],

"subs":

[

{

"sub_id": "1",

"use_dynamic_scale": "0",

"skip_lock": "1"

},

{

"sub_id": "2",

"use_dynamic_scale": "0",

"skip_lock": "1"

}

]

}

修改etc/consumerconfig.conf,指派Consumer处理Subscriber1和Subscriber2。确保相应Consumer的sub_ids配置如下或者不配置sub_ids(不配置则默认处理所有Subscriber):

{

"consumers":

[

{

...

"scale": "1000",

"sub_ids": [1, 2]

},

...

]

}

1.8 队列配置示例:多级重试

2. 服务器配置

2.1 服务器公共配置

配置节

说明

[Server]

服务器基本设置

[Log]

日志设置

[ServerTimeout]

服务器超时设置

2.2 Store服务器配置

文件路径为etc/store_server.0.conf,配置中的数字替换为相应服务器节点的编号。

Store模块独有设置在[Store]节中:

配置项

说明

类型

Topic

所属Topic

string

DataDirPath

数据目录路径

string

PhxQueueGlobalConfigPath

全局配置路径

string

PaxosPort

Paxos端口

int32

NPaxosIOThread

Paxos IO线程数

int32

2.3 Consumer服务器配置

文件路径为etc/consumer_server.0.conf,配置中的数字替换为相应服务器节点的编号。

2.4 Scheduler服务器配置

文件路径为etc/scheduler_server.0.conf,配置中的数字替换为相应服务器节点的编号。

Scheduler模块独有设置在[Scheduler]节中:

配置项

说明

类型

Topic

所属Topic

string

PhxQueueGlobalConfigPath

全局配置路径

string

2.5 Lock服务器配置

文件路径为etc/lock_server.0.conf,配置中的数字替换为相应服务器节点的编号。

Lock模块独有设置在[Lock]节中:

配置项

说明

类型

Topic

所属Topic

string

DataDirPath

数据目录路径

string

PhxQueueGlobalConfigPath

全局配置路径

string

PaxosPort

Paxos端口

int32

 类似资料: