EFM cluster configuration

Learn how to configure every Edge Flow Manager (EFM) cluster member to make it part of the same cluster.

You can find the cluster configuration in the efm.properties file located in the conf directory of the EFM installation. The following is an example cluster configuration:
# Web Server Properties
#  address: the hostname or ip address of the interface to bind to; to bind to all, use 0.0.0.0
efm.server.address=10.0.0.1
efm.server.port=10090
efm.server.servlet.contextPath=/efm
efm.cluster.enabled=true
# Database Properties
efm.db.url=jdbc:mysql://database.example.come:3306/efm
efm.db.driverClass=com.mysql.cj.jdbc.Driver
efm.db.username=efm
efm.db.password=efmPassword
efm.db.maxConnections=50
efm.db.sqlDebug=false

Cluster node discovery

Cluster node discovery allows you to configure multiple node discovery strategies to establish an EFM cluster, tailored to different deployment environments.

You have to define the efm.infinispan.environment property with the name of the environment where EFM is deployed. The default value is tcp, and the supported values are tcp, tcp-fixed, and kubernetes.

Here are the specifics for each environment setting:

tcp
TCP discovery uses IP multicast to discover the initial membership, eliminating the need for manual configuration on each node. This is the default setting.
Property required: efm.infinispan.environment=tcp
tcp-fixed
You have to provide a static list of host:port combinattions for all nodes.
Properties required:
  • efm.infinispan.environment=tcp-fixed
  • efm.infinispan.jgroups[tcpping.initial_hosts]

    Example value: localhost[7801],localhost[7802],localhost[7803]

kubernetes
This strategy is designed to automatically discover pods based on namespace and label filtering.
Properties required:
  • efm.infinispan.environment=kubernetes
  • efm.infinispan.jgroups[kubeping.namespace]

    Example value: cem-namespace

  • efm.infinispan.jgroups[kubeping.labels]

    Example value: app=efm