Re: Kannel in clustered environment
Stipe Tolj <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Organization | tolj.org system architecture |
| Message-ID | <[email protected]> |
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
-------------------------------------------------------------------