Showing entries 1 to 5
Displaying posts with tag: activemq (reset)
Exploring message brokers

Message brokers are not regularly covered here but are, nonetheless, important web-related technologies. Some time ago, I was asked by one of our customer to review a selection of OSS message brokers and propose a couple of good candidates. The requirements were fairly simple: behave well when there’s a large backlog of messages, be able to create a cluster and in case of the failure of a node in a cluster, try to protect the data but never blocks the publishers even though that might imply data lost. Nothing fancy regarding queues and topics management. I decided to write my findings here, before I forget…

I don’t consider myself a message broker specialist and I spent only about a day or two on each so, I may have done some big mistakes configuration wise. I’ll take the blame if something is misconfigured or not used correctly.

[Read more]
SAP as a case study for open source engagement

There was some incredulity expressed yesterday when I suggested that SAP is a great case study on the way in which proprietary companies have engaged with open source.

To be clear, I was not suggesting that SAP is, or should be considered, an open source company, but based on our understanding of SAP’s changing strategy with regards to open source software it represents a good case study on how proprietary companies have learned that it is in their best interests to contribute to open source software projects.

Jay and I had the opportunity yesterday to speak to Claus von Riegen, SAP director of technology standards and open source, and Erwin Tenhumberg, SAP open source program manager. Our formal …

[Read more]
ActiveMQ Tips: Flow Control and Stalled Producers Problem

It’s been a few months since we‘ve started actively using ActiveMQ queue server in our project. For some time we had pretty weird problems with it and even started thinking about switching to something else or even writing our own queue server which would comply with our requirements. The most annoying problem was the following: some time after activemq restart everything worked really well and then activemq started lagging, queue started growing and all producer processes were stalling on push() operations. We rewrote our producers from Ruby to JRuby, then to Java and still – after some time everything was in a bad shape until we restarted the queue server.

So, long story short, after a lots of docs and source code reading we’ve found really interesting thing. There is a “feature” added in the recent ActiveMQ release …

[Read more]
ActiveMQ + Ruby Stomp Client: How to process elements one by one

Few months ago I’ve switched one of our internal projects from doing synchronous database saves of analytics data to an asynchronous processing using starling + a pool of workers. This was the day when I really understood the power of specialized queue servers. I was using database (mostly, MySQL) for this kind of tasks for years and sometimes (especially under a highly concurrent load) it worked not so fast… Few times I worked with some queue servers, but those were either some small tasks or I didn’t have a time to really get the idea, that specialized queue servers were created just to do these tasks quickly and efficiently.

All this time (few months now) I was using starling noticed really bad thing in how it works: if workers die (really die, or lock on something for a long time, or just start lagging) …

[Read more]
django - signals

continuing the recent thread about contenttypes in django I thought I would talk about a feature which got added in the magic removal branch, which doesn’t have as much attention as I think it deserves.

signals and the dispatcher.

signals are way of telling the rest of the world that something happened. If you are interested you simply listen for it (connect in django speak).

take for example my tagging application currently in use on zyons. one of it’s features is that it let’s users store their own tags.

One of the performance improvements I added to this was the creation of a ‘summary’ tag which aggregates which the …

[Read more]
Showing entries 1 to 5