Hi Gayan,

I think the  bamServerURL format you are passing is not correct. It should
be pass to the DataPublisherUtil.getReceiverGroups method with following
format.
* {*tcp://192.168.16.2:7614},{tcp://192.168.16.2:7624}*.* Each host should
enclose with curly brackets.

Pls refer
http://mohanadarshan.wordpress.com/2013/05/04/load-balancing-data-publisher-to-bamcep-example-code/
Thanks

On Wed, Oct 22, 2014 at 8:34 PM, Gayan Dhanushka <[email protected]> wrote:

> Hi Sinthuja,
>
> I tested with two BAM servers pointing to its own cassandra (not
> clustered). I was not able to see the load balancing scenario where nearly
> equal amount of events are published into respective BAM nodes.
>
> Following is the code that I have used. Please correct me if I have done
> something wrong.
>
> Urls defined in appfactory.xml
>
> *            tcp://192.168.16.2:7614
> <http://192.168.16.2:7614>,tcp://192.168.16.2:7624
> <http://192.168.16.2:7624>*
>
> code for preparing receiver groups
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> * AppFactoryConfiguration config = AppFactoryUtil
> .getAppfactoryConfiguration();            String EnableStatPublishing =
> config
> .getFirstProperty("BAM.EnableStatPublishing");            String
> bamServerURL = config.getFirstProperty("BAM.BAMServerURL");
> String bamServerUserName = config
> .getFirstProperty("BAM.BAMUserName");            String bamServerPassword =
> config                    .getFirstProperty("BAM.BAMPassword");
> AgentConfiguration agentConfiguration = new
> AgentConfiguration();            Agent agent = new
> Agent(agentConfiguration);            ArrayList<ReceiverGroup>
> allReceiverGroups = new ArrayList<ReceiverGroup>();
> ArrayList<String> receiverGroupUrls =
> DataPublisherUtil.getReceiverGroups(bamServerURL);            for (String
> aReceiverGroupURL : receiverGroupUrls) {
> ArrayList<DataPublisherHolder> dataPublisherHolders = new
> ArrayList<DataPublisherHolder>();                String[] urls =
> aReceiverGroupURL.split(",");                for (String aUrl : urls)
> {                    DataPublisherHolder aNode = new
> DataPublisherHolder(null, aUrl.trim(), bamServerUserName,
> bamServerPassword);
> dataPublisherHolders.add(aNode);                }
> ReceiverGroup group = new ReceiverGroup(dataPublisherHolders,
> true);                allReceiverGroups.add(group);            }
>            loadBalancingDataPublisher = new
> LoadBalancingDataPublisher(allReceiverGroups, agent);*
>
> Method for event publishing
>
>
>
>
> *public void publishEvents(Event event, String Stream, String
> version)            throws AgentException, InterruptedException
> {                loadBalancingDataPublisher.publish(Stream, version,
> event);           }*
>
> Thanks
> GayanD
>
>
>
> On Wed, Oct 22, 2014 at 7:32 PM, Sinthuja Ragendran <[email protected]>
> wrote:
>
>> Hi gayan,
>>
>> In order to verify the loadbalancing of events in a round robin manner,
>> you can have two BAM nodes pointing to its own cassandra instance (not
>> clustered), and send the events to those BAM nodes. If your client is
>> configured correctly for load balancing scenario, then you will see each
>> bam nodes will have nearly equal amount of events stored in its respective
>> BAM nodes. This is just for testing purpose to verify, but of course in
>> real case cassandra will be clustered, hence finally even though the load
>> is balanced within receiver nodes it stores in the same cassandra cluster,
>> hence it's not observable from outside.
>>
>> Thanks,
>> Sinthuja.
>>
>> On Wed, Oct 22, 2014 at 4:53 AM, Gayan Dhanushka <[email protected]> wrote:
>>
>>> Hi all,
>>>
>>> I have been trying to move the AsyncDataPublisher used in App Factory to
>>> LoadBalancingDataPublisher to cater load balancing and failover. Even
>>> though [1] describes that it sends data to available receiver nodes in a
>>> round robin manner, I was only able to observe the failover scenario.
>>>
>>> Can somebody please explain ?
>>>
>>> [1]
>>> https://docs.wso2.com/display/BAM240/Setting+up+Multi+Receiver+and+Load+Balancing+Data+Agent#SettingupMultiReceiverandLoadBalancingDataAgent-Loadbalancingconfigurations
>>>
>>> Thanks
>>> GayanD
>>>
>>> --
>>> Gayan Dhanuska
>>> Software Engineer
>>> http://wso2.com/
>>> Lean Enterprise Middleware
>>>
>>> Mobile
>>> 071 666 2327
>>>
>>> Office
>>> Tel   : 94 11 214 5345
>>> Fax  : 94 11 214 5300
>>>
>>> Twitter : https://twitter.com/gayanlggd
>>>
>>
>>
>>
>> --
>> *Sinthuja Rajendran*
>> Senior Software Engineer <http://wso2.com/>
>> WSO2, Inc.:http://wso2.com
>>
>> Blog: http://sinthu-rajan.blogspot.com/
>> Mobile: +94774273955
>>
>>
>>
>
>
> --
> Gayan Dhanuska
> Software Engineer
> http://wso2.com/
> Lean Enterprise Middleware
>
> Mobile
> 071 666 2327
>
> Office
> Tel   : 94 11 214 5345
> Fax  : 94 11 214 5300
>
> Twitter : https://twitter.com/gayanlggd
>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>
>


-- 
Manoj Gunawardena
Tech Lead
WSO2, Inc.: http://wso2.com
lean.enterprise.middleware
Mobile : +94 77 2291643
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to