Dominik,
thanks for your comments. I agree with you entirely.
I definitely think there is an interest in a highly scalable MQTT
client for load testing MQTT servers. I know several projects who
have written their own MQTT load testing clients.
One approach I have taken in the past is to network RSMBs together
with their bridges: one RSMB bridging to 500 others, each with 500
bridge connections to the MQTT server under test. That means you
can easily spread out the second-level RSMBs over several machines
if you need to, and I could build it very quickly. That approach
should work with Mosquitto too.
As I see it, the only potential risk of contributing your client is
confusion about which to use, which could be minimized by putting it
under "tools", "utilities" or a similar category. Personally, I
would be very happy to see the contribution.
Ian
On 09/04/2014 04:15 PM, Dominik
Obermaier wrote:
Ian,
I don't think Paho Clients are and should be highly scalable. I
personally are in favor of having rock-solid MQTT clients for
real-world productive usage. So from my point of view, 3) can be
dropped and be replaced with the mission goal of having
production-ready rock-solid clients.
We have written several load tests with different approaches and
the truth is, that we always had to write our own MQTT clients for
that. Speaking of Java clients, there is the fusesource-mqtt
client which is more scalable than the Paho Java implementation
but it has many concurrency bugs when using under load, so I
always recommend using Paho.
If there is interest for such a highly scalable and concurrent
implementation of a Java MQTT client with a nice fluent API, we
would consider bringing it to the Paho project. Beside the nice
fluent API, this MQTT client also has a "low-level" interface for
doing things like sending "raw" MQTT messages, which may be useful
for testing the behaviour of MQTT servers. So you can for instance
emulate faulty MQTT client behaviour with that. This client
unfortunately doesn't run on Android (afaik) and needs at least
Java 5. So I would not see a competing MQTT Java client to the
current Paho one but a complementary one for testing tool
implementations. Internally we're using this library heavily for
our HiveMQ integration and specification tests and for distributed
load tests.
Best,
Dominik
Ian Craggs wrote:
Hello all,
just scanning the web page, I noticed it describes three
attributes of Paho:
1) for constrained networks
2) devices and embedded platforms
3) highly scalable
where 3) is described as:
Paho focuses on highly scalable implementations that will
integrate with a wide range of middleware, programming and
messaging models.
I agree with the first two, but is it really true that Paho
implementations are or should be highly scalable? What does
this really mean? Several times I have heard of people wanting
to create load tests for their MQTT server, but as far as I am
aware none of the Paho libraries is specifically designed for that
purpose. While they may be capable of doing so, their design is
not likely to be optimal. When I am writing a client-side
library, the highest priority is usually making it small.
This claim might give rise to expectations which we can't
fulfil, unless anyone has a different interpretation? If so, I
think we need to explain.
--
Ian Craggs
icraggs@xxxxxxxxxx IBM United Kingdom
Committer on Paho, Mosquitto
_______________________________________________
paho-dev mailing list
paho-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/paho-dev
_______________________________________________
paho-dev mailing list
paho-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/paho-dev
--
Ian Craggs
icraggs@xxxxxxxxxx IBM United Kingdom
Committer on Paho, Mosquitto
|