WildFly (JBoss Application Server) Βασικές Έννοιες


Στα δύο τελευταία μας άρθρα, είχαμε περάσει από την εγκατάσταση WildFly και, στη συνέχεια, τη διαχείριση του διακομιστή χρησιμοποιώντας την έκδοση GUI του CLI. Σήμερα, θα συζητήσουμε για τις βασικές έννοιες ή μπορείτε να πείτε όρους που χρησιμοποιούνται στο WildFly. Μπορείτε να διαβάσετε τα τελευταία δημοσιευμένα άρθρα μας στη διεύθυνση.

  1. WildFly – Μια νέα βελτιωμένη εγκατάσταση διακομιστή εφαρμογών JBoss
  2. Διαχείριση διακομιστή WildFly (JBoss AS) χρησιμοποιώντας την έκδοση GUI του CLI

Όσοι είναι ήδη εξοικειωμένοι με το Jboss AS, θα γνωρίζουν τη μεγάλη αλλαγή που εισάγεται στο Jboss AS 7.* και ως εκ τούτου στο WildFly. Η αλλαγή ήταν ο αρθρωτός σχεδιασμός, που σημαίνει ότι θα φορτώσει τις κλάσεις που απαιτούνται από την εφαρμογή αντί να φορτώσει όλες τις κλάσεις.

Ακολουθούν ορισμένοι από τους βασικούς όρους που χρησιμοποιούνται στο WildFly:

Λειτουργίες εκκίνησης

Η Wildfly εισήγαγε νέες λειτουργίες εκκίνησης. Έχει δύο τρόπους λειτουργίας που χρησιμοποιούνται για τη διαχείριση όλων των λειτουργιών διακομιστή.

  1. Ανεξάρτητη λειτουργία
  2. Λειτουργία τομέα

Και οι δύο αυτοί τρόποι χειρίζονται από τα δύο διαφορετικά σενάρια που παρέχονται στον κατάλογο "bin" της εγκατάστασης WildFly.

[root@tecmint bin]# ll -m1 standalone.sh domain.sh

domain.sh
standalone.sh

Αυτόνομη λειτουργία

Σε προηγούμενη έκδοση του Jboss AS 7.*, δηλαδή Εφαρμογή Jboss Διακομιστής 3, 4, 5< ή 6, όλα τα στιγμιότυπα jboss που εκτελούνται έχουν τη δική τους ξεχωριστή διαδικασία. Κάθε παρουσία θα έχει τη δική της κονσόλα διαχειριστή και άλλες λειτουργίες για τον έλεγχο της ίδιας.

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

Μπορούμε επίσης να σχηματίσουμε διαφορετικά συμπλέγματα HA όπως κάναμε με την προηγούμενη έκδοση, π.χ. 4, 5 ή 6.

Εκκίνηση του WildFly σε αυτόνομη λειτουργία

Μεταβείτε στον κατάλογο $JBOSS_HOME/bin και εκκινήστε το σενάριο standalone.sh από το τερματικό όπως φαίνεται παρακάτω. Εάν δεν καθορίσουμε καμία παράμετρο, τότε από προεπιλογή θα δεσμευτεί στη διεύθυνση επαναφοράς και θα χρησιμοποιήσει το αρχείο standalone.xml.

[root@tecmint bin]# ./standalone.sh
Δείγμα εξόδου
tecmint-VGN-Z13GN bin # ./standalone.sh
=========================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: java

  JAVA_OPTS:  -server -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

13:25:22,168 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:25:22,717 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
13:25:22,818 INFO  [org.jboss.as] (MSC service thread 1-3) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
13:25:24,287 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
13:25:24,310 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.0.Final
13:25:24,332 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.0.Final
13:25:24,486 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 33) JBAS010280: Activating Infinispan subsystem.
13:25:24,491 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 28) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
13:25:24,514 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.0.Final
13:25:24,573 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 39) JBAS012615: Activated the following JSF Implementations: [main]
13:25:24,575 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-3) JBAS010408: Starting JCA Subsystem (IronJacamar 1.1.3.Final)
13:25:24,587 INFO  [org.jboss.as.connector.deployers.jdbc] (MSC service thread 1-3) JBAS010417: Started Driver service with driver-name = h2
13:25:24,622 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 41) JBAS011800: Activating Naming Subsystem
13:25:24,691 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 46) JBAS013171: Activating Security Subsystem
13:25:24,707 INFO  [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
13:25:24,708 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-3) JBAS015400: Bound mail session [java:jboss/mail/Default]
13:25:24,737 INFO  [org.jboss.as.security] (MSC service thread 1-1) JBAS013170: Current PicketBox version=4.0.20.Final
13:25:24,754 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 50) JBAS015537: Activating WebServices Extension
13:25:24,800 INFO  [org.wildfly.extension.undertow] (MSC service thread 1-4) JBAS017502: Undertow 1.0.0.Final starting
13:25:24,800 INFO  [org.wildfly.extension.undertow] (ServerService Thread Pool -- 49) JBAS017502: Undertow 1.0.0.Final starting

Σημείωση : Μπορείτε να χρησιμοποιήσετε την επιλογή –b [IP] για να ξεκινήσετε τον διακομιστή με κάποια άλλη IP και να φορτώσετε κάποιο άλλο αρχείο διαμόρφωσης χρησιμοποιώντας -c [όνομα αρχείου διαμόρφωσης].

Λειτουργία τομέα

