WildFly 8 - Linux için Yeni Geliştirilmiş JBoss Uygulama Sunucusu


Hepimizin bildiği gibi JBoss AS'in adı WildFly olarak değiştirildi. Pek çok yeni özellik eklendi ve birçoğu da geliştirildi. Sonunda WildFly 8.0.0 Finali 11 Şubat 2014'te yayınlandı. WildFly Projesi Başrol oyuncusu Jason Greene de aynısını duyurdu.

WildFly 8, Red Hat'in Java EE 7 uyumlu açık kaynaklı uygulama sunucusudur. Ana özellikler aşağıdaki gibidir:

Java EE 7 Uyumluluğu

Bundaki en büyük değişiklik artık WildFly 8'in resmi Java EE7 Sertifikalı olmasıdır.

Yüksek Performanslı Web Sunucusu

Undertow, Java ile yazılmış yeni yüksek performanslı web sunucusudur. Artık bu WildFly 8'de uygulanmıştır. Bu gerçekten yüksek verim ve ölçeklenebilirlik için tasarlanmıştır ve milyonlarca bağlantıyı yönetebilir. Undertow'un yaşam döngüsü tamamen yerleştirme uygulaması tarafından kontrol edilir. Bu, 1 MB boyutunda çekirdek kavanozu ve 4 MB'tan daha az yığın alanı kullanan yerleşik sunucusuyla son derece hafiftir. Bu gerçekten harika.

3 Bağlantı Noktası Azaltma

HTTP'nin Yükseltilmesini destekleyen Undertow'u kullandığından, birden fazla protokolün tek bir HTTP bağlantı noktası üzerinden çoğullanmasına olanak tanır. WildFly 8 neredeyse tüm protokollerini iki HTTP bağlantı noktası üzerinden çoğaltılacak şekilde taşıdı: biri yönetim, diğeri ise uygulama bağlantı noktası. Bu gerçekten büyük bir değişiklik ve tek bir sunucuda yüzlerce hatta binlerce örneği çalıştıran bulut sağlayıcıları (OpenShift gibi) için fayda sağlıyor. Toplamda, yapılandırma için iki varsayılan bağlantı noktası vardır ve bunlar 9990 (Web Yönetim Konsolu) ve 8080'dir (Uygulama Konsolu).

Yönetim Rolü Tabanlı Erişim Kontrolü ve Denetimi

Bu, WildFly 8'de uygulanan yeni ve ilginç şeydir. Bunu kullanarak farklı kullanıcılar oluşturabilir ve bunları gereksinimlere göre farklı rollere atayabiliriz. Daha sonra ekran görüntüleri ile göstereceğim.

Kerestecilik

Yönetim API'si artık bir sunucudaki mevcut günlük dosyalarını listeleme ve görüntüleme özelliğini desteklemektedir. Artık, konteyner günlüğünü atlamak istediğimiz her türlü dağıtım için "add-logging-api-bağımlılıkları" adı verilen özniteliğimiz var. Bu, örtülü sunucu günlüğü bağımlılıklarının eklenmesini devre dışı bırakacaktır. Başka bir seçeneğimiz daha var, yani günlük kaydı alt sistemini hariç tutmak için jboss-deployment-structure.xml kullanabiliriz. Bunu kullanmak, günlük kaydı alt sisteminin herhangi bir dağıtımdan geçmesini durdurmaya yardımcı olacaktır.

Bir dağıtım içinde günlüğe kaydetme yapılandırma dosyalarının işlenmesini etkinleştirmek/devre dışı bırakmak için başka bir parametreyi, yani use-deployment-logging-config'i de kullanabiliriz.

Not: Günlük kaydı başına devre dışı bırakmak için kullandığımız Sistem Özelliği bu sürümde kullanımdan kaldırıldı.

Kümeleme

Yine Büyük değişim tek bir kümelenmedir. WildFly 8'de Kümeleme desteğiyle ilgili tüm Özellikler değiştirilmiştir ve bunlar aşağıdakileri içermektedir:

  1. Dağıtılmış web oturumu, yeni Java Tabanlı Web Sunucusu, yani Undertow ile optimize edildi.
  2. Undertow için mod_cluster desteği.
  3. Undertow için Optimize Edilmiş Dağıtılmış SSO (Tek Oturum Açma) yetenekleri ve desteği.
  4. Yeni/optimize edilmiş dağıtılmış @Stateful EJB önbellekleme uygulaması.
  5. WildFly 8 bazı yeni genel kümeleme API'lerini ekledi.
  6. Tekil hizmetler oluşturmak için yeni genel API'ler sağlar.
CLI İyileştirmeleri

CLI Yapılandırması da geliştirildi. Tüm yöneticilerin CLI üzerinde çalışmayı sevdiğini biliyorsunuz;). Böylece, artık belirli bir sunucu için takma ad oluşturabilir ve daha sonra connect komutunu kullanarak o sunucuya bağlanmak istediğimizde bu takma adı kullanabiliriz.

