Re: PoC Wildfly Buildpack and problems with load-balancing


Josh Long <starbuxman@...>
 

OMG OMG Thomas! lol you're *so so* awesome buddy

On Mon, Aug 29, 2016 at 15:58 Matt Cholick <cholick(a)gmail.com> wrote:

I'd guess WildFly is setting JSESSIONID when first visiting the app, which
would stick your browser session to the same app instance.

On Mon, Aug 29, 2016 at 3:50 PM, Thomas Darimont <
thomas.darimont+github(a)gmail.com> wrote:

Hello group,

this is my first post to this list so I hope I'm at the right place with
my problem :)

For a PCFDev demo at our Java User Group I wanted to deploy a Java EE App
on Wildfly to Cloud Foundry via (PCFDev).
I noticed that there is only a rather old JBoss buildpack available so I
created a prototypic Wildfly (10.1.0.x) buildpack.
I think having such a buildpack would be quite useful - could help to
ease moving legacy Java EE Apps to CF.

With this new wildfly buildpack I'm able to successfully deploy a sample
Java EE App to Cloud Foundry - yay :)
I can also scale up to multiple instances - however external http
requests are only ever
hitting a single application instance.

(I added some output of VCAP_APPLICATION,
CF_INSTANCE_GUID/CF_INSTANCE_INDEX env variables to the hello.xhtml
page in the example app to verify this).

PoC Wildfly Buildpack:
https://github.com/thomasdarimont/wildfly-buildpack
JavaEE Petclinic Example app with manifest:
https://github.com/thomasdarimont/javaee7-petclinic/tree/poc/pcf-dev

It seems that the load-balancing isn't working correctly.
Can anybody give me a hint at what might be the problem?

Some steps to reproduce the problem:
0) start pcf dev
cf dev start

1) login to pcfdev
cf login -a https://api.local.pcfdev.io --skip-ssl-validation

2) checkout & build example app
git clone https://github.com/thomasdarimont/javaee7-petclinic.git
cd javaee7-petclinic
git checkout poc/pcf-dev
mvn package

3) deploy to pcfdev
cf deploy

4) Scale to 2 instances
cf scale javaee-petclinic -i 2

5) Observe the logs in a new terminal
cf logs javaee-petclinic

6) Send some requests to the sample app
Refresh the page several times:
http://javaee-petclinic.local.pcfdev.io/hello.jsf

Expected:
Some requests should be handled by different APP instances so there
should be alternating
APP/0, APP/1 entires visible in the logs...

Note thate one can clearly see the application instance booting:
2016-08-30T00:24:18.65+0200 [APP/0] OUT 22:24:18,648 INFO [
org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full
10.1.0.Final (WildFly Core 2.2.0.Final) started in 12375ms - Started 638 of
874 services (404 services are lazy, passive or on-demand)
...
2016-08-30T00:25:05.58+0200 [APP/1] OUT 22:25:05,581 INFO [
org.jboss.as] (Controller Boot Thread) WFLYSRV0025: WildFly Full
10.1.0.Final (WildFly Core 2.2.0.Final) started in 12174ms - Started 638 of
874 services (404 services are lazy, passive or on-demand)

Cheers,
Thomas

Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.