Αυτή είναι μια νέα ιδέα που εισάγεται στο AS-7.* . Με αυτήν τη νέα δυνατότητα στο WildFly-8, μπορούμε να διαχειριστούμε διαφορετικές παρουσίες από ένα μόνο σημείο. Αυτό μας βοηθά πραγματικά να συρρικνώσουμε σε ένα σημείο ελέγχου αντί να διαχειριζόμαστε πολλούς αυτόνομους διακομιστές.

Όλοι οι διακομιστές που διαχειρίζεται το Domain είναι γνωστοί ως μέλη του τομέα. Όλα τα μέλη του τομέα μπορούν να μοιράζονται την ίδια διαμόρφωση/ανάπτυξη. Αυτό είναι πραγματικά βολικό και χρήσιμο για περιβάλλον ομαδοποίησης.

Στη λειτουργία Domain μπορούμε να δημιουργήσουμε μια ομάδα διακομιστών και στη συνέχεια να προσθέσουμε αριθμό διακομιστών σε αυτήν την ομάδα. Με αυτό, ό,τι κάνουμε σε αυτήν την Ομάδα Διακομιστών, όλα θα αναπαραχθούν σε κάθε διακομιστή στις Ομάδες Διακομιστών.

Εκκίνηση του WildFly σε λειτουργία τομέα

Μεταβείτε στον κατάλογο $JBOSS_HOME/bin και εκκινήστε το σενάριο domain.sh από το τερματικό όπως φαίνεται παρακάτω.

[root@tecmint bin]# ./domain.sh
Δείγμα εξόδου
=========================================================================

  JBoss Bootstrap Environment

 JBOSS_HOME: "/data/wildfly-8.0.0.Final"

  JAVA: java

  JAVA_OPTS: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true

=========================================================================

13:30:33,939 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
13:30:34,077 INFO  [org.jboss.as.process.Host Controller.status] (main) JBAS012017: Starting process 'Host Controller'
[Host Controller] 13:30:34,772 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final
[Host Controller] 13:30:34,943 INFO  [org.jboss.msc] (main) JBoss MSC version 1.2.0.Final
[Host Controller] 13:30:34,999 INFO  [org.jboss.as] (MSC service thread 1-4) JBAS015899: WildFly 8.0.0.Final "WildFly" starting
[Host Controller] 13:30:35,689 INFO  [org.xnio] (MSC service thread 1-1) XNIO version 3.2.0.Final
[Host Controller] 13:30:35,692 INFO  [org.jboss.as] (Controller Boot Thread) JBAS010902: Creating http management service using network interface (management) port (9990) securePort (-1)
[Host Controller] 13:30:35,701 INFO  [org.xnio.nio] (MSC service thread 1-1) XNIO NIO Implementation Version 3.2.0.Final
[Host Controller] 13:30:35,747 INFO  [org.jboss.remoting] (MSC service thread 1-1) JBoss Remoting version 4.0.0.Final
[Host Controller] 13:30:35,817 INFO  [org.jboss.as.remoting] (MSC service thread 1-2) JBAS017100: Listening on 127.0.0.1:9999
^C13:30:36,415 INFO  [org.jboss.as.process] (Shutdown thread) JBAS012016: Shutting down process controller
13:30:36,416 INFO  [org.jboss.as.process.Host Controller.status] (Shutdown thread) JBAS012018: Stopping process 'Host Controller'
[Host Controller] 13:30:36,456 INFO  [org.jboss.as] (MSC service thread 1-2) JBAS015950: WildFly 8.0.0.Final "WildFly" stopped in 19ms
[Host Controller] 
13:30:36,476 INFO  [org.jboss.as.process.Host Controller.status] (reaper for Host Controller) JBAS012010: Process 'Host Controller' finished with an exit status of 130
13:30:36,476 INFO  [org.jboss.as.process] (Shutdown thread) JBAS012015: All processes finished; exiting

Κάτι άλλο που θα παρατηρήσετε τη διαφορά μεταξύ του αριθμού των υπηρεσιών που ξεκίνησαν σε αυτόνομη λειτουργία (183 out 0f 232) και στη λειτουργία τομέα (207 από 255).

Μια άλλη πιο σημαντική διαφορά μεταξύ της λειτουργίας Standalone και της λειτουργίας Domain είναι η εντολή εκκίνησης που χρησιμοποιείται στο σενάριο εκκίνησης. Σε αυτόνομο, το σημείο εισόδου είναι "org.jboss.as.standalone " ενώ στη λειτουργία τομέα το σημείο εισόδου είναι "org.jboss.as.process-controller". Παρακάτω είναι το σχήμα που δείχνει τη λογική σχέση μεταξύ διαφορετικών διεργασιών.

Στη λειτουργία τομέα, πρώτα θα ξεκινήσει ο ελεγκτής διεργασιών και θα δημιουργήσει μια νέα διαδικασία που ονομάζεται Ελεγκτής κεντρικού υπολογιστή. Αυτή η διαδικασία Host Controller θα είναι υπεύθυνη για το χειρισμό πολλών διακομιστών εντός διαφορετικών ομάδων διακομιστών. Ένα άλλο σημείο που πρέπει να σημειωθεί ότι κάθε διακομιστής θα έχει τη δική του διαδικασία JVM.

Αυτό είναι όλο για τώρα! Στο προσεχές άρθρο μας θα δείξουμε διαφορετικούς τρόπους υλοποίησης ανάπτυξης στο WildFly. Μέχρι, τότε μείνετε συντονισμένοι και συνδεδεμένοι με την Tecmint και μην ξεχάσετε να δώσετε τα πολύτιμα σχόλιά σας στην παρακάτω ενότητα σχολίων.