Broker¶
Official source:
Purpose¶
The Broker is the central service provider component for external message exchange in the ECP network. It handles the actual AMQP-based delivery between participants.
Role in the Overall System¶
Unlike the Internal Broker, the Broker is designed for network-wide communication between components and organizations.
- Endpoints connect to the Broker for external message exchange.
- Permitted communication partners and permissions are based on information from the Component Directory.
- Message Paths and queue management are key operational aspects.
Technical Architecture According to the Documentation¶
The official documentation lists two core components:
- An AMQP broker based on ActiveMQ Artemis
- A custom authentication and authorization plugin that uses security information from the Component Directory
Operational Considerations¶
- The Broker controls queue management for message delivery.
- Authentication and authorization are integral to operation.
- The documentation also covers topics such as local Component Directory data, registration, administration and monitoring.
Relationship to the Helm Repository¶
- Chart:
charts/ecp-broker - Example values:
ecco-sp/values-ecp-broker-br.yaml
VM Installation Guide¶
Target Setup¶
The Broker runs as a standalone server component on a VM and provides two essential interfaces:
- AMQPS for Endpoints on port 5671
- HTTPS for administration or the console on port 8161
It uses registration and authentication data from the Component Directory and combines these with an Artemis runtime instance.
Prerequisites¶
- Linux VM with a Java runtime matching the official software package
- Reachable Home Component Directory
- Prepared registration keys and a process for the subsequent authentication keystore
- Open ports 5671 and 8161
- Sufficient local or shared storage for the journal, bindings and paging
Important Directories and Files¶
The repository configuration suggests roughly the following structure for a traditional VM installation:
- Installation base under
/opt/ecp-broker - Runtime configuration under
/opt/ecp-broker/config - Artemis instance under
/opt/ecp-broker/broker - Local directory cache under
/opt/ecp-broker/cd - Main configuration
broker.properties - Artemis configuration
broker.xml - Java/startup profile
artemis.profile - Registration keystore and authentication keystore in the configuration area
Installation Procedure¶
- Prepare the VM with an operating system, Java and a system user.
- Install or extract the official Broker package.
- Create the directories for configuration, runtime data, the journal and logs.
- Configure
broker.propertieswith the component code, contact information, URLs and Home Component Directory. - Deploy the registration keystore and perform initial registration with the Home Component Directory.
- Store the resulting authentication keystore securely and reference it in the configuration.
- Adjust
broker.xmlandartemis.profilefor ports, TLS, the journal and memory usage. - Register the Broker as a system service and start it.
Key Configuration Parameters¶
The following values are particularly important for a VM installation:
ecp.broker.urlsecp.broker.codeecp.directory.client.synchronization.homeComponentDirectoryPrimaryCodeecp.directory.client.synchronization.homeComponentDirectoryPrimaryUrlecp.keystore.locationandecp.authKeystore.location- TLS and acceptor configuration in
broker.xml - Journal, paging and storage paths of the Artemis instance
Post-Installation Validation¶
- Check the HTTPS console on port 8161
- Check AMQPS reachability on port 5671
- Check synchronization with the Component Directory
- Validate a test connection from an Endpoint, including authentication
- Check queue creation, journal behavior and certificate usage
Installation Order Note¶
On VMs, the Broker should be brought into operation after the Component Directory but before the Endpoints. For HA scenarios, journal layout, storage performance and certificate storage are the critical factors.
Conclusion¶
The Broker is the key component for secure external transport. It is the primary component responsible for queue behavior, security policies, participant access and network-wide communication.