WildFly 8'de hâlâ pek çok geliştirme ve güncelleme yapılıyor. Tüm bunları şu adresten kontrol edebilirsiniz:

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

WildFly 8'in Linux'a Kurulumu

Kuruluma geçmeden önce sisteminizde Java EE 7'nin kurulu olduğundan emin olun. WildFly 8 önceki revizyonlarla çalışmayacaktır. Java EE 7'yi Linux sistemlerine kurmak için lütfen aşağıdaki kılavuzu takip edin.

  1. JDK/JRE 7u25'i Linux'a yükleyin

Adım 1: WildFly 8'i İndirme

En son WildFly zip dosyasını indirmek için aşağıdaki bağlantıyı kullanın.

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

Doğrudan komut satırından indirmek için 'wget' komutunu da kullanabilirsiniz.

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

Zip dosyasını tercih edilen herhangi bir konuma kopyalayın (örneğin, benim durumumda '/data/') ve 'unzip' komutunu kullanarak çıkartın.

[root@tecmint]# cp wildfly-8.0.0.Final.zip /data/
[root@tecmint]# cd /data/
[root@tecmint data]# unzip wildfly-8.0.0.Final.zip

Adım 2: Ortam Değişkenlerini Ayarlama

Şimdi bazı ortam değişkenlerini ayarlayın. Bunları sistem bazında veya yapılandırma dosyalarınız içinde ayarlayabilirsiniz. Burada 'bin' klasöründeki standalone.sh ve standalone.conf yapılandırma dosyalarının içine ayar yapıyorum.

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

Aşağıdaki iki satırı standlone.sh/standlone.conf dosyalarına ekleyin. Lütfen WildFly kurulum konumunuzu ve Java Home konumunuzu belirtin.

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

Not: Tüm sistem için bunu '/etc/profile' dosyası altında ayarlayabilirsiniz.

3. Adım: WildFly 8'i Başlatma

Şimdi sunucuyu başlatın, yani bağımsız mod için 'standalone.sh' kullanın ve alan adı modu için 'domain.sh' kullanın.

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

Ancak burada bağımsız modda başlıyorum. Varsayılan olarak 'standalone.xml' dosyasıyla başlar, ancak '–server-config' seçeneğini kullanarak başka bir yapılandırmayla da başlayabilirsiniz.

Aşağıdaki gibi ‘standalone-full-ha.xml’ ile sunucuyu başlatıyorum ve bu dosya “$JBOSS_HOME/standalone(profile)/configuration/” içerisinde mevcut.

[root@tecmint bin]# ./standalone.sh --server-config standalone-full-ha.xml
Örnek Çıktı
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. Adım: WildFly 8'e Erişim

Artık tarayıcınızı, sizi Hoş Geldiniz Ekranına götürecek olan 'http://localhost:8080' (varsayılan yapılandırılmış http bağlantı noktası kullanılıyorsa) adresine yönlendirebilirsiniz.

Buradan WildFly topluluk dokümantasyon kılavuzlarına ve gelişmiş web tabanlı Yönetim Konsolu erişimine erişebilirsiniz.

Adım 5: WildFly 8'i Yönetme

WildFly 8, çalışan bulut sunucusunu yönetmek için iki yönetim konsolu sağlar:

    1. web tabanlı Yönetim Konsolu
    2. komut satırı arayüzü

Yönetim konsoluna bağlanmadan veya komut satırını uzaktan kullanmadan önce, bin klasöründeki 'add-user.sh' komut dosyasını kullanarak yeni bir kullanıcı oluşturmanız gerekecektir.

Daha sonra 'bin' dizinine gidin, add-user.sh'de 'JBOSS_HOME'u ayarlayın (eğer değişken sistem bazında ayarlanmamışsa) ve aşağıdaki gibi kullanıcı oluşturun.

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

Betiği başlattıktan sonra yeni bir kullanıcı ekleme süreci boyunca yönlendirileceksiniz:

Örnek Çıktı
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 . . .

Şimdi 'http://localhost:9990/console' adresinden web tabanlı Yönetim Konsoluna erişin ve Yönetim Konsoluna doğrudan erişmek için yeni oluşturulan kullanıcı adını ve şifreyi girin.

Giriş yaptıktan sonraki ilk ekran.

Sunucunuzu CLI'den yönetmeyi tercih ederseniz, aşağıdakileri sunan 'bin' dizininden 'jboss-cli.sh' komut dosyasını çalıştırın. aynı yetenekler web tabanlı kullanıcı arayüzü aracılığıyla da kullanılabilir.

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

Daha fazla bilgi için https://docs.jboss.org/author/display/WFLY8/Documentation adresindeki resmi WildFly 8 belgelerini takip edin.

Ayrıca Okuyun : WildFly (JBoss AS) – GUI Kullanarak CLI'ye Nasıl Erişilir ve Yönetilir