[wildfly-dev] 2 instance cluster in master/slave

Arun Gupta arun.gupta at gmail.com
Tue Jun 3 14:21:14 EDT 2014


I've not yet, but will try that on desktop first and then on Raspi.

Have added that to the list of blog items.

Arun

On Tue, Jun 3, 2014 at 11:16 AM, Jason Greene <jason.greene at redhat.com> wrote:
> Very cool. Did you ever give the wildfly as a proxy approach a try?
>
> On May 31, 2014, at 8:37 PM, Arun Gupta <arun.gupta at gmail.com> wrote:
>
>> Please help spread the word.
>>
>> Let me know if you have fun ideas/projects that should run on Raspi
>> and help us build thought leadership :-)
>>
>> Arun
>>
>> On Sat, May 31, 2014 at 7:47 AM, David Aroca <daviaro at gmail.com> wrote:
>>> Thnks Arun!
>>>
>>>
>>> 2014-05-31 3:29 GMT-05:00 Kabir Khan <kabir.khan at jboss.com>:
>>>>
>>>> Nice!
>>>> On 31 May 2014, at 05:10, Arun Gupta <arun.gupta at gmail.com> wrote:
>>>>
>>>>> And finally, the three-part article showing how to setup WildFly
>>>>> cluster on Raspberry Pi is now available at:
>>>>>
>>>>> http://blog.arungupta.me/2014/05/wildfly-cluster-raspberrypi-techtip28/
>>>>>
>>>>> Feedback always welcome!
>>>>>
>>>>> Weekend can now start :)
>>>>>
>>>>> Cheers
>>>>> Arun
>>>>>
>>>>>
>>>>> On Fri, May 30, 2014 at 5:58 PM, Jason T. Greene <jgreene at redhat.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> Sent from my iPhone
>>>>>>
>>>>>>> On May 30, 2014, at 6:44 PM, Arun Gupta <arun.gupta at gmail.com> wrote:
>>>>>>>
>>>>>>> One (hopefully) last bit...
>>>>>>>
>>>>>>> How/where do I set the sticky session ?
>>>>>>
>>>>>> If you are using mod_proxy there is a memory based sticky session
>>>>>> parameter you have to set to JSESSIONID, see the apache page.
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Arun
>>>>>>>
>>>>>>>> On Fri, May 30, 2014 at 11:27 AM, Jason Greene
>>>>>>>> <jason.greene at redhat.com> wrote:
>>>>>>>>
>>>>>>>> On May 30, 2014, at 12:54 PM, Arun Gupta <arun.gupta at gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> A couple other options that would be fun to play with:
>>>>>>>>>>
>>>>>>>>>> 1. Using Undertow’s reverse proxy like this (assuming you named the
>>>>>>>>>> nodes pi1, pi2, and thus they have a pi1, pi2 jvmroute, which defaults to
>>>>>>>>>> the host name if you didn’t set it):
>>>>>>>>>>
>>>>>>>>>> <reverse-proxy name="reverse-proxy" connections-per-thread=“20">
>>>>>>>>>>   <host name=“http://p1.example:8080" instance-id=“pi1”/>
>>>>>>>>>>   <host name=“http://p2.example:8080" instance-id=“pi2"/>
>>>>>>>>>> </reverse-proxy>
>>>>>>>>>
>>>>>>>>> Where will I add this fragment ?
>>>>>>>>
>>>>>>>> In your domain.xml define a new profile called proxy, which is
>>>>>>>> derived from the “default" profile.
>>>>>>>>
>>>>>>>> In your new profile under the undertow subsystem, in the handlers
>>>>>>>> section, below the welcome content file handler, add the above proxy config.
>>>>>>>> You then need to change the location name=“/“ to point to the
>>>>>>>> “reverse-proxy” handler (instead of “welcome-content”)
>>>>>>>>
>>>>>>>> You basically want 3 server instances, one proxy, web server 1, and
>>>>>>>> web server 2, all preferably on separate systems. The proxy would be
>>>>>>>> assigned the proxy profile, the two other servers would get ha profiles.
>>>>>>>>
>>>>>>>> You could have your DC collocated on the proxy or on a separate box.
>>>>>>>> You need to be sure that your instance-id matches the jvm route on the web 1
>>>>>>>> and 2 boxes (defaults to hostname) for sticky sessions to work properly. If
>>>>>>>> you look at the cookie value you will see the jvmroute as a suffix.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2. You could also use undertow 1.1 standalone which has a
>>>>>>>>>> mod_cluster impl (coming to WildFly soon)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> https://github.com/undertow-io/undertow/blob/master/examples/src/main/java/io/undertow/examples/reverseproxy/ModClusterProxyServer.java
>>>>>>>>>>
>>>>>>>>>> (requires alteration for your topology)
>>>>>>>>> OK, let me try the simpler route first.
>>>>>>>>>
>>>>>>>>> I'm having issues building mod_cluster on ARM and following up on
>>>>>>>>> that
>>>>>>>>> separately. Seems like I may have to use mod_proxy for now since
>>>>>>>>> this
>>>>>>>>> is baked into Apache2 for ARM.
>>>>>>>>>
>>>>>>>>>>> The session ids are indeed different. Just pushed out the latest
>>>>>>>>>>> blog
>>>>>>>>>>> in this series at:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> http://blog.arungupta.me/2014/05/wildfly-managed-domain-raspberrypi-techtip27/
>>>>>>>>>>>
>>>>>>>>>>> The session id are shown towards the end in screen snapshots, and
>>>>>>>>>>> are
>>>>>>>>>>> indeed different.
>>>>>>>>>>
>>>>>>>>>> So the problem is you need to either have a shared cookie domain,
>>>>>>>>>> or use an LB, since the cookie domain has to match the URL for the browser
>>>>>>>>>> to send the same cookie. You can do this in either the global config
>>>>>>>>>> (standalone.xml under servlet-container), or you can add a setting to your
>>>>>>>>>> web.xml like this:
>>>>>>>>>>
>>>>>>>>>> <session-config>
>>>>>>>>>> <cookie-domain>.example</cookie-domain>
>>>>>>>>>> </session-config>
>>>>>>>>>
>>>>>>>>> Can this element be added to domain.xml as well for the managed
>>>>>>>>> domain mode ?
>>>>>>>>
>>>>>>>> Yes next to the “server” block inside the undertow subsystem you can
>>>>>>>> add:
>>>>>>>>
>>>>>>>> <servlet-container>
>>>>>>>> <session-cookie domain=“.example”>
>>>>>>>> </servlet-container>
>>>>>>>>
>>>>>>>> Although note that you ONLY have to do this if you are not using an
>>>>>>>> LB.
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Then you want to add host entries to hosts:
>>>>>>>>>>
>>>>>>>>>> pi1.example 10.x.x.x
>>>>>>>>>> pi2.example 10.x.x.x
>>>>>>>>>
>>>>>>>>> These entries would be made in each individual /etc/hosts ?
>>>>>>>>
>>>>>>>> You just need this on the machine with the client browser, so that
>>>>>>>> when it sends HTTP requests it does “Host: pi1.example” instead of "Host:
>>>>>>>> 10.xxxxx”.
>>>>>>>>
>>>>>>>> If you decide to go the LB route, and want to have name references
>>>>>>>> then you could do them everywhere to make it all easy.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Arun
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> After you do that you should be able to stick pi1.example and
>>>>>>>>>> pi2.example in the browser.
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Jason T. Greene
>>>>>>>>>> WildFly Lead / JBoss EAP Platform Architect
>>>>>>>>>> JBoss, a division of Red Hat
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> http://blog.arungupta.me
>>>>>>>>> http://twitter.com/arungupta
>>>>>>>>
>>>>>>>> --
>>>>>>>> Jason T. Greene
>>>>>>>> WildFly Lead / JBoss EAP Platform Architect
>>>>>>>> JBoss, a division of Red Hat
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> http://blog.arungupta.me
>>>>>>> http://twitter.com/arungupta
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> http://blog.arungupta.me
>>>>> http://twitter.com/arungupta
>>>>
>>>>
>>>> _______________________________________________
>>>> wildfly-dev mailing list
>>>> wildfly-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>
>>>
>>
>>
>>
>> --
>> http://blog.arungupta.me
>> http://twitter.com/arungupta
>
> --
> Jason T. Greene
> WildFly Lead / JBoss EAP Platform Architect
> JBoss, a division of Red Hat
>



-- 
http://blog.arungupta.me
http://twitter.com/arungupta



More information about the wildfly-dev mailing list