ZeroMQ Configuration - TcmExtensions/TcmCDService GitHub Wiki

Introduction

The ZeroMQ cache type can either be configured as a broker or as a client. When used in a client configuration an additional broker service is needed, this is possible using TcmCacheService.

Broker Configuration

The ZeroMQBroker processes messages as well as acts as a message broker between Tridion instances.

<!-- ZeroMQBroker caches items until a cache flush instruction is received from Tridion over ZeroMQ. 
 Note that this requires configuring the com.tridion.tcmcdservice.ZeroMQCacheConnector on the Tridion Java side. 
 Also TcmCDService will act as the message broker for all configured Tridion ZeroMQ clients -->
<cacheType type="TcmCDService.CacheTypes.ZeroMQBroker, TcmCDService.ZeroMQ">
<setting key="subscriptionUri">tcp://*:5556</setting>
<setting key="submissionUri">tcp://*:5557</setting>
<setting key="topic">Tridion</setting>
</cacheType>	

The broker has a TCP port for receiving messages "submissionUri" as well as a TCP port for receiving subscriptions "subscriptionUri". The topic is used solely to tell the TcmCDService which messages to listen to, all other messages are relayed across to the subscribers for clients who are listening for messages on the configured topic.

This allows multiple instances of Tridion to make use of the same ZeroMQ broker process.

Cache Client Configuration

The ZeroMQ cache type can also be configured to act as a ZeroMQ client, like the java com.tridion.tcmcdservice.zmq.ZMQCacheChannelConnector.

<!-- ZeroMQCache caches items until a cache flush instruction is received from Tridion over ZeroMQ. 
 Note that this requires configuring the com.tridion.tcmcdservice.zmq.ZMQCacheChannelConnector on the Tridion Java side. 
-->
<cacheType type="TcmCDService.CacheTypes.ZeroMQCache, TcmCDService.ZeroMQ">
<setting key="subscriptionUri">tcp://10.38.230.11:5556</setting>
<setting key="submissionUri">tcp://10.38.230.11:5557</setting>
<setting key="topic">Tridion</setting>
</cacheType>

Both the subscriptionUri and submissionUri should point to an active configured ZeroMQ broker. The topic is used to distinguish between multiple Tridion instances using the same ZeroMQ broker process.

Java Client Configuration

The Tridion Content delivery needs to configure the com.tridion.tcmcdservice.zmq.ZMQCacheChannelConnector in cd_storage_conf.xml:

<RemoteSynchronization Queuesize="4096" ServiceMonitorInterval="10000">
<Connector Class="com.tridion.tcmcdservice.zmq.ZMQCacheChannelConnector">
	<Param Name="subscriptionUri" Value="tcp://localhost:5556" />
	<Param Name="submissionUri" Value="tcp://localhost:5557" />
	<Param Name="topic" Value="Tridion" />
</Connector>

The subscriptionUri and submissionUri should point to an active ZeroMQ broker instance, the topic allows different Tridion instances using the same ZeroMQ broker to be distinguished.

⚠️ **GitHub.com Fallback** ⚠️