WildFly 8 - Ένας νέος βελτιωμένος διακομιστής εφαρμογών JBoss για Linux


Όπως όλοι γνωρίζουμε ότι το JBoss AS έχει μετονομαστεί σε WildFly. Έχουν προστεθεί πολλές νέες δυνατότητες και πολλές έχουν αναβαθμιστεί. Τελικά το WildFly 8.0.0 Final κυκλοφόρησε στις 11 Φεβρουαρίου 2014. Το WildFly Project Lead Jason Greene ανακοίνωσε το ίδιο.

Ο WildFly 8 είναι ο διακομιστής εφαρμογών ανοιχτού κώδικα συμβατός με το Java EE 7 του Red Hat. Τα κύρια χαρακτηριστικά είναι τα παρακάτω:

Συμβατότητα Java EE 7

Η μεγαλύτερη αλλαγή σε αυτό είναι ότι τώρα το WildFly 8 είναι επίσημο Java EE7 Certified.

Διακομιστής Web υψηλής απόδοσης

Το Undertow είναι ένας νέος διακομιστής web υψηλής απόδοσης γραμμένος σε Java. Τώρα αυτό έχει εφαρμοστεί στο WildFly 8. Αυτό είναι πραγματικά σχεδιασμένο για υψηλή απόδοση και επεκτασιμότητα και μπορεί να χειριστεί εκατομμύρια συνδέσεις. Ο κύκλος ζωής του Undertow ελέγχεται πλήρως από την εφαρμογή ενσωμάτωσης. Αυτό είναι εξαιρετικά ελαφρύ με πυρήνα jar με μέγεθος 1MB και ενσωματωμένο διακομιστή που χρησιμοποιεί λιγότερο από 4MB χώρου σωρού. Αυτό είναι πραγματικά υπέροχο.

3 Μείωση θυρών

Δεδομένου ότι χρησιμοποιεί το Undertow που υποστηρίζει την Αναβάθμιση HTTP, η οποία θα επιτρέψει την πολυπλεξία πολλαπλών πρωτοκόλλων σε μία θύρα HTTP. Το WildFly 8 έχει μετακινήσει σχεδόν όλα τα πρωτόκολλά του για πολυπλεξία σε δύο θύρες HTTP: η μία είναι η διαχείριση και η άλλη η θύρα εφαρμογής. Αυτή είναι πραγματικά μια μεγάλη αλλαγή και όφελος για τους παρόχους cloud (όπως το OpenShift) που εκτελούν εκατοντάδες έως χιλιάδες παρουσίες σε έναν μόνο διακομιστή. Συνολικά, έχει δύο προεπιλεγμένες θύρες για διαμόρφωση και είναι η 9990 (Κονσόλα διαχείρισης Web) και η 8080 (Κονσόλα εφαρμογής).

Έλεγχος πρόσβασης και έλεγχος βάσει ρόλου διαχείρισης

Αυτό είναι το νέο και ενδιαφέρον πράγμα που υλοποιείται στο WildFly 8. Χρησιμοποιώντας αυτό μπορούμε να δημιουργήσουμε διαφορετικούς χρήστες και να τους εκχωρήσουμε σε διαφορετικούς ρόλους ανάλογα με τις απαιτήσεις. Θα σας δείξω αργότερα με στιγμιότυπα οθόνης.

Ξύλευση

Το API διαχείρισης υποστηρίζει πλέον τη δυνατότητα λίστας και προβολής των διαθέσιμων αρχείων καταγραφής σε έναν διακομιστή. Τώρα, έχουμε το χαρακτηριστικό που ονομάζεται "add-logging-api-dependencies" διαθέσιμο για κάθε είδους αναπτύξεις στις οποίες θέλουμε να παραβλέψουμε την καταγραφή κοντέινερ. Αυτό θα απενεργοποιήσει την προσθήκη των σιωπηρών εξαρτήσεων καταγραφής διακομιστή. Έχουμε μια άλλη επιλογή, δηλαδή μπορούμε να χρησιμοποιήσουμε ένα jboss-deployment-structure.xml για να εξαιρέσουμε το υποσύστημα καταγραφής. Χρησιμοποιώντας αυτό, θα βοηθήσει να σταματήσει το υποσύστημα καταγραφής να περάσει από οποιαδήποτε ανάπτυξη.

