WildFly 8 — nowy, ulepszony serwer aplikacji JBoss dla systemu Linux
Jak wszyscy wiemy, nazwa JBoss AS została zmieniona na WildFly. Dodano wiele nowych funkcji i wiele zmodernizowano. Wreszcie wersja finalna WildFly 8.0.0 została wydana 11 lutego 2014. Lider projektu WildFly, Jason Greene, ogłosił to samo.
WildFly 8 to serwer aplikacji typu open source firmy Red Hat zgodny z Java EE 7. Główne cechy są jak poniżej:
Zgodność z Javą EE 7
Największą zmianą jest to, że teraz WildFly 8 posiada oficjalny certyfikat Java EE7.
Serwer WWW o wysokiej wydajności
Undertow to nowy, wysokowydajny serwer WWW napisany w języku Java. Teraz zostało to zaimplementowane w WildFly 8. Zostało to naprawdę zaprojektowane z myślą o wysokiej przepustowości i skalowalności oraz może obsłużyć miliony połączeń. Cykl życia Undertow jest całkowicie kontrolowany przez aplikację do osadzania. Jest to niezwykle lekki plik z rdzeniem jar o rozmiarze 1 MB i wbudowanym serwerem zajmującym mniej niż 4 MB przestrzeni na stercie. To jest naprawdę świetne.
Redukcja 3 portów
Ponieważ korzysta z Undertow, które obsługuje aktualizację HTTP, co umożliwi multipleksowanie wielu protokołów na jednym porcie HTTP. WildFly 8 przeniósł prawie wszystkie swoje protokoły do multipleksowania przez dwa porty HTTP: jeden to port zarządzania, a drugi to port aplikacji. To naprawdę duża zmiana i korzyść dla dostawców usług chmurowych (takich jak OpenShift), którzy uruchamiają setki, a nawet tysiące instancji na jednym serwerze. W sumie ma dwa domyślne porty do konfiguracji i są to 9990 (konsola administracyjna WWW) i 8080 (konsola aplikacji).
Zarządzanie kontrolą dostępu i audytem w oparciu o role
Jest to nowa i interesująca rzecz zaimplementowana w WildFly 8. Dzięki temu możemy tworzyć różnych użytkowników i przypisywać im różne role zgodnie z wymaganiami. Pokażę później na zrzutach ekranu.
Logowanie
Interfejs API zarządzania obsługuje teraz możliwość wyświetlania i wyświetlania dostępnych plików dziennika na serwerze. Teraz mamy atrybut o nazwie „add-logging-api-dependents” dostępny dla każdego rodzaju wdrożeń, w których chcemy pominąć rejestrowanie kontenerów. Spowoduje to wyłączenie dodawania ukrytych zależności rejestrowania serwera. Mamy inną opcję, tj. możemy użyć pliku jboss-deployment-structure.xml, aby wykluczyć podsystem logowania. Dzięki temu podsystem rejestrujący nie będzie przechodził żadnego wdrożenia.
Możemy również skorzystać z innego parametru, np. use-deployment-logging-config, aby włączyć/wyłączyć przetwarzanie plików konfiguracyjnych rejestrowania w ramach wdrożenia.
Uwaga: właściwość systemowa, której używaliśmy do wyłączania podczas rejestrowania, została w tej wersji przestarzała.
Grupowanie
Ponownie, duża zmiana to jedno grupowanie. Wszystkie funkcje związane z obsługą klastrowania zostały zmienione w WildFly 8 i obejmują one:
- Rozproszona sesja internetowa została do tego zoptymalizowana dzięki nowemu serwerowi internetowemu opartemu na Javie, tj. Undertow.
- obsługa mod_cluster dla Undertow.
- Zoptymalizowane możliwości rozproszonego logowania jednokrotnego (Single Sign-On) i obsługa Undertow.
- Nowa/zoptymalizowana implementacja rozproszonego buforowania @Stateful EJB.
- WildFly 8 dodał nowy interfejs API klastrów publicznych.
- Do tworzenia usług singleton udostępnia nowe publiczne API.
Ulepszenia interfejsu wiersza polecenia
Poprawiono także konfigurację CLI. Wiesz, że wszyscy administratorzy uwielbiają pracować nad CLI ;). Zatem teraz możemy utworzyć alias dla konkretnego serwera, a następnie używać go za każdym razem, gdy chcemy połączyć się z tym serwerem za pomocą polecenia connect.
W WildFly 8 wprowadzono jeszcze wiele ulepszeń i aktualizacji. Możesz je wszystkie sprawdzić pod adresem:
- http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/
Instalacja WildFly 8 w systemie Linux
Zanim przystąpisz do instalacji, upewnij się, że w swoim systemie masz zainstalowaną wersję Java EE 7. WildFly 8 nie będzie działać z poprzednimi wersjami. Aby zainstalować Java EE 7 w systemach Linux, postępuj zgodnie z poniższym przewodnikiem.
- Zainstaluj JDK/JRE 7u25 w systemie Linux
Krok 1: Pobieranie WildFly 8
Użyj poniższego łącza, aby pobrać najnowszy plik zip WildFly.
- http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
Możesz także użyć polecenia „wget”, aby pobrać bezpośrednio z wiersza poleceń.
[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip
Skopiuj plik zip do dowolnej preferowanej lokalizacji (np. „/data/” w moim przypadku) i rozpakuj za pomocą polecenia „unzip”.
[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip
Krok 2: Ustawianie zmiennych środowiskowych
Teraz ustaw kilka zmiennych środowiskowych. Można je ustawić w systemie lub w plikach konfiguracyjnych. Tutaj ustawiam pliki konfiguracyjne standalone.sh i standalone.conf w folderze „bin”.
[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/
Dodaj te dwie poniższe linie do plików standlone.sh/standlone.conf. Podaj lokalizację instalacji WildFly i lokalizację Java Home.
JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”
Uwaga: dla całego systemu możesz ustawić to w pliku „/etc/profile”.
Krok 3: Uruchamianie WildFly 8
Teraz uruchom serwer, tj. dla trybu samodzielnego użyj „standalone.sh”, a dla trybu domeny użyj „domain.sh”.
[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh
Ale tutaj zaczynam w trybie autonomicznym. Domyślnie rozpocznie się od pliku „standalone.xml”, ale możesz także rozpocząć od innej konfiguracji, używając opcji „–server-config”.
Jak poniżej, uruchamiam serwer z „standalone-full-ha.xml”, a plik ten znajduje się w „$JBOSS_HOME/standalone(profile)/configuration/ ”.
[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Przykładowe wyjście
Calling "/data/wildfly-8.0.0.Final/standalone/configuration/standalone.conf"
Setting JAVA property to "/data/java/jre7/bin/java"
===============================================================================
JBoss Bootstrap Environment
JBOSS_HOME: "/data/wildfly-8.0.0.Final"
JAVA: "/data/java/jre7/bin/java"
JAVA_OPTS: "-client -Dprogram.name=standalone.sh -Xms64M -Xmx512M -XX:MaxPerm
Size=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"
===============================================================================
13:55:26,403 INFO [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:55:33,812 INFO [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:55:35,481 INFO [org.jboss.as] (MSC service thread 1-1) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:55:58,646 INFO [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
...........
13:56:22,778 INFO [org.jboss.as] (Controller Boot Thread) JBAS015961: Http management interface listening on http://127.0.0.1:9990/management
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015951: Admin console listening on http://127.0.0.1:9990
13:56:22,794 INFO [org.jboss.as] (Controller Boot Thread) JBAS015874: WildFly 8.0.0.Final "WildFly" started in 64534ms - Started 229 of 356 services (172 services are lazy, passive or on-demand)
Krok 4: Dostęp do WildFly 8
Teraz możesz skierować przeglądarkę na „http://localhost:8080” (jeśli używasz domyślnie skonfigurowanego portu http), co spowoduje wyświetlenie ekranu powitalnego.
Stąd można uzyskać dostęp do przewodników po dokumentacji społeczności WildFly i rozszerzonego dostępu do internetowej konsoli administracyjnej.
Krok 5: Zarządzanie WildFly 8
WildFly 8 udostępnia dwie konsole administracyjne do zarządzania uruchomioną instancją:
- internetowa konsola administracyjna
- interfejs linii komend
Przed połączeniem się z konsolą administracyjną lub zdalnym użyciem wiersza poleceń musisz utworzyć nowego użytkownika za pomocą skryptu „add-user.sh” w folderze bin.
Następnie przejdź do katalogu 'bin', ustaw 'JBOSS_HOME' w pliku add-user.sh (jeśli zmienna nie jest ustawiona w bazach systemowych) i utwórz użytkownika jak poniżej.
[root@tecmint bin]# ./add-user.sh
Po uruchomieniu skryptu zostaniesz poprowadzony przez proces dodawania nowego użytkownika:
Przykładowe wyjście
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a):
Enter the details of the new user to add.
Using realm 'ManagementRealm' as discovered from the existing property files.
Username : admin
The username 'admin' is easy to guess
Are you sure you want to add user 'admin' yes/no? yes
Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file.
- The password should not be one of the following restricted values {root, admin, administrator}
- The password should contain at least 8 characters, 1 alphanumeric character(s), 1 digit(s), 1 non-alphanumeric symbol(s)
- The password should be different from the username
Password :
Re-enter Password :
What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]:
About to add user 'admin' for realm 'ManagementRealm'
Is this correct yes/no? yes
Added user 'admin' to file '/data/wildfly-8.0.0.Final/standalone/configuration/mgmt-users.properties'
Added user 'admin' to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-users.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/standalone/configuration/mgmt-groups.properties'
Added user 'admin' with groups to file /data/wildfly-8.0.0.Final/domain/configuration/mgmt-groups.properties'
Is this new user going to be used for one AS process to connect to another AS process?
e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls.
yes/no? yes
To represent the user add the following to the server-identities definition
Press any key to continue . . .
Teraz uzyskaj dostęp do internetowej konsoli administracyjnej pod adresem „http://localhost:9990/console” i wprowadź nowo utworzoną nazwę użytkownika i hasło, aby uzyskać bezpośredni dostęp do konsoli zarządzania.
Pierwszy ekran po zalogowaniu.
Jeśli wolisz obsługiwać swój serwer z poziomu CLI, uruchom skrypt „jboss-cli.sh” z katalogu „bin”, który oferuje te same możliwości, które są dostępne poprzez internetowy interfejs użytkownika.
[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999
Aby uzyskać więcej informacji, zapoznaj się z oficjalną dokumentacją WildFly 8 pod adresem https://docs.jboss.org/author/display/WFLY8/Documentation.
Przeczytaj także: WildFly (JBoss AS) – jak uzyskać dostęp do CLI i zarządzać nim za pomocą GUI