WSO2 MB vs Apache Kafka - wso2

I've been working with both Apache Kafka plus WSO2 Message Broker in order to publish and consume messages using Topics. But then apart from changing the jndi properties in WSO2 MB, the configurations in integrating the WSO2 CEP looks to be the same in both.
I'm sure it has it's own pros' & cons'. I've gone through the doc of Kafka and the WSO2 MB documentation. Are there any major differences when comparing one against the other? Any help would be appreciated.

Architecture
WSO2 MB: Built by extending Apache Qpid code base. Also it uses apache zookeeper and apache cassandra.
Apache Kafka:
Solution built from scratch.
Web Management Console
WSO2 MB: Native Management Console
Apache Kafka: No native Management Console. But there is some open source options: https://github.com/yahoo/kafka-manager and https://github.com/claudemamo/kafka-web-console
Community
Apache Kafka: used by giant companies checkout below
https://cwiki.apache.org/confluence/display/KAFKA/Powered+By
WSO2 MB: doesn't have proven use-cases in the market.
Protocols
WSO2 MB: Support JMS, AMQP and MQTT
Apache Kafka: It has its own protocol which built over TCP http://kafka.apache.org/protocol.html Kafka built for high throughput and large scale message processing applications.
Client Libraries
Apache Kafka: https://cwiki.apache.org/confluence/display/KAFKA/Clients
WSO2 MB: Java

Related

WSO2 ESB Clustering Architectural configuration

