跳到主要内容
版本:2.2.4

配置详情

Phoenix 配置列表

phoenix-akka配置

配置项描述类型默认值
quantex.phoenix.akka.akka-confactorSystem的配置文件路径String
quantex.phoenix.akka.akka-parallelism-minactorSystem的线程池配置最小并发数Int1
quantex.phoenix.akka.akka-parallelism-factoractorSystem的线程池配置线程比,即一个核配多少个线程;Double3
quantex.phoenix.akka.akka-parallelism-maxactorSystem的线程池配置最大并发数Int128
quantex.phoenix.akka.service-name服务名String服务名
quantex.phoenix.akka.discovery-method集群发现的方式Stringconfig
可选值:config / kubernetes-api
quantex.phoenix.akka.cinnamon-application服务名String服务名
quantex.phoenix.akka.provider运行模式Stringcluster
可选值:local / cluster / remote
quantex.phoenix.akka.artery-enableremote.artery 开关Stringon
可选值:on / off
quantex.phoenix.akka.artery-transport传输方式Stringtcp
可选值:tcp / tls-tcp / aeron-udp
quantex.phoenix.akka.artery-canonical-port远程服务器端口Int2551
quantex.phoenix.akka.artery-canonical-hostname远程服务器地址String127.0.0.1
quantex.phoenix.akka.artery-bind-hostname可绑定的ip地址String0.0.0.0
quantex.phoenix.akka.seed-node集群的初始接触点Listakka:// + 服务名 + @127.0.0.1:2551
quantex.phoenix.akka.method服务发现的方式Stringakka-dns
quantex.phoenix.akka.pod-label-selector服务发现的pod标签Stringapp=%s
quantex.phoenix.akka.management-http-port用于集群管理的端口Int8558
quantex.phoenix.akka.management-http-bind-hostname绑定内部(0.0.0.0:8558)String0.0.0.0
quantex.phoenix.akka.executor线程池类型akka executorthread-pool-executor
quantex.phoenix.akka.fixedPoolSize固定线程池中线程数量 默认值设为 500int500
quantex.phoenix.akka.k8sPodDomaink8s服务发现默认集群域名后缀Stringcluster.local

Phoenix-server配置

配置项描述类型默认值
quantex.phoenix.server.nameServer端服务名String
quantex.phoenix.server.packageName聚合根包所在路径String
quantex.phoenix.server.mq.typeMQ 类型Stringkafka
quantex.phoenix.server.mq.addressMQ 服务端地址String
quantex.phoenix.server.mq.groupServer端服务消费组名,对应kafka和rocketmq中的consumergroupStringServer端服务名
quantex.phoenix.server.mq.subscribes-topicServer端订阅的 topicString
quantex.phoenix.server.mq.use-kerberos是否开启 kerberos 认证Booleanfalse
quantex.phoenix.server.mq.jaas-conf-pathjaas配置文件路径String
quantex.phoenix.server.mq.krb5-conf-pathkrb5配置文件路径String
quantex.phoenix.server.mq.krb-service-namekrb服务名String
quantex.phoenix.server.event-store.driver-class-name数据库驱动String可选值:
org.h2.Driver
com.mysql.jdbc.Driver
oracle.jdbc.OracleDriver
quantex.phoenix.server.event-store.initial-size初始连接池大小int2
quantex.phoenix.server.event-store.min-idle最小连接池大小int2
quantex.phoenix.server.event-store.max-active最大连接池大小int8
quantex.phoenix.server.event-store.data-sources[].url数据库 连接urlString
quantex.phoenix.server.event-store.data-sources[].username数据库账户String
quantex.phoenix.server.event-store.data-sources[].password数据库密码String
quantex.phoenix.server.license认证license,需要向Phoenix官方申请String
quantex.phoenix.server.performance.transaction-reliability-maxAge全局SimpleLeastOneDeliveryStrategy 在途事务最大年龄int5
quantex.phoenix.server.performance.transaction-reliability-retry-time-interval-ms全局SimpleLeastOneDeliveryStrategy 消息重试投递等待间隔基数int5000
quantex.phoenix.server.performance.transaction-reliability-batch-retry全局SimpleLeastOneDeliveryStrategy批量重试大小 批量重试批次大小Int100
quantex.phoenix.server.performance.limit-max-live-things全局CountLimitHandler 最大存活事情Int5000
quantex.phoenix.server.performance.limit-max-remove-timeout-ms全局CountLimitHandler 最大移除超时时间Int100000
quantex.phoenix.server.performance.batch-processEntityAggregateActor 批量向子Actor发送消息进行处理Int100
quantex.phoenix.server.performance.batch-persist消息持久化 批次大小Int200
quantex.phoenix.server.performance.event-sourcing-read-batch-sizeEvent Sourcing 事件读取的分页大小Int1000