Μπορούμε επίσης να χρησιμοποιήσουμε μια άλλη παράμετρο, δηλαδή use-deployment-logging-config για την ενεργοποίηση/απενεργοποίηση της επεξεργασίας των αρχείων διαμόρφωσης καταγραφής σε μια ανάπτυξη.

Σημείωση: Η ιδιότητα συστήματος που χρησιμοποιούσαμε για την απενεργοποίηση ανά καταγραφή έχει καταργηθεί από αυτήν την έκδοση.

Ομαδοποίηση

Και πάλι Μεγάλη αλλαγή είναι μια ομαδοποίηση. Όλες οι λειτουργίες που σχετίζονται με την υποστήριξη Clustering είχαν αλλάξει στο WildFly 8 και περιλαμβάνουν τα παρακάτω:

  1. Η κατανεμημένη συνεδρία ιστού έχει βελτιστοποιηθεί για αυτήν με τον νέο διακομιστή Web που βασίζεται σε Java, δηλαδή το Undertow.
  2. υποστήριξη mod_cluster για Undertow.
  3. Βελτιστοποιημένες δυνατότητες κατανεμημένου SSO (Single Sign-On) και υποστήριξη για το Undertow.
  4. Νέα/βελτιστοποιημένη κατανεμημένη εφαρμογή αποθήκευσης στην κρυφή μνήμη @Stateful EJB.
  5. Το WildFly 8 πρόσθεσε κάποιο νέο δημόσιο API ομαδοποίησης.
  6. Για τη δημιουργία υπηρεσιών singleton παρέχει νέα δημόσια API.
Βελτιώσεις CLI

Η διαμόρφωση CLI έχει επίσης βελτιωθεί. Ξέρετε Όλοι οι διαχειριστές αγαπούν να εργάζονται στο CLI ;). Έτσι, τώρα μπορούμε να δημιουργήσουμε ψευδώνυμα για συγκεκριμένο διακομιστή και στη συνέχεια μπορούμε να χρησιμοποιήσουμε αυτό το ψευδώνυμο όποτε θέλουμε να συνδεθούμε σε αυτόν τον διακομιστή χρησιμοποιώντας την εντολή σύνδεσης.

Υπάρχουν ακόμα πολλές βελτιώσεις και ενημερώσεις στο WildFly 8. Μπορείτε να τα ελέγξετε όλα αυτά στη διεύθυνση:

  1. http://wildfly.org/news/2014/02/11/WildFly8-Final-Released/

Εγκατάσταση του WildFly 8 σε Linux

Πριν προχωρήσετε στην εγκατάσταση, βεβαιωθείτε ότι έχετε εγκαταστήσει το Java EE 7 στο σύστημά σας. Το WildFly 8 δεν θα λειτουργήσει με προηγούμενες αναθεωρήσεις. Ακολουθήστε τον παρακάτω οδηγό για να εγκαταστήσετε το Java EE 7 στα συστήματα Linux.

  1. Εγκαταστήστε το JDK/JRE 7u25 σε Linux

Βήμα 1: Λήψη του WildFly 8

Χρησιμοποιήστε τον παρακάτω σύνδεσμο για να κατεβάσετε το πιο πρόσφατο αρχείο zip WildFly.

  1. http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή "wget" για λήψη απευθείας στη γραμμή εντολών.

[root@tecmint]# wget http://download.jboss.org/wildfly/8.0.0.Final/wildfly-8.0.0.Final.zip

Αντιγράψτε το αρχείο zip σε οποιαδήποτε προτιμώμενη τοποθεσία (π.χ. «/data/» στην περίπτωσή μου) και εξαγάγετε χρησιμοποιώντας την εντολή «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

Βήμα 2: Ρύθμιση μεταβλητών περιβάλλοντος

Τώρα ορίστε μερικές μεταβλητές περιβάλλοντος. Μπορείτε να τα ρυθμίσετε στο σύστημα ή στα αρχεία διαμόρφωσής σας. Εδώ ρυθμίζω μέσα στα αρχεία διαμόρφωσης standalone.sh και standalone.conf στο φάκελο "bin".

[root@tecmint data]# cd wildfly-8.0.0.Final
[root@tecmint data]# cd bin/

Προσθέστε αυτές τις δύο ακόλουθες γραμμές στα αρχεία standlone.sh/standlone.conf. Καθορίστε την τοποθεσία εγκατάστασης του WildFly και την τοποθεσία Java Home.

