Publish-Subscribe is an EIP pattern where the sender can sends the message to the different subscribers who subscribes to it. The Publish-Subscribe Channel EIP receives messages from the input
channel (publisher) and then splits and transmits them among its subscribers
through the output channel.
This blog post explains how the Publish-Subscribe Channel EIP works.
To understand how this works, follow the steps given below.
Here we use echo service hosted in WSO2 application server to explain this.
1.Create a topic called “pubsub1" in ESB topics and subscribed to it using following end points
http://localhost:9763/services/echo
http://localhost:9767/services/echo
Note : You need to start two WSO2 Application server instances
2. Create a proxy service in ESB as follows
Send the following message
This is how you verify whether the message is subscribed successfully.
Invoke the proxy and go to the following location in application server " Home > Monitor > System Statistics". Verify the request count is changed according to the no of times you invoke the proxy. Check theses in both server instances.
Server Instance 1
Home > Monitor > System Statistics
Server Instance 2
This blog post explains how the Publish-Subscribe Channel EIP works.
The message comes from publisher and it directs to the WSO2 ESB. The "Event" mediator resides in proxy service allows you to define set of receivers and redirect the incoming event to the correct event topic.
To understand how this works, follow the steps given below.
Here we use echo service hosted in WSO2 application server to explain this.
1.Create a topic called “pubsub1" in ESB topics and subscribed to it using following end points
http://localhost:9763/services/echo
http://localhost:9767/services/echo
Note : You need to start two WSO2 Application server instances
2. Create a proxy service in ESB as follows
<?xml
version="1.0" encoding="UTF-8"?>
<proxy
xmlns="http://ws.apache.org/ns/synapse"
name="pubsub"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<log
level="full"/>
<event
topic="pubsub1"/>
</inSequence>
<faultSequence>
<log
level="full">
<property
name="MESSAGE" value="Executing default
"fault" sequence"/>
<property
name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
<property
name="ERROR_MESSAGE"
expression="get-property('ERROR_MESSAGE')"/>
</log>
<drop/>
</faultSequence>
</target>
<description/>
</proxy>
Send the following message
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:p="" xmlns:xsd="http://service.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<p:echoString>
<in>a</in>
</p:echoString>
</soapenv:Body>
</soapenv:Envelope>
This is how you verify whether the message is subscribed successfully.
Invoke the proxy and go to the following location in application server " Home > Monitor > System Statistics". Verify the request count is changed according to the no of times you invoke the proxy. Check theses in both server instances.
Server Instance 1
Home > Monitor > System Statistics
Server Instance 2
No comments:
Post a Comment