Skip to main content

Posts

Showing posts from July, 2012

JEAP 6 - Domain Mode 啟動

這還不是Cluster, 因為我想了一下講法, 如果一次寫太多,一來是太多東西要講了,我無從下筆。二來文章太長反倒不好找, 所以就先從 Domain 開始寫起!
如果你還不知道Domain 與 Standalone 的區隔,請先從先前的文章開始看起。

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

同先前的文章所講,J老闆負責Domain 的位置,理所當然地就是從
JB_INSTALL_PATH/domain 裡面去下手囉!


進入之後,要先看一下最重要個兩個XML 設定檔案

Domain Configuration  Host Configuration
Domain Configuration
修改的位置在domain.xml, 整個Domain 共用的設定都放在這裡,它主要是多個profile的組合。每個Profile會定義subsystem的設定。Subsystem 就是每個server instance 重要功能。
(這樣講好像繞口令,稍微來看一下XML)



至於各Profile 裡面的subsystem 設定,等以後有機會再寫吧。

Host Configuration
修改的位置在host.xml, 真正去定義跑在那台機器上的設定檔案。

接下來,要來真正啓動我們的Domain Server 了!
預設的方式如下,有兩台機器,每個機器各自起動 2-3個server, 由 77 (藍色) 那一臺當做為Domain Controller!





















1. 決定其中一台Host為Domain controller 
在啓動前,與Standalone 一樣,我們需要建立一個新的使用者!
JB_INSTALL_PATH/bin 下執行 add-user.sh
這次請選擇 a).
輸入 username 與 password



請記得最下面的 <secret value="">


2. 指定Server Group
我們這次有 3 個group, 每個都使用Profile "default"



3. 在Host one 設定每個Server 的單一設定與它所屬的Group



4.不要忘記把IP位置設定在interface 的位置


以上第一台Host 的設定就完成了!可以試著啓動看看!



可…

JEAP 6 - 使用 Standalone 建立 Cluster

今天是我的生日,但是還是沒得休息!

早上費德勒送我一個很棒的生日禮物,他又回到了世界冠軍,
奪得溫布頓的冠軍獎杯,一個有毅力,不放棄的人,上天是不會虧待他的!

既然這麼被激勵,那來寫寫J老闆文,
延續上次的話題,介紹了兩個不同的mode,
這兩個不同的mode也可以建立Cluster, 先來講Standalone 的方式,
(Domain mode 要抓很多圖檔,好麻煩 >x< 掙扎ing)
============================================

首先,要啓動JBoss 的Standalone 非常之簡單,簡單到你會以為我生日所以就隨便寫!

在這裡要有個觀念,在這個版本的JBoss 中,Cluster 中所有的設定都是跟ha 有關,
而Standalone 其實就是跟 ha 的設定相同。

Standalone, 如果是沒有特別給,default 的設定是抓
standalone/configuration/standalone.xml

看一下standalone/configuration/的裡面

[root@jboss1 configuration]# ls -l
總計 140
-rw-rw-r--. 1 root root   634 2012-05-30 04:49 application-roles.properties
-rw-------. 1 root root   812 2012-05-30 04:49 application-users.properties
-rw-rw-r--. 1 root root  2042 2012-05-30 04:49 logging.properties
-rw-------. 1 root root   916 2012-06-29 10:41 mgmt-users.properties
-rw-rw-r--. 1 root root 26554 2012-05-30 04:49 standalone-full-ha.xml
-rw-rw-r--. 1 root root 20672 2012-05-30 04:49 standalone-full.xml
-rw-rw-r--. 1 root root 20615 2012-05-30 04:49 standalone-ha.xml
-…

JEAP 6 - Standalone 與 Domain Mode 兩種不同的管理模式?

在進入Cluster 之前,就會提到有兩種設定的方式,
必須要在這之前先說明這兩種有什麼不同,這樣在選擇Cluster 的管理方式也會有比較清楚的認識。

Standalone Mode

並不是每個人都需要用到集中的管理模式,有許多小系統只需要跑在單一台instance 上即可,或是在本機開發程式時。使用Domain mode 好像有點殺雞用牛刀!

這裡要澄清的一點,Standalone 也可以設定為Cluster, 但它每個 Server instance 都是獨立的process, 所以管理的人員必須要自己去確認所有的 EAR, WAR 與設定在Cluster 的多個node上都是同步的.


Domain Mode

這是新的J老闆非常重要的里程碑,它終於開始支援統一集中的管理介面。以前也是可以做到,但是必須透過JON 才能做到,現在不用了!