JBOSS_HOME=”/data/wildfly-8.0.0.Final”
JAVA_HOME=”/data/java/jre7/bin/java”

Σημείωση: Για ολόκληρο το σύστημα, μπορείτε να το ορίσετε στο αρχείο "/etc/profile".

Βήμα 3: Εκκίνηση του WildFly 8

Τώρα ξεκινήστε τον διακομιστή, δηλαδή για αυτόνομη λειτουργία χρησιμοποιήστε το «standalone.sh“ και για λειτουργία τομέα χρησιμοποιήστε το «domain.sh».

[root@tecmint bin]# ./standalone.sh
[root@tecmint bin]# ./domain.sh

Αλλά, εδώ ξεκινάω σε αυτόνομη λειτουργία. Από προεπιλογή θα ξεκινήσει από το αρχείο «standalone.xml», αλλά μπορείτε επίσης να ξεκινήσετε με κάποια άλλη διαμόρφωση χρησιμοποιώντας την επιλογή «–server-config».

Όπως παρακάτω, ξεκινάω τον διακομιστή με το "standalone-full-ha.xml" και αυτό το αρχείο υπάρχει στο "$JBOSS_HOME/standalone(profile)/configuration/".

[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Δείγμα εξόδου
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)

Βήμα 4: Πρόσβαση στο WildFly 8

Τώρα μπορείτε να κατευθύνετε το πρόγραμμα περιήγησής σας στο "http://localhost:8080" (εάν χρησιμοποιείτε την προεπιλεγμένη ρυθμισμένη θύρα http) που σας μεταφέρει στην οθόνη υποδοχής.

Από εδώ, μπορείτε να αποκτήσετε πρόσβαση σε οδηγούς τεκμηρίωσης κοινότητας WildFly και βελτιωμένη πρόσβαση στην Κονσόλα διαχείρισης που βασίζεται στον ιστό.

Βήμα 5: Διαχείριση WildFly 8

Το WildFly 8 παρέχει δύο διαχειριστικές κονσόλες για τη διαχείριση της τρέχουσας παρουσίας:

    1. Κονσόλα διαχείρισης που βασίζεται στο web
    2. διεπαφή γραμμής εντολών

Πριν συνδεθείτε με την κονσόλα διαχείρισης ή απομακρυσμένα χρησιμοποιώντας τη γραμμή εντολών, θα χρειαστεί να δημιουργήσετε έναν νέο χρήστη χρησιμοποιώντας τη δέσμη ενεργειών "add-user.sh" στο φάκελο bin.

Στη συνέχεια, μεταβείτε στον κατάλογο "bin", ορίστε το "JBOSS_HOME" στο add-user.sh (εάν η μεταβλητή δεν έχει οριστεί σε βάσεις συστήματος) και δημιουργήστε χρήστη όπως παρακάτω.

[root@tecmint bin]# ./add-user.sh

Μόλις ξεκινήσετε το σενάριο, θα καθοδηγηθείτε στη διαδικασία προσθήκης νέου χρήστη:

Δείγμα εξόδου
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 . . .

Τώρα αποκτήστε πρόσβαση στην Κονσόλα διαχείρισης που βασίζεται στον ιστό στη διεύθυνση ‘http://localhost:9990/console’ και εισαγάγετε το νέο όνομα χρήστη και τον κωδικό πρόσβασης που δημιουργήθηκε για να αποκτήσετε απευθείας πρόσβαση στην Κονσόλα διαχείρισης.

Πρώτη οθόνη Μετά την είσοδο.

Εάν προτιμάτε να χειρίζεστε τον διακομιστή σας από το CLI, εκτελέστε το σενάριο 'jboss-cli.sh' από τον κατάλογο 'bin' που προσφέρει τις ίδιες δυνατότητες που είναι διαθέσιμες μέσω του UI που βασίζεται στο web.

[root@tecmint bin]# cd bin
[root@tecmint bin]# ./jboss-cli.sh --connect
Connected to standalone controller at localhost:9999

Για περισσότερες πληροφορίες, ακολουθήστε την επίσημη τεκμηρίωση του WildFly 8 στη διεύθυνση https://docs.jboss.org/author/display/WFLY8/Documentation.

Διαβάστε επίσης : WildFly (JBoss AS) – Τρόπος πρόσβασης και διαχείρισης CLI χρησιμοποιώντας GUI