Skip to main content

JON - JBoss Operations Network 到底是什麼?

最近因為EJB 2 MDB 跟 MQ 搞得焦頭爛額,腦子裡面只有掛著它,
沒錯~你沒有看錯!就是EJB 2 那個老爺爺! 像我一樣的年輕妹妹(笑),最討厭他了!
加上婚禮的事情又一直煩! 所以很久沒有更新!

放心好了! JBoss 365 還是會繼續的! 欠的文章我也會慢慢找機會補上


這次的安裝是應觀眾要求的,特別POST 上來!請笑納!
===========================================

要安裝JON 前必須先瞭解JON 是蝦米~
為什麼要叫 JON J老闆的老婆咧! 因為,JON 就是專門管理,監控J老闆的!


她主要的功能分成三大塊!

1. 部署
2. 管理
3. 監控



部署,可以是字面上的意義,單純的部署應用程式的WAR or EAR, 你可能會想說,這個我用web console 就可以做到了阿? 其實它可以做到的不止如此, 

1. 她可以做部署時程的預約, 這樣她就可以在你睡夢中不知不覺搞定J老闆
2. 她支援版本控管,只要是透過JON上的程式,都會被記錄起來,標成version, 所以你可以看狀況,馬上退回某個版本(譬如說,某天XX上的一個程式,不小心自己欣賞的照片也放上去!,所以需要馬上還原 XD)
3. 不只是上程式,她也支援可以安裝Datasource 跟 J老闆噢!
4. 可以同時指定多台Server 上線

管理,其實J老闆不太需要太多悉心的呵護就可以長得很好了!除了一些定期地調整之外,只要上面的AP 沒有做出太多"發神經"的程式,通常都可以很穩定。他的管理包括可以自動偵測連接的資源,像是.. 系統如果加了一個 J老闆,他馬上就可以偵測到。還有像是一些參數的調整,所有JMX上面可以做的function功能它也可以,像是 restart server, Flush connection 類的。

監控,這是JON其中一個還滿好用的功能,通常我們要"修理" 哈,應該是管理J老闆的時候,都需要調整一些參數,但是,你怎麼知道要調整些什麼呢?例如說,我的MAX memory and perm memory 要調多少? 我的connection 數量是否太多,還是太少? 我的GC policy 是否是對的? 這些都可以透過JON 它顯示的圖表去看到目前 Free memory , GC 和connection 的狀況! 還有通知系統,可以在系統掛掉前Alert 你!
(然後趕快把電話關掉,讓老闆找你不到 XD 大誤~)

JON 的系統架構
=================================================



就跟一般的老婆一樣,JON 的架構就是一個收集情報的中心加上然後放在各個不同的環境(機器)上的死拜(SPY) 把資料收集給情報系統。 情報中心有一些工作,像是 Restart Server, 部署
程式那類的就可以透過各個死敗在每個地方執行!....

多麼簡單明瞭阿!以上就是J老闆的好牽手,JON 的簡單說明!

Comments

Popular posts from this blog

Red Hat Fuse - Announcing Fuse 7 Tech preview 3 release.

Red Hat Fuse 7.0 technical preview three is out today! On the pathway to become one of the best cloud-native integration platform, Fuse gives developer freedom to choose how they want to develop the integration solution, where they want to deploy it and capabilities to address new integration personas that do not have development experience.
By supporting the three major runtime, developer is free to work on the runtime of their choice.By supporting standalone and cloud deployment, it simplifies the complexity to distinguish between these environments, allowing application to deploy freely among the environment of your choice. All levels of developers are welcome, you can either dive deep into creating customize complex integration logic, or using the new low code platform to quickly build a simple integration. In this Tech Preview release you get it all.
Fuse StandaloneSpring-boot for microserviceKaraf 4 for OSGi loverJBoss EAP for JavaEE developersFuse on OpenShiftPlugins for easy co…

JBoss EAP 6 - 效能調校 (一) DataSource 的 Connection Pool

效能沒有什麼Best Practice, 反正能調整的就那些。 通常,一個程式的效能大概有70-80% 都跟程式怎麼寫的其實比較有關係。

最近我最疼愛的小貓Puji 因為膀胱結石開刀的時候過世了,心情很差請原諒我的口氣沒有很好,也沒有心情寫部落格。

Puji R.I.P.

=======================正文=======================

這個題目很多人叫我寫,可是這題目好大,這分明就是整死我咩~
所以我會分幾段慢慢寫。

JBoss 的 SubsystemDatasource WebWeb Service EJB Hibernate JMSJCAJVM 調校OS (作業系統)

先來看一下 DataSource Subsystem, DataSource 的部分主要是針對Connection Pool 做調校。

通常,程式都會需要跟資料庫界接,電腦在本機,尤其是在記憶體的運算很快,但是一旦要外部的資源連接,就是會非常的耗資源。所以現在的應用程式伺服器都會有個Pool 放一些先連接好的 資料庫connection,當程式有需要的時候就可以馬上提供,而不用花那些多餘的資源去連接資料庫。

這就是為什麼要針對Connection Pool 去做調校。

以下會討論到的參數,都是跟效能比較有關係,Datasource 還有很多參數,像是檢核connection 是否正確的,我都不會提到。如果你追求的是非常快速的效能,那我建議你一個檢核都不要加。當然,這樣就會為伺服器上面執行的程式帶來風險。這就是你要在效能與正確,安全性上面的取捨了。 (套句我朋友說的話,不可能又要馬兒好,又要馬兒不吃草的..)

最重要的調校參數就是 Connection 的 Pool 數量。(也就是那個Pool 裡面要放幾條的connection.) 這個參數是每一個應用程式都不一樣的。

min-pool-size 

Connection Pool 最少會存留的connection 數量

max-pool-size 

Connection Pool 最多可以開啓的 connection 數量

prefill

事先將connection pool 裡面建立好min-pool-size 的connection.

我的建議是觀察一下平常程式要用到的量設定為 min-pool-size 。
加上…

Fuse - Contract First API Design with Apicurio and Fuse/Camel - Part One

This is part one of my two-article series that demonstrates the approach of implementing contract-first API design using Apicurioand Red Hat Fuse.

It covers how to create an OpenAPI standard document as the contract between API providers and consumers using Apicurio. It also shows how to quickly create mock tests using Red Hat Fuse.

There are two common approaches of creating these APIs.
Code FirstContract First Coming from a old time ESB developer, these are not new. We have been doing this forever. Before, it was the WSDL that define the contract of the service. we were doing a lot more code first, for me it's simply because it's much easier for me to write couple of Java classes and generate the WSDL for my consumer. 

It's often pretty straightforward if the consumer of your application has finalized how they want the service to be like. But you and I all know this is not often the case. So I had to go back to my code, and make the changes accordingly and pray I did not …