它把一堆的Server定義成一個Domain, 透過一個單一的點,叫做Domain Controller 來管理上面所有的Server。 而Domain Controller 是透過 Host Controller 去管理每個Host 上面的server, 本身Domain Controller 也是經由指定Host Controller其中的一台選出來的!
這樣好像是繞口令, 還是用圖解的吧 !


Host每個實體機器的都稱作Host
Server每個單一的JBoss instance.
Host Controller每當一個Host有任何一個JBoss 啓動的時候,就會生出一個Host Controller, 這個 Host Controller 負責去啓動跟關閉這台機器上的其他JBoss instance, 接收Domain Controller 的管理指令去管理那幾台Server. 
(設定的地方在 domain/configuration/host.xml)
















Domain Controller 簡單來說,就是單一的管理窗口!透過他跟其他的Host 聯絡設定部署的內容!這樣使用者就不需要一臺一臺的管理!他其實也只是一臺Host Controller 拿來兼差當總管理員!
(設定的地方在 domain/configuration/Domain.xml)


Server Group 每個server 都屬於一個server group,但如果兩…

JEAP 6 - 加密Datasource的密碼,使用Picketbox 與 Vault

新版的JBoss 跟前一個J老闆的設定方式大致相同。可以利用Security Domain 去設定,或是新版的vault 功能!
不知道什麼是Security Domain? 
去拜拜Google 大神,精進對Java EE 的瞭解吧!
我覺得新的J老闆,有一個好處,就是你可以不用再去設定xml , 透過它的admin console 去設定,就可以了。
牢騷: 不過,我向來不太喜歡用太多GUI,至少也要懂得為什麼要設定吧!(絕對不是耍帥 XD)
在改GUI 的 哪些值?對應的位置,原理。
如果只是照著文件做,那頂多是個工匠,離大師的Level 還差得遠咧!
========================================================
設定這個之前,請先參考先前的設定Datasource的文章,確認安裝Datasource 是成功的!

新版的JBoss 把"幾乎"所有的設定都放到了 standalone.xml 與 domain.xml.
這邊使用standalone做 Example.

1. 設定DataSource 中的Security Domain.

JBoss 利用把加密後的ID 與 Password 放在Security Domain 裡面。
然後利用設定不同的login module 去解密密碼。


<datasource jta="false" jndi-name="java:jboss/datasource/PostgresDB" pool-name="PostgresDB" enabled="true" use-ccm="false">
     <connection-url>jdbc:postgresql://172.16.1.79:5432/postgres</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgres</driver>
<security>
<security-domain>Postgre…

JEAP 6 - 建立DataSource 連結

今天早上在捷運上習慣性地拿出手機想要滑滑~
結果發現~我忘記帶了!!!!!!
天啊!整段捷運我都不知道要幹嘛~好漫長的一段路程!
無法想象沒有iPhone 的世界了,哈哈! 本來想先作Cluster 的,但是因為設定JDBC 被追殺的比較勤! ======================================================== 環境: 因為我還沒裝Cluster, 所以目前一切以Standalone為主, 但是 Domain 跟 Standalone 的設定方式是一樣的!所以請自行帶入!!

DB:  當然是用Postgresql!  OS: Linux 

安裝 Datasource 主要有兩個步驟, A. 安裝JDBC Driver  B. 設定JNDI 連結
安裝JDBC Driver
有許多種的選擇 1. Hot Deployment  2. Module Drivers
1. Hot Deployment 的安裝方式最簡單,但也因為簡單,所以限制也比較大。 也是在開發的時候,最快速的做法,因為這種方式連設定都不用設定! 因為完全不用設定,它就會有一定的限制
❧ 因為需要Jar檔裡面META-INF 裡面metadata定義的Driver 名稱,而JDBC的Standard ㄧ直到4 才製定。(除了MySql 的 driver 之外應該都可以用,因為MySql 自稱沒有通過SQL 92 full compliance tests。)
❧ 不支援 XADataSourceClass
❧ 不支援多個jar檔的Driver,如,過你用Oracle 的時候,需要使用特殊語系用到orai18n.jar  這種plugin的雙jar檔就不行拉!

安裝方式,新版的JBoss 提供了許多介面讓使用者可以隨便自己喜歡的方式操作。
第一種,檔案直接傳輸 直接把jar檔 copy 進 $JBOSS_HOME/standalone/deployments 即可,這時,你會看到 下面的log, 就代表你已經安裝JDBC Driver 成功了!
[root@jboss1 tmp]# cp postgresql-9.1-902.jdbc4.jar /opt/jboss-eap-6.0/standalone/deployments/
[root@jboss1 tmp]# tail /opt/jboss-eap-6.0/…