O enxame: Java EE Micro Serviços com JBoss Application Server

Recentemente, o primeiro alpha do novo JBoss Application Server Sidecar Swarm está disponível. Deve, portanto, ser a embalagem servidor de aplicativos tanto juntamente com a aplicação real, conforme necessário para obter um arquivo executável Java. esta "aplicação único frasco"- ou "jar gordura"Conceito é muitas vezes visto como a abordagem certa para arquiteturas Micro Services.

Atualmente, a notícia da área de Java EE acumular. Além do mais recente release candidate do JBoss Application Server-9 Application Server um chamado manutenção foi elaborado incluindo Java EE 7 release (MR). E Java EE 8 de JSR o oficialmente disponível por algum tempo. No entanto, esta notícia coxear do clássico pilha Java EE atrás dos desenvolvimentos atuais. as palavras "recipiente" ou "micro Serviços" uma procura em vão na especificação. Pelo menos para o criado com base em aplicações JBoss Application Server, esta lacuna fecha um pouco.

JBoss Application Server Swarm: executáveis ​​Serviços Micro

enxames "aplicação único frasco"- ou "jar gordura"Conceito é considerado por alguns como a abordagem certa para arquiteturas Micro Services. Sem ele querer filosofar agora, é muito emocionante para algo só de olhar para esta nova versão. No exemplo a seguir, quero enfatizar que é simplesmente um exemplo de uma técnica e não representa a única maneira certa para Micro Services.

Dada uma simples aplicação Web baseado em Maven Java EE 7. Em pom.xml permanece como apenas uma função:


javax
Java EE web-api
7
fornecido

É construído um arquivo WAR 6 Kbytes. enxame / rs / cliente 8080 / para uma saída JSON simples: ele é executado no JBoss Application Server, levando uma chamada para http: // localhost:

{
"firstname": "Markus".
"lastName": "Eisele".
"endereço da rua": "Werner-von-Siemens-Ring 14".
"cidade": "Grasbrunn".
"pcode": "85630".
"phoneNumbers": [
{
"grau": "móvel".
"número": "111-111-1111"
},
{
"grau": "casa".
"número": "222-222-2222"
}
]
}

Na medida em que tudo isto não é emocionante. Para fazer esta aplicação simples é um arquivo executável autônomo, agora Swarm entra em jogo. Para isso, um novo plug-in deve ser facilmente adicionado ao projeto recém-criado:


org.wildfly.swarm
JBoss Application Server-swarm-plugin
$ {Version.wildfly-enxame}


pacote

criar



O número da versão, é melhor pom.xml via propriedade em Maven. Atualmente Swarm está disponível como 1.0.0.Alpha1. Um pequeno aviso foi proferida aqui para usuários do Windows. Apenas esta versão não é executado no Windows. O último mestre contém a correção, mas já, e que se constrói de forma rápida e usado localmente para 1.0.0.Alpha2-INSTANTÂNEO Swarm, pode assistir o resultado no Windows.

Mas o plug-in não fazer todo o trabalho sozinho. Das dependências (dependências) os recursos Java EE usados ​​ainda estão adicionar. Para a pequena amostra que é apenas a função de JAX-RS:


org.wildfly.swarm
JBoss Application Server-Swarm-jaxrs
$ {Version.wildfly-enxame}
fornecido

Em seguida, o projeto pode ser construído através de pacote mvn. Além do resultado esperado, o arquivo swarm-sample-1,0-SNAPSHOT.war agora também é muito maior enxame-sample-1.0-SNAPSHOT-swarm.jar pousou no destino / diretório. Ela agora tem cerca de 30 MB.

testar o JAR gordura

na verdade, só resta o lançamento e teste da não tão pequena jarra:

java -jar enxame-1,0-INSTANTÂNEO-swarm.jar

A saída é uma indicação de várias versões dos subsistemas usados. Agora, até mesmo o teste:

C: \>onda -v http: // localhost: 8080 / rs / cliente
* Ligado ao localhost (:: 1) a porta 8080 (# 0)
> GET / rs / HTTP cliente / 1.1
> User-Agent: Onda / 7.30.0
> Host: localhost: 8080
> Accept: * / *
>
< HTTP / 1.1 200 OK
< Conexão: keep-alive
< Content-Type: application / json
< Content-Comprimento: 221
< Date: Fri, 08 maio de 2015 07:59:00 GMT
<
{"firstname":"Markus"."lastName":"Eisele"."endereço da rua":
"Werner-von-Siemens-Ring 14"."cidade":"Grasbrunn".
"pcode":"85630"."phoneNumbers
": [{"grau":"móvel"."número":"111-111-1111"},
{"grau":"casa"."número":"222-222-2222"}]} * Connection # 0 a
localhost deixada intacta

Quem ainda quer usar outras especificações, vai encontrar mais detalhes sobre o blog Swarm. atualmente servlet, JAX-RS ShrinkWrap, DataSource via implantação, mensagens e alguns outros são suportados.

Feedback e cooperação é desejada. Qualquer pessoa que queira encontrar todas as informações sobre o @ WildFlySwarm-Twitter pega. Se você perder funções ou encontrar erros, podem participar diretamente no projeto GitHub.