Giter Site home page Giter Site logo

Comments (5)

samlane avatar samlane commented on May 20, 2024

I'm finding the same issue. Is there any effort underway to consider batchSize parameter?

from flume-ng-rabbitmq.

agentgt avatar agentgt commented on May 20, 2024

@eoglethorpe and @samlane

The issue is that the source is synchronous, polling and does not take advantage of prefetching. Right when I looked at the code I knew it was going to be a problem and it was.

I fixed it in my own fork. The reason I haven't pushed a pull request @jcustenborder is that the code is rather sloppy albeit we are using it in production.

https://github.com/agentgt/flume-ng-rabbitmq

Particularly you want to look at / copy:

https://github.com/agentgt/flume-ng-rabbitmq/blob/master/src/main/java/org/apache/flume/source/rabbitmq/RabbitMQConsumerSource.java

With my consumer we get about 150 msg/sec with spikes of it easily handling 1500 msg/sec. I don't know if it can go faster because we don't have the load yet and sadly haven't had the time to set up some cloud images to test its max.

We use the file channel. You do not want to use the memory channel and or the spillover channel. I know its shocking but the file channel on a modern SSD is faster than the memory channel when dealing with bursts.

from flume-ng-rabbitmq.

eoglethorpe avatar eoglethorpe commented on May 20, 2024

Awesome, thanks for posting - I ended up switching to another RMQ plugin which had much better read performance 'out of the box': https://github.com/stampy88/flume-ng-amqp-plugin

from flume-ng-rabbitmq.

agentgt avatar agentgt commented on May 20, 2024

Yeah that plugin should be even faster than mine because it does batching.
I didn't implement batching but was going to (this is so that you only have to send one ACK for the entire prefetch).

However it looks like I don't now and I can just use that plugin :)

from flume-ng-rabbitmq.

kaybinwong avatar kaybinwong commented on May 20, 2024

@eoglethorpe when i use the plugin(https://github.com/stampy88/flume-ng-amqp-plugin) as a test, i found it only can pass the string under 2byte,then i had read the source but got nothing.
do you have any idea?
thx

from flume-ng-rabbitmq.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.