Conductor Server

时间:2022-03-26 19:34:26

安装

要求

  1. 数据库Dynomite               https://github.com/Netflix/dynomite
  2. 索引后端: Elasticsearch 2.x    https://www.elastic.co/cn/
  3. Servlet容器:Tomcat,Jetty或类似的运行JDK 1.8或更高版本

有3种方式可以安装Conductor:

源代码build

从源代码构建,从github检查代码,并使用gradle build命令构建服务器模块。如果没有安装Gradle,可以./gradlew build从项目根目录运行命令。这会在文件夹./server/build/libs/中生成导体-server-all- VERSION.jar

该jar可以执行:

java -jar conductor-server-VERSION-all.jar

从jcenter或maven*下载预制的二进制文件

使用以下坐标:

神器
com.netflix.conductor 导体服务器所有 1.6。+

3.使用预先配置的Docker镜像

要为conductor server构建Docker映像,并运行以下命令:

cd docker
docker-compose build

在构建Docker image后,运行以下命令启动容器:

docker-compose up

这将创建一个由以下image组成的docker container网络:conductor:server,conductor:ui,elasticsearch:2.4和dynomite。

要查看UI,请导航到localhost:5000,以查看Swagger文档,导航到localhost:8080

配置

conductor server使用基于属性文件的配置。属性文件作为命令行参数传递给Main类。

java -jar conductor-server-all-VERSION.jar [PATH TO PROPERTY FILE] [log4j.properties file path]

log4j.properties文件路径是可选的,可以更好地控制日志记录(默认为控制台中的INFO级别日志记录)。

配置参数


# Database persistence model. Possible values are memory, redis, and dynomite.
# If omitted, the persistence used is memory
#
# memory : The data is stored in memory and lost when the server dies. Useful for testing or demo
# redis : non-Dynomite based redis instance
# dynomite : Dynomite cluster. Use this for HA configuration.
db=dynomite # Dynomite Cluster details.
# format is host:port:rack separated by semicolon
workflow.dynomite.cluster.hosts=host1:8102:us-east-1c;host2:8102:us-east-1d;host3:8102:us-east-1e # Dynomite cluster name
workflow.dynomite.cluster.name=dyno_cluster_name # Namespace for the keys stored in Dynomite/Redis
workflow.namespace.prefix=conductor # Namespace prefix for the dyno queues
workflow.namespace.queue.prefix=conductor_queues # No. of threads allocated to dyno-queues (optional)
queues.dynomite.threads=10 # Non-quorum port used to connect to local redis. Used by dyno-queues.
# When using redis directly, set this to the same port as redis server
# For Dynomite, this is 22122 by default or the local redis-server port used by Dynomite.
queues.dynomite.nonQuorum.port=22122 # Transport address to elasticsearch
workflow.elasticsearch.url=localhost:9300 # Name of the elasticsearch cluster
workflow.elasticsearch.index.name=conductor # Additional modules (optional)
conductor.additional.modules=class_extending_com.google.inject.AbstractModule

高可用性配置

导体服务器是无状态的,可以部署在多个服务器上以处理规模和可用性需求。服务器的可扩展性是通过将Dynomite集群与用于队列的dyno-queue进行缩放来实现的。

客户端通过HTTP负载平衡器或使用Discovery(在NetflixOSS堆栈上)连接到服务器。