i have a question about an architectural solution feasibility using WSO2.
This is my scenario:
I have a Web Service REST exposing some functionalities
I have the WSO2 ESB
I have a client layer (Liferay)
the architecture i want to develop is the one showed in the first image:
http://s11.postimg.org/gu6b6k3zn/Immagine.png
1) Liferay clients send request to avail one functionality
2) WSO2 ESB (clustered) get the client request... and (as a proxy) redirects it to che tomcat server by using load balancing mechanism
3) Web service on tomcat receives the request and answers to it
Studying the WSO2 documentation i saw the configuration showed in the img 2 dealing with esb clustering and load balancing
http://s17.postimg.org/tuy885gzz/Immagine2.png
As i can see, in this case the Tomcat Application Server(inside WSO2 AS) is embedded inside the WSO2 ESB, so i have to deploy my REST WS into the WSO2 esb, and then clustering it.
I want to ask if the second solution is the only permitted or if i can obtain my first architectural solution in which the tomcat instances are decoupled from the ESB instances on a third (physically separated) layer.
In image 2, (http://s17.postimg.org/tuy885gzz/Immagine2.png), it is shown a Fail over scenario, where when the Primary ESB node goes down, the requests will be routed to backup node 2.
Even if you want to deploy something like in image 2, you can have the WSO2 AS layer sitting behind the ESB server layer. There you can deploy your REST WS. The REST WS can be fronted by a proxy in your ESB. And the proxy can be accessed by your life ray client.

How can I disable features WSO2 ESB 4.0.3?

We are in final few steps of WSO2 ESB / Data services implementation.
We are trying to pass the Information Security review of our WSO2 ESB implementation. We are using 4.0.3 EAB with 3.2.2 DSS feature.
Information security group has objected for following things in default WSO2 ESB
QPID / AMQP server listening to 5672 / 8672 ports. Can we disable the default message broker so that QPID will not start. If we disable, will it affect any other functionality? We are NOT using message brokers / any JMS related applications, mainly Data Services.
How to block JMX console being started? The JMX console starts at 11111 / 9999 be default.
We have already disabled Admin UI, however is there any way where I can turn the logging levels for individual loggers with out Admin UI and WITHOUT re- starting the ESB?
Can stop starting jmx server through CARBON_HOME/repository/conf/etc/jmx.xml by setting,
<StartRMIServer>false</StartRMIServer>
If the admin console was enabled, then you can configure the logging from the UI. Since you have disabled the admin console, then you can configure the loggers using the lgo4j.properties file in CARBON_HOME/repository/conf. But then you have to restart the server.
There is no other way to configure logging without restarting.
You can disable QPID server listening on 8672 TLS port with the following configuration change.
Go to /repository/conf/advanced/qpid-config.xml file and change the entry as below.
<broker>
<connector>
<!-- To enable SSL edit the keystorePath and keystorePassword
and set enabled to true.To disasble Non-SSL port set sslOnly to true -->
<ssl>
**<enabled>false</enabled>**
<sslOnly>false</sslOnly>
<keystorePath>repository/resources/security/wso2carbon.jks</keystorePath>
<keystorePassword>wso2carbon</keystorePassword>
</ssl>
After that QPID Broker will not be starting on TLS port. However regarding disabling the Qpid Server in 5672 TCP port, ESB 4.0.3 version comes with an embedded QPID broker which is tightly coupled with other ESB components. Therefore unfortunately it is not possible to detach the broker from the ESB with a configuration setting.This is changed after ESB 4.5.x versions where the embedded Qpid broker is no longer shipped with ESB, therefore if it is possible, you can upgrade the ESB version in order to meet this requirement.

JMX Data Agent to support remoting-jmx protocol with WSO2 BAM

I was trying to monitor jboss EAP 6.0/jboss AS 7 MBeans in WS02 BAM 2.2.0 using JMX Data Agent. I followed the tutorial to expose JBOSS MBeans, remotely in jconsole.
In WSO2 BAM while adding JMX Server Profile, I enter the URL:
service:jmx:remoting-jmx://{host_name}:{port}]
It says protocol is not supported. I suspect protocol remoting-jmx is not supported, where as in previous case, I see rmi protocol was supported. How can I import Remote JBOSS AS 7 MBean to WSO2 BAM 2.2.0 ?

More than 1500 proxyes with JMS transport, WSO2 ESB 4.0.3 and Activemq

Is there developers who have been succeeded deployed to wso2 esb more than 1500 proxy services
with jms transport without any problems?
Criteria:
deploying process must be very fast
wso2esb use activemq client libraries and activemq brocker
someone please help me!
This should be possible. There is no limitation on the number of proxies that an ESB can have.
You may try this with using the hot deployment capabilities of WSO2 ESB.
You may create a bunch of proxy services and place them inside:
/repository/deployment/server/synapse-config/default/proxy-services
Then the proxies with get automatically deployed..
eg:
proxy_1.xml, proxy_2.xml, proxy_3.xml,..., proxy_1500.xml etc.
However, having this number of proxy services, gives some indication of some anti-pattern in your SOA. Please review whether you need this much of proxy services in your solution architecture.

Service works in Tomcat doesn´t work on Servicemix

I´ve deployed a service into Tomcat 6 and into Servicemix 4.3
I´ve used soapUI 4 to send a request to the servers, from tomcat i get an answer, from servicemix i don´t. Both requests are differente Tomcat port 8080, servicemix port 8181.
The service is SOAP web-service in a .war file.
Has anyone done this type of migration? Do i need libraries in servicemix from tomcat?
the issue is likely your packaging/installation of your war and/or missing OSGi bundles...
see this blog post for info on using Servicemix as a web server...
essentially something like this...
osgi:install -s war:file:/tmp/sample.war?Webapp-Context=sample
then you should be able to go to http://localhost:8080/sample
also, this guide should help explain the OSGi war commands a bit...
Sorry, I'm confused.
Tomcat is a servlet/JSP engine, built to deploy servlets, JSPs and web services (given the proper library support).
ServiceMix is an ESB that can do routing to servlets, transforming of messages, guarantee delivery, workflow, and other services. It's supposed to decouple producers of messages from consumers.
I don't see ServiceMix as an alternative deployment platform for servlets and JSPs. I see them as complementary, not one replacing the other.