Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

RabbitMQ (https://www.rabbitmq.com) is used by interworks.cloud Platform in order to support queuing and scheduling actions of backbone procedures (e.g. order execution, billing, etc).

The current page describes the actions and configuration changes that are required for setting up a RabbitMQ installation to be available to the interworks.cloud Platform.

RabbitMQ Configuration

Before we configure interworks.cloud Platform, you have to create the necessary resources under RabbitMQ.

In order to perform these configurations, you have to open the RabbitMQ UI (e.g. https://rabbitmq01:15672), provide your credentials, and login.

Create Policy

Through RabbitMQ UI you select Admin > Policies and you locate the list of user policies available.

In case there is no user policy available on the above list, you need to select Add / update a policy and create a new policy with the following options:

Create Virtual Host

You need to select Admin > Virtual Hosts and check the list of virtual hosts available.

Except for the root virtual host that is displayed in the previous screenshot, you need to create a new one dedicated to your interworks.cloud Platform installation.

You select Add a new virtual host and fill in the fields available with your selections for the new virtual host name, description and tags.

By pressing Add virtual host button, you should have the following result:

Create Users

Select Admin > Users and locate the list of users available.

Using Add a user option, you can create the following users:

  • WebUser, that will be used from interworks.cloud Platform BSS/Storefront applications.

  • ConsumersService, that will be used from interworks.cloud Platform Consumers windows service.

  • JobsService, that will be used from interworks.cloud Platform Jobs windows service.

  • IntegrationService, that will be used from interworks.cloud Platform Integration windows service.

Our list of users should now look like the one below:

Virtual Hosts Permissions

In order to enable use of newly created virtual host by the users created on the previous step, you need to configure the necessary permissions.

By navigating to Admin > Virtual Hosts screen you can find the list with the current permissions under the Permissions section.

Using the set permission form under the current permissions list, you can provide permissions for all users created on the previous step.

The final list of the current “permissions list” should look like the one below:

Also, the list of users under Admin > Users, should now look like the one below:

interworks.cloud Platform Configuration

Using the resources configured under RabbitMQ from previous paragraphs, it’s now time to configure interworks.cloud Platform for using RabbitMQ features.

In order to perform necessary configurations we will need the following info:

Parameter

Description

Example

{ProviderServerUri}

The uri of the messaging server including target virtual host

rabbitmq://rabbitmqcluster.local/interworks.cloud

{RabbitMQUser}

One of the users created having permissions for accessing target virtual host.

The user selection is based on the application that the configuration is take place.

WebUser

ConsumersServices

JobsService

IntegrationService

{RabbitMQPassword}

The password of the user selected for previous parameter

{ClusterNodes}

List of node names in case of clustered RabbitMQ environment, separated by comma

rabbitmq01,rabbitmq02,rabbitmq03

BSS Configuration

The RabbitMQ configuration file for BSS application is CloudBus.config and is available under C:\CloudPlatform\BSS\Config

C:\CloudPlatform\BSS\Web.config file should point to CloudBus.config file in order the configuration to apply.

<CloudBusConfig configSource="Config\CloudBus.config" />

For BSS application we use the:

  • WebUser rabbitmq user

  • and {ProviderServerUri}

in order to update CloudBus.config file as follows:

<?xml version="1.0" encoding="UTF-8"?>
<CloudBusConfig BusProvider="RabbitMQ" ProviderServerUri="{ProviderServerUri}" RabbitMQUser="{RabbitMQUser}" RabbitMQPassword="{RabbitMQPassword}"/>

An example CloudBus.config file replacing the parameters on previous lines could look like the following one:

<?xml version="1.0" encoding="UTF-8"?>
<CloudBusConfig BusProvider="RabbitMQ" ProviderServerUri="rabbitmq://rabbitmqcluster.local/interworks.cloud" RabbitMQUser="WebUser" RabbitMQPassword="R@bb1tWeb"/>

Storefront Configuration

The RabbitMQ configuration file for Storefront application is CloudBus.config and is available under C:\CloudPlatform\Storefront

C:\CloudPlatform\Storefront\Web.config file should point to CloudBus.config file in order the configuration to apply.

<CloudBusConfig configSource="CloudBus.config" />

For the Storefront application, you use the same configuration as the BSS application using the WebUser rabbitmq user.

Jobs and Consumers Windows Service Configuration

The following windows services are currently utilizing RabbitMQ features:

  • interworks.cloud Platform Jobs

  • interworks.cloud Platform Consumers

The above windows services are available with Administration component under C:\Program Files (x86)\Interworks folder.

For on-premise infrastructures the above windows services are not registered under Administrative Tools > Services of the server, so you need to install them using the following lines under command line run-as Administrator:

interworks.cloud Platform 3.29.0 will include windows services registration, but you need to manually register them for previous versions.

"C:\Program Files (x86)\Interworks\Interworks.Cloud.Jobs\Interworks.Cloud.Jobs.exe" install --delayed
"C:\Program Files (x86)\Interworks\Interworks.Cloud.Consumers\Interworks.Cloud.Consumers.exe" install --delayed

The following .config files should also be placed under each windows service path:

and must be configured by replacing the placeholder values with the following information:

  • JobsService and ConsumersService rabbitmq user and password

  • {ProviderServerUri}

  • {ClusterNodes}

  • {DatabaseServer} with the name of the database server of the infrastructure

  • {DatabaseName} with the name of the database for current installation

  • {DatabaseUser} with the sql user used to connect to database server

  • {DatabaseUserPassword} with the password of sql user of previous parameter

DatabaseServer, DatabaseName, DatabaseUser and DatabaseUserPassword values could be extracted from the connection string available at C:\CloudPlatform\BSS\AppConfig.config file of BSS application

An example configuration for the Application node is provided below:

<Application Name="iCPBSS">
          <Database Source="sqlserver.local" DbName="iCPBSS" UserId="bssadmin" Password="{INT321}" />
          <CloudBus 
                BusProvider="RabbitMQ" 
                ProviderServerUri="rabbitmq://rabbitmqcluster.local/interworks.cloud" 
                RabbitMQUser="JobsService" 
                RabbitMQPassword="R@bb1tJobs" 
                ClusterNodes="rabbitmq01,rabbitmq02,rabbitmq03" 
                QueueArguments="{'x-queue-type':'classic'}" />
</Application>    

After the configuration of windows services, you need to restart them in order to have configuration applied.

You can check successful RabbitMQ configuration of windows services by checking Connections under RabbitMQ UI.

The above configuration could contain multiple Application nodes in order to support multiple installations. This kind of configuration is currently used on our EU and US infrastrurctures.

Integration Windows Service Configuration

interworks.cloud Platform Integration windows service is currently available only for our EU/US infrastructures.

This windows service is an .NET Core 3.1 application and has slightly different configuration that the previous windows services.

The windows service is located under C:\Program Files (x86)\Interworks\interworks.Cloud.Integration.

IntegrationService rabbitmq user should be used for windows service configuration.

The configuration file is AppSettings.json and currently accepts only one configuration per installation (support of multiple configurations is still in progress) and contains the following lines:

{
  "Applications": [
    {
      "Database": {
        "Source": "{DatabaseServer}",
        "Name": "{DatabaseName}",
        "UserID": "{DatabaseUser}",
        "Password": "{DatabaseUserPassword}"
      },
      "CloudBus": {
        "BusProvider": "RabbitMQ",                              
        "ProviderServerUri": "{ProviderServerUri}",
        "RabbitMQUser": "{RabbitMQUser}",
        "RabbitMQPassword": "{RabbitMQPassword}",
        "ClusterNodes": "{ClusterNodes}",
        "QueueArguments": {  "x-queue-type": "classic"  },
        "PrefetchCount": 4
      }
    }
  ],
  "EvenLogs": {
    "LogName": "interworks",
    "LogSource": "interworks.Cloud.Platform.IntergrationService"
  }
}

  • No labels