Dziugas Baltrunas wrote:

Hi list,

I'd like you to share the experience about running Kannel as SMS
gateway in clustered environment, when there are more than one node
and fail over is basically more important than load balancing. Idea
behind the scenes is that on each node there is an application server
running which uses Kannel for MT SMS and Wap Push (via PPG) and the
goal is to be sure that if one node goes down, application continues
to work. In front of the nodes there is a load balancer which is able
to detect if a particular node is dead then requests should be
redirected to the one which is alive.

According to my tests with SMPP drivers, neither SMSC worked with
parallel transmitters and transceivers either and SMSC mostly blames
with 0x00000005 (ESME Already in Bound State) or other error with the
similar meaning. Saying parallel I mean having a Kannel instance
running same time on the each node.

So having setup of just two nodes, I only achieved kind of "fail over"
with the script on both nodes constantly checking if other node is
alive, hence assuring that there is one Kannel instance between nodes
in a time. Load balancer then directs user to the "active" node.

Are there any better setups as such? Looks like at least with SMPP in
"real" clustering environment there should be several SMSC in order to
achieve fail over/load balancing.

thanks Dziugas for your shared experience.

Now, we had similar experiences at Wapme...

The problem is that SMPP and ectually most any other SMSC protocol is a transactional architecture, and not a pure pulling archivecture (ie. like HTTP). So you can't use parallization concepts like LVS to spread load into several boxes that do their jobs and pipe answers to the caller again.

At one time, SMPP servers expect to have "one" SMPP user bound session, otherwise you run into the error that you descibed.

The "solution" is more on the conceptual level, not on the SMPP protocol level. For high-load, high-avail systems you will need "several" SMPP user accounts for specific SMSCs and share those accross the Kannel boxes.

That "shared" (virtual) route is then used by the backend applications. But there are again implications, like transmission of segmented binary SMS via different SMSCs (or SMPP account resulting in physical different SMSCs). You should "asure" all parts run via one line.

Actually, clustering Kannel for SMS gateway purposes is not trivial.

Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to