Creatio administration
This documentation is valid for Creatio version 7.15.0. We recommend using the newest version of Creatio documentation.

Deploying Exchange Listener

We recommend using the Kubernetes orchestrator and Helm package manager to deploy the service in the production environment. Read more >>>

You can also use Docker to speed up the deployment in the development environment. Read more >>>

Deploying the synchronization service via Kubernetes

To deploy Exchange Listener service via Kubernetes:

1.Set up the target environment:

a.The Kubernetes cluster. Read more about how to set up and manage the cluster on the Kubernetes documentation website.

b.The “Helm” package manager. Read more about installing the package manager on the  Helm documentation website.

2.Install Redis. Use the GitHub website to learn more about how to install Redis using Helm.

Example of a command for installing Redis:

helm install --namespace <namespace name> --set usePassword=false --set=slave.persistence.enabled=false --set master.persistence.enabled=false --set cluster.enabled=false --name <redis_deployment_name> stable/redis

3.Install the Exchange Listener module. To install the module,  download the helm package. Find the available parameters of the helm package in the ”Available parameters of the Exchange Listener helm package” table.

Attention

For newer Kubernetes versions, specify the API version and add the following parameter:

--set apiVersion=apps/v1

Example of a command for installing Exchange Listener using the service address and relative path:

helm install --set env.host=<redis_host> --set ApiUrl=<kubernetes_url> --set ingress.path=<listener_path> --set apiVersion=apps/v1 --namespace <namespace name> --name exchangelistener </path/to/helm/exchangelistener.tgz>

Exchange Listener address: <kubernetes_url>/<listener_path>.

To check whether the Exchange Listener service is available, execute the following request: <kubernetes_url>/<listener_path>/api/listeners/status (Fig. 1).

Example of installing the Exchange Listener using Node IP and port address:

helm install --set env.host==<redis_host> --set service.type=<node_IP> --set service.nodePort=<node_port> --set apiVersion=apps/v1 --namespace <namespace name> --name exchangelistener </path/to/helm/exchangelistener.tgz>

Exchange Listener address – <node_IP:node_port>.

To check whether the address is available, execute the following request: <node_IP:node_port>/api/listeners/status (Fig. 1).

Fig. 1 Example of the Exchange Listener service response

chapter_exchange_listener_answer.png 

Available parameters of the Exchange Listener helm package

Parameter

Parameter description

Default value

replicaCount

Number of StatefulSet processors

2

service.type

Service type. More information about the Kubernetes service types is available in the Kubernetes documentation.

ClusterIP

service.nodePort

If the service.type parameter equals NodePort, specify the external service port in this parameter.

Read more about the  NodePort type in the Kubernetes documentation.

 

env.host

Host address for Redis.

 

env.port

Host port for Redis.

6379

env.base

Database number for Redis.

0

ingress.enabled

Use address overriding via ingress.

true

ApiUrl

Service address if ingress.enabled=true

 

ingress.path

Service relative path.

 

log4Net.level

Logging level by default.

Info

System requirements to servers

By default, separate nodes of the StatefulSet type process the requests based on 1 processor replica per 50 active mailboxes. The number of replicas depends on the replicaCount parameter. If the number of mailboxes increases, you need to increase the number of processors by specifying the needed value.

One processor requires 30% of the 2Hz processor time and 700 Mb of RAM (disk storage is not used).

You can configure automatic scaling depending on the number of active subscriptions. To learn more, contact support@creatio.com.

See also

Deploying the synchronization service in Docker

Deploying the synchronization service in Docker

To set up the service, use a server (computer or virtual machine) with Linux or Windows OS installed.

Attention

The method described below is only recommended for installing in the development environment. For the product environment, we strongly recommend using the Kubernetes and Helm package manager. Read more in the “Deploying the synchronization service via Kubernetes” article.

To deploy the Exchange Listener synchronization service in Docker:

1.Set up the target environment:

a.Docker container platform. Read more about how to install and set up the platform on the Docker documentation website.

b.Redis DBMS. To install the Redis Server, use the Windows OS setup file or the Linux OS Guide.

2.Install and run the Exchange Listener module. To do this, download and deploy the Docker container image.

Below is the example of a command for downloading and running the image via the command line and Docker installed.

# Port forwarding
docker run -p <localhost_port>:80
# DNS server setup, you can specify several DNS addresses if needed
-d --dns=<dns_ip1> --dns=<dns_ip2> --dns-search=<dns_domain>
--env ExchangeListenerRedisHost=<redis_host>
--env ExchangeListenerRedisDatabase=<redis_database_number>
--env PodName=<service_name> --name <service_name>
# The ExchangeListener current image in Docker Hub
bpmonline/exchangelistener:
bpmonline/exchangelistener:0.5.0

In this example:

<localhost_port> – local server port ;

<redis_host> – Redis server address;

<redis_database_number> – DB number of the Redis server;

<service_name> – service name (entered manually).

To check whether the deployed Docker container is available, run the following command:

docker ps -a -–filter "name=<service_name>"

Exchange Listener service address – localhost:<localhost_port>.

To check whether Exchange Listener service address is available, execute the following request: <localhost:<localhost_port>/api/listeners/status (Fig. 1).

See also

Set up the Exchange Listener service on the side of Creatio

Did you find this information useful?

How can we improve it?