服务管道 #
什么是服务管道 #
服务管道(Pipeline)是用于离线处理任务的功能组合,和在线请求的过滤器一样使用管道设计模式。 处理器(Processor)是服务管道的基础单位,每个处理组件一般专注做一件事情,根据需要灵活组装,灵活插拔。
管道定义 #
一个典型的管道服务定义如下:
pipeline:
- name: request_logging_index
auto_start: true
keep_running: true
processor:
- json_indexing:
index_name: "gateway_requests"
elasticsearch: "dev"
input_queue: "request_logging"
idle_timeout_in_seconds: 1
worker_size: 1
bulk_size_in_mb: 10 #in MB
上面的配置里面,定义了一个名为 request_logging_index 的处理管道,processor 参数定义了该管道的若干处理单元,依次执行。
参数说明 #
管道定义的相关参数说明如下:
| 名称 | 类型 | 说明 |
|---|---|---|
| name | string | 管道的名称,唯一不能重复 |
| auto_start | bool | 是否随着网关自启动,也就是立即执行该任务 |
| keep_running | bool | 网关执行完毕之后是否继续重头开始执行 |
| singleton | bool | 该任务是否为单例,一个集群内只允许一个节点实例运行 |
| max_running_in_ms | int | 该任务运行执行的最大时间,默认 60000 毫秒 |
| retry_delay_in_ms | int | 该任务再次执行的最少等待时间,默认 5000 毫秒 |
| processor | array | 该管道依次执行的处理器列表 |