FINERACT-1824
- Documentation update for Kafka Support - Adding docker-compose-postgresql-kafka-msk.yml - application.properties ENV var fixed
This commit is contained in:
committed by
Arnold Gálovics
parent
61915bbcc4
commit
c5aeae62d8
@@ -305,8 +305,18 @@ INSTRUCTIONS: How to run Apache RAT (Release Audit Tool)
|
||||
2. Run `./gradlew rat`. A report will be generated under build/reports/rat/rat-report.txt
|
||||
|
||||
|
||||
INSTRUCTIONS: How to enable ActiveMQ
|
||||
INSTRUCTIONS: How to enable External Message Broker (ActiveMQ or Apache Kafka)
|
||||
============
|
||||
|
||||
There are two use-cases where external message broker is needed:
|
||||
- External Business Events / Reliable Event Framework
|
||||
- Executing Partitioned Spring Batch Jobs
|
||||
|
||||
External Events are business events, e.g.: `ClientCreated`, which might be important for third party systems. Apache Fineract supports ActiveMQ (or other JMS compliant brokers) and Apache Kafka endpoints for sending out Business Events. By default, they are not emitted.
|
||||
|
||||
In case of a large deployment with millions of accounts, the Close of Business Day Spring Batch job may run several hours. In order to speed up this task, remote partitioning of the job is supported. The Manager node partitions (breaks up) the COB job into smaller pieces (sub tasks) which then can be executed on multiple Worker nodes in parallel. The worker nodes are notified either by ActiveMQ or Kafka regarding their new sub tasks.
|
||||
### Active MQ
|
||||
|
||||
JMS based messaging is disabled by default. In `docker-compose-postgresql-activemq.yml` an example is shown where ActiveMQ is enabled. In that configuration one Spring Batch Manager instance and two Spring Batch Worker instances are created.
|
||||
Spring based events should be disabled and jms based event handling should be enabled. Furthermore, proper broker JMS URL should be configured.
|
||||
|
||||
@@ -318,6 +328,15 @@ Spring based events should be disabled and jms based event handling should be en
|
||||
|
||||
For additional ActiveMQ related configuration please take a look to the `application.properties` where the supported configuration parameters are listed with their default values.
|
||||
|
||||
### Kafka
|
||||
|
||||
Kafka support also disabled by default. In `docker-compose-postgresql-kafka.yml` an example is shown where self-hosted Kafka is enabled for both External Events and Spring Batch Remote Job execution.
|
||||
|
||||
During the development Fineract was tested with PLAINTEXT Kafka brokers without authentication and with AWS MSK using IAM authentication. The extra [jar file](https://github.com/aws/aws-msk-iam-auth/releases) required for IAM authentication is already added to the classpath.
|
||||
An example MSK setup can be found in `docker-compose-postgresql-kafka-msk.yml`.
|
||||
|
||||
The full list of supported Kafka related properties are documented here: https://fineract.apache.org/docs/current/
|
||||
|
||||
Checkstyle and Spotless
|
||||
============
|
||||
|
||||
|
||||
@@ -0,0 +1,182 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
# You can replace and test a more recent version of docker compose
|
||||
version: '3.7'
|
||||
services:
|
||||
# Backend service
|
||||
fineractpostgresql:
|
||||
image: postgres:15.3
|
||||
volumes:
|
||||
- ./fineract-db/docker/postgresql:/docker-entrypoint-initdb.d/:Z,ro
|
||||
environment:
|
||||
POSTGRES_USER: root
|
||||
POSTGRES_PASSWORD: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
FINERACT_DB_USER: postgres
|
||||
FINERACT_DB_PASS: skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
FINERACT_TENANTS_DB_NAME: fineract_tenants
|
||||
FINERACT_TENANT_DEFAULT_DB_NAME: fineract_default
|
||||
healthcheck:
|
||||
test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ]
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
ports:
|
||||
- "5432:5432"
|
||||
fineract-manager:
|
||||
image: fineract:latest
|
||||
volumes:
|
||||
- ./fineract-provider/build/data:/data
|
||||
healthcheck:
|
||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
ports:
|
||||
- 8443:8443
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- AWS_ACCESS_KEY_ID=
|
||||
- AWS_SECRET_ACCESS_KEY=
|
||||
- FINERACT_NODE_ID=1
|
||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
||||
- FINERACT_HIKARI_USERNAME=postgres
|
||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
||||
- FINERACT_SERVER_SSL_ENABLED=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS=2
|
||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=true
|
||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=false
|
||||
- LOAN_COB_CHUNK_SIZE=10
|
||||
- LOAN_COB_PARTITION_SIZE=10
|
||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384|security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS=2
|
||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
||||
fineract-worker:
|
||||
image: fineract:latest
|
||||
volumes:
|
||||
- ./fineract-provider/build/data:/data
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 2
|
||||
healthcheck:
|
||||
test: ["CMD", 'sh', '-c', 'echo -e "Checking for the availability of Fineract server deployment"; while ! nc -z "fineract-server" 8443; do sleep 1; printf "-"; done; echo -e " >> Fineract server has started";' ]
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
ports:
|
||||
- "8444-8445:8443"
|
||||
depends_on:
|
||||
fineractpostgresql:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
- AWS_ACCESS_KEY_ID=
|
||||
- AWS_SECRET_ACCESS_KEY=
|
||||
- FINERACT_NODE_ID=1
|
||||
- FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME=org.postgresql.Driver
|
||||
- FINERACT_HIKARI_JDBC_URL=jdbc:postgresql://fineractpostgresql:5432/fineract_tenants
|
||||
- FINERACT_HIKARI_USERNAME=postgres
|
||||
- FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
- FINERACT_HIKARI_MINIMUM_IDLE=3
|
||||
- FINERACT_HIKARI_MAXIMUM_POOL_SIZE=10
|
||||
- FINERACT_HIKARI_IDLE_TIMEOUT=60000
|
||||
- FINERACT_HIKARI_CONNECTION_TIMEOUT=20000
|
||||
- FINERACT_HIKARI_TEST_QUERY=SELECT 1
|
||||
- FINERACT_HIKARI_AUTO_COMMIT=true
|
||||
- FINERACT_SERVER_SSL_ENABLED=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_PREP_STMTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SIZE=250
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_PREP_STMT_CACHE_SQL_LIMIT=2048
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_SERVER_PREP_STMTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_USE_LOCAL_SESSION_STATE=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_REWRITE_BATCHED_STATEMENTS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_RESULT_SET_METADATA=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_CACHE_SERVER_CONFIGURATION=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_ELIDE_SET_AUTO_COMMITS=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_MAINTAIN_TIME_STATS=false
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_LOG_SLOW_QUERIES=true
|
||||
- FINERACT_HIKARI_DS_PROPERTIES_DUMP_QUERIES_IN_EXCEPTION=true
|
||||
- FINERACT_DEFAULT_TENANTDB_HOSTNAME=fineractpostgresql
|
||||
- FINERACT_DEFAULT_TENANTDB_PORT=5432
|
||||
- FINERACT_DEFAULT_TENANTDB_UID=postgres
|
||||
- FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
|
||||
- FINERACT_DEFAULT_TENANTDB_CONN_PARAMS=
|
||||
- FINERACT_DEFAULT_TENANTDB_TIMEZONE=Asia/Kolkata
|
||||
- FINERACT_DEFAULT_TENANTDB_IDENTIFIER=default
|
||||
- FINERACT_DEFAULT_TENANTDB_NAME=fineract_default
|
||||
- FINERACT_DEFAULT_TENANTDB_DESCRIPTION=Default Demo Tenant
|
||||
- JAVA_TOOL_OPTIONS="-Xmx1G"
|
||||
- FINERACT_MODE_BATCH_MANAGER_ENABLED=false
|
||||
- FINERACT_MODE_BATCH_WORKER_ENABLED=true
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_JMS_ENABLED=false
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_SPRING_EVENTS_ENABLED=false
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED=true
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME=job-topic
|
||||
- FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS=2
|
||||
- FINERACT_EXTERNAL_EVENTS_ENABLED=true
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED=true
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS=b-3-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-2-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198,b-1-public.democluster1.am2oyx.c4.kafka.eu-central-1.amazonaws.com:9198
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES=security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384|security.protocol=SASL_SSL|sasl.mechanism=AWS_MSK_IAM|sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;|sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME=external-events
|
||||
- FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS=2
|
||||
- SPRING_PROFILES_ACTIVE=test,diagnostics
|
||||
@@ -0,0 +1,158 @@
|
||||
= Kafka Properties
|
||||
|
||||
.Kafka related properties for Remote Spring Batch Jobs
|
||||
|===
|
||||
|Name |Env Variable |Default Value |Description
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.enabled
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ENABLED
|
||||
|false
|
||||
|Enables or disables Kafka for remote job execution. If Kafka is enabled then JMS shall be disabled.
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.topic.auto-create
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_AUTO_CREATE
|
||||
|true
|
||||
|Enables topic auto creation. In case the auto creation of the topic is disabled please make sure that the replica and the partition count is properly configured.
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.topic.name
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_NAME
|
||||
|job-topic
|
||||
|Name of the topic where partitioned tasks are sent to
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.topic.replicas
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_REPLICAS
|
||||
|1
|
||||
|Number of the replicas
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.topic.partitions
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_TOPIC_PARTITIONS
|
||||
|10
|
||||
|Number of partitions
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.bootstrap-servers
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS
|
||||
|localhost:9092
|
||||
|Comma separated list of bootstrap servers
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.consumer.group-id
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_GROUPID
|
||||
|fineract-consumer-group-id
|
||||
|Group ID of the Consumer
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.consumer.extra-properties-key-value-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES_SEPARATOR
|
||||
|=
|
||||
|Defines key and value separator for consumer,e.g.: key=value
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.consumer.extra-properties-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES_SEPARATOR
|
||||
|\|
|
||||
|Defines item separator for consumer, e.g.: key1=value1\|key2=value2
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.consumer.extra-properties
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES
|
||||
|
|
||||
|#holds list of key value pairs using the above defined separators for consumer: key1=value1\|key2=value2\|...\|keyn=valuen
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.producer.extra-properties-key-value-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR
|
||||
|=
|
||||
|Defines key and value separator for producer,e.g.: key=value
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.producer.extra-properties-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR
|
||||
|\|
|
||||
|Defines item separator for producer, e.g.: key1=value1\|key2=value2
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.producer.extra-properties
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES
|
||||
|
|
||||
|#holds list of key value pairs using the above defined separators for producer: key1=value1\|key2=value2\|...\|keyn=valuen
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.admin.extra-properties-key-value-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR
|
||||
|=
|
||||
|Defines key and value separator for admin,e.g.: key=value
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.admin.extra-properties-separator
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES_SEPARATOR
|
||||
|\|
|
||||
|Defines item separator for admin, e.g.: key1=value1\|key2=value2
|
||||
|
||||
|fineract.remote-job-message-handler.kafka.admin.extra-properties
|
||||
|FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES
|
||||
|
|
||||
|#holds list of key value pairs using the above defined separators for admin: key1=value1\|key2=value2\|...\|keyn=valuen
|
||||
|
||||
|===
|
||||
|
||||
.Kafka related Properties for External Events
|
||||
|===
|
||||
|Name |Env Variable |Default Value |Description
|
||||
|
||||
|fineract.events.external.producer.kafka.enabled
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_ENABLED
|
||||
|false
|
||||
|Enables disables Kafka for External Events. If Kafka is enabled then JMS shall be disabled.
|
||||
|
||||
|fineract.events.external.producer.kafka.timeout-in-seconds
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_TIMEOUT_IN_SECONDS
|
||||
|10
|
||||
|Timeout for Kafka confirming the messages written in the topic
|
||||
|
||||
|fineract.events.external.producer.kafka.topic.auto-create
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_AUTO_CREATE
|
||||
|true
|
||||
|Enables topic auto creation. In case the auto creation of the topic is disabled please make sure that the replica and the partition count is properly configured.
|
||||
|
||||
|fineract.events.external.producer.kafka.topic.name
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_NAME
|
||||
|external-events
|
||||
|Name of the topic where external events are sent to
|
||||
|
||||
|fineract.events.external.producer.kafka.topic.replicas
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_REPLICAS
|
||||
|1
|
||||
|Number of the replicas
|
||||
|
||||
|fineract.events.external.producer.kafka.topic.partitions
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_PARTITIONS
|
||||
|10
|
||||
|Number of partitions
|
||||
|
||||
|fineract.events.external.producer.kafka.bootstrap-servers
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS
|
||||
|localhost:9092
|
||||
|Comma separated list of Kafka bootstrap servers
|
||||
|
||||
|fineract.events.external.producer.kafka.producer.extra-properties-separator
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR
|
||||
|\|
|
||||
|Defines item separator for producer,e.g.: key=value
|
||||
|
||||
|fineract.events.external.producer.kafka.producer.extra-properties-key-value-separator
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR
|
||||
|=
|
||||
|Defines key and value separator for producer client
|
||||
|
||||
|fineract.events.external.producer.kafka.producer.extra-properties
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES
|
||||
|linger.ms=10\|batch.size=16384
|
||||
|Defines the extra properties for external event producer clients. Optimization for sending out large volume of messages. Increases Batch buffer size and batching time window.
|
||||
|
||||
|fineract.events.external.producer.kafka.admin.extra-properties-separator
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES_SEPARATOR
|
||||
|\|
|
||||
|Defines item separator for admin client.
|
||||
|
||||
|fineract.events.external.producer.kafka.admin.extra-properties-key-value-separator
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR
|
||||
|=
|
||||
|Defines key and value separator for admin client
|
||||
|
||||
|fineract.events.external.producer.kafka.admin.extra-properties
|
||||
|FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES
|
||||
|
|
||||
|Defines the extra properties for external event admin clients
|
||||
|
||||
|===
|
||||
@@ -13,4 +13,6 @@ include::properties-authentication.adoc[leveloffset=+1]
|
||||
|
||||
include::properties-tomcat.adoc[leveloffset=+1]
|
||||
|
||||
include::properties-kafka.adoc[leveloffset=+1]
|
||||
|
||||
// include::properties-cache.adoc[leveloffset=+1]
|
||||
|
||||
@@ -97,6 +97,7 @@ Also, please note that the partitioned job execution is multitenant meaning that
|
||||
For remote partitioning, the following message channels are supported by Fineract:
|
||||
|
||||
* Any JMS compatible message channels (ActiveMQ, Amazon MQ, etc)
|
||||
* Apache Kafka
|
||||
|
||||
==== Fault-tolerance scenarios
|
||||
|
||||
|
||||
@@ -82,13 +82,13 @@ fineract.remote-job-message-handler.kafka.topic.partitions=${FINERACT_REMOTE_JOB
|
||||
fineract.remote-job-message-handler.kafka.bootstrap-servers=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
|
||||
fineract.remote-job-message-handler.kafka.consumer.group-id=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_GROUPID:fineract-consumer-group-id}
|
||||
#defines the key and value separator, e.g.: key=value
|
||||
fineract.remote-job-message-handler.kafka.consumer.extra-properties-key-value-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES_SEPARATOR:=}
|
||||
fineract.remote-job-message-handler.kafka.consumer.extra-properties-key-value-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR:=}
|
||||
#defines the item separator, e.g.: key1=value1|key2=value2
|
||||
fineract.remote-job-message-handler.kafka.consumer.extra-properties-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES_SEPARATOR:|}
|
||||
#holds list of key value pairs using the above defined separators: key1=value1|key2=value2|...|keyn=valuen
|
||||
fineract.remote-job-message-handler.kafka.consumer.extra-properties=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_CONSUMER_EXTRA_PROPERTIES:}
|
||||
fineract.remote-job-message-handler.kafka.producer.extra-properties-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR:|}
|
||||
fineract.remote-job-message-handler.kafka.producer.extra-properties-key-value-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR:=}
|
||||
fineract.remote-job-message-handler.kafka.producer.extra-properties-key-value-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR:=}
|
||||
fineract.remote-job-message-handler.kafka.producer.extra-properties=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_PRODUCER_EXTRA_PROPERTIES:}
|
||||
fineract.remote-job-message-handler.kafka.admin.extra-properties-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES_SEPARATOR:|}
|
||||
fineract.remote-job-message-handler.kafka.admin.extra-properties-key-value-separator=${FINERACT_REMOTE_JOB_MESSAGE_HANDLER_KAFKA_ADMIN_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR:=}
|
||||
@@ -114,7 +114,7 @@ fineract.events.external.producer.kafka.topic.replicas=${FINERACT_EXTERNAL_EVENT
|
||||
fineract.events.external.producer.kafka.topic.partitions=${FINERACT_EXTERNAL_EVENTS_KAFKA_TOPIC_PARTITIONS:10}
|
||||
fineract.events.external.producer.kafka.bootstrap-servers=${FINERACT_EXTERNAL_EVENTS_KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
|
||||
fineract.events.external.producer.kafka.producer.extra-properties-separator=${FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR:|}
|
||||
fineract.events.external.producer.kafka.producer.extra-properties-key-value-separator=${FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES_SEPARATOR:=}
|
||||
fineract.events.external.producer.kafka.producer.extra-properties-key-value-separator=${FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR:=}
|
||||
fineract.events.external.producer.kafka.producer.extra-properties=${FINERACT_EXTERNAL_EVENTS_KAFKA_PRODUCER_EXTRA_PROPERTIES:linger.ms=10|batch.size=16384}
|
||||
fineract.events.external.producer.kafka.admin.extra-properties-separator=${FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES_SEPARATOR:|}
|
||||
fineract.events.external.producer.kafka.admin.extra-properties-key-value-separator=${FINERACT_EXTERNAL_EVENTS_KAFKA_ADMIN_EXTRA_PROPERTIES_KEY_VALUE_SEPARATOR:=}
|
||||
|
||||
Reference in New Issue
Block a user