Phoenix-client配置

配置项描述类型默认值
quantex.phoenix.client.nameClient 端服务名String
quantex.phoenix.client.maxRetryNum最大重试次数(默认重试3次),如果设置为MAX_VALUE则表示关闭重试逻辑int2
quantex.phoenix.client.retryInterval重试间隔(单位毫秒,默认10s)long1000000000
quantex.phoenix.client.mq.typeMQ 类型Stringkafka
quantex.phoenix.client.mq.groupclient端服务消费组名,对应kafka和rocketmq中的consumergroupStringClient端服务名
quantex.phoenix.client.mq.addressMQ 服务端地址String
quantex.phoenix.client.mq.subscribe-topicServer端订阅的 topicStringClient端服务名
quantex.phoenix.client.mq.use-kerberos是否开启 kerberos 认证Booleanfalse
quantex.phoenix.client.mq.jaas-conf-pathjaas配置文件路径String
quantex.phoenix.client.mq.krb5-conf-pathkrb5配置文件路径String
quantex.phoenix.client.mq.krb-service-namekrb服务名String

Phoenix-admin配置

该配置表示Phoenix应用接入Phoenix-admin所需要的配置

配置项描述类型默认值
eureka.client.enabled是否启用eureka客户端Booleantrue
eureka.client.serviceUrl.defaultZoneeureka server地址String
eureka.client.fetch-registry从eureka server同步注册信息Booleantrue
eureka.client.register-with-eureka注册自身信息到eureka serverBooleantrue
eureka.instance.prefer-ip-address是否优先使用ip注册Booleanfalse
eureka.instance.appname注册的服务名StringUNKNOWN
eureka.instance.metadata-map.phoenixEnabled是否接入Phoenix-admin监控String
eureka.instance.metadata-map.servletPath服务的http请求路径String

配置样例

quantex:
phoenix:
server:
name: ${spring.application.name}
mq:
type: kafka
address: embedded
subscribe-topic: account-server
event-store:
driver-class-name: org.h2.Driver
data-sources:
- url: jdbc:h2:file:./data/test;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS PUBLIC
username: sa
password:
initial-size: 0
min-idle: 0
max-active: 8
client:
name: ${spring.application.name}-client
mq:
type: kafka
address: 127.0.0.1:9092
event-publish:
enabled: true
batch-size: 64
buffer-queue-size: 64
from-begin: true
event-task:
enabled: true
topic: bank-account-event-pub
monitor-task:
enabled: true
broker-server: 127.0.0.1:9092
topic: bank-account-monitor

# eureka config
service-center:
url: localhost:7070
eureka:
client:
enabled: false
serviceUrl:
defaultZone: http://${service-center.url}/eureka/
fetch-registry: true
register-with-eureka: true
instance:
prefer-ip-address: true
appname: ${spring.application.name}
metadata-map:
phoenixEnabled: true

环境配置参考

phoenix服务在不同的环境中运行需要对akka进行相应的配置。下面分别介绍下phoenix服务在本地环境和K8s环境运行时 akka的配置项需要如何配置。

本地单点运行

直接启动即可,不用在 application.yaml 或者 application.properties 中显式配置akka相关配置。

本地集群运行

添加或修改以下几项配置,保证多个实例的端口不能冲突。

server:
port: 8080

quantex:
phoenix:
akka:
artery-canonical-port: 2552 # 集群端口
management-http-port: 8559 # 集群管理的http端口
artery-canonical-hostname: 192.168.1.9 # 节点的ip地址
seed-node: akka://account-server@192.168.1.9:2551,akka://account-server@192.168.1.9:2552 # 集群中seed-node的节点地址,一般会把所有节点都设置, 另外`account-server`要和应用${spring.application.name}的名字相同

k8s集群运行

在 k8s 环境上运行需要对以下配置进行修改

quantex:
phoenix:
akka:
discovery-method: kubernetes-api
artery-enable: off

自定义akka配置

如果想要深入自定义akka相关配置,可在项目classpath目录下创建akka.conf文件进行配置。然后修改一下配置。

quantex:
phoenix:
akka:
akka-conf: akka.conf