jcs

JCS是Jakarta的項目Turbine的子項目。它是一個複合式的緩衝工具。可以將對象緩衝到記憶體、硬碟。具有緩衝對象時間過期設定。還可以通過JCS構建具有緩衝的分散式構架,以實現高性能的套用。對於一些需要頻繁訪問而每訪問一次都非常消耗資源的對象,可以臨時存放在緩衝區中,這樣可以提高服務的性能。而JCS正是一個很好的緩衝工具。緩衝工具對於讀操作遠遠多於寫操作的套用性能提高非常顯著。

日本昏迷標準(JCS)

JCS:The Japan Coma Scale (JCS) can be used to evaluate a patient with impaired consciousness.

JCS:日本昏迷標準(JCS),用於評估患者受損的意識水平。

Parameters:(1) consciousness level(2) restlessness(3) incontinence of urine and/or feces

參數:(1)意識水平(2)煩躁情況(3)大小便失禁

Jalowiec應對量表(JCS)

Jalowiec應對量表(JCS),由Jalowiec於1984編制,包括40個條目,發展該量表的目的是為高血壓和急診患者應對方式的研究提供工具,也可用於一般人群應對行為的研究。

計算機用語

JCS的特性

JCS除了簡單的將對象緩衝在記憶體中以外,還具有幾個特性,以適應企業級緩衝系統的需要。這些特性包括時間過期、索引式硬碟緩衝、並行式的分布緩衝等。

記憶體緩衝

JCS現在支持兩種記憶體緩衝算法LRU和MRU。通常都是使用LRU算法。

org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache

使用記憶體緩衝區需要定義緩衝區大小,當超過緩衝區限制時,會將緩衝內容拋棄掉。如果有配硬碟緩衝,則將擠出來的緩衝內容寫入硬碟緩衝區。

時間過期

JCS對於緩衝的對象,可以設定緩衝過期時間,一個對象在緩衝區中停留的時間超過這個時間,就會被認為是“不新鮮”而被放棄。

索引式硬碟緩衝

一方面,為了避免緩衝區過大,撐爆虛擬機的記憶體,另一方面又希望能夠緩衝更多的對象,JCS可以將超出緩衝區大小的對象快取到硬碟上。配置上也比較方便,只需要指定緩衝臨時檔案的存放目錄位置。硬碟緩衝將緩衝對象的內容寫到檔案上,但是將訪問索引保存在記憶體中,因此也能夠達到儘可能高的訪問效率。

並行式的分布緩衝(Lateral)

通常,將對象緩衝在記憶體中,一方面提高了套用的性能,而另一方面卻使得套用不可以分散式發布。因為假設一個套用配置在兩台伺服器上並行運行,而兩台伺服器單獨緩衝,則很容易導致兩個緩衝區內容出現版本上的不一致而出錯。一個機器上修改了數據,這個動作會影響到本地記憶體緩衝區和資料庫伺服器,但是卻不會通知到另一台伺服器,導致另一台上緩衝的數據實際上已經無效了。

並行式的分布緩衝就是解決這個問題。可以通過配置,將幾台伺服器配成一個緩衝組,組內每台伺服器上有數據更新,會橫向將更新的內容通過TCP/IP協定傳輸到其他伺服器的緩衝層,這樣就可以保證不會出現上述情況。這個的缺點是如果組內的並行的伺服器數量增大後,組內的數據傳輸量將會迅速上升。這種方案適合併行伺服器的數量比較少的情況。

Client/Server式的緩衝(Remote)

客戶/服務端式的緩衝集群。這種方式支持一個主伺服器和最高達到256個客戶端。客戶端的緩衝層會嘗試連線主伺服器,如果連線成功,就會在主伺服器上註冊。每個客戶端有數據更新,就會通知到主伺服器,主伺服器會將更新通知到除訊息來源的客戶端以外的所有的客戶端。

每個客戶端可以配置超過一個伺服器,第一個伺服器是主伺服器,如果與第一個伺服器連線失敗,客戶端會嘗試與備用的伺服器連線,如果連線成功,就會通過備用伺服器與其他客戶端對話,同時會定期繼續嘗試與主伺服器取得連線。如果備用伺服器也連線失敗,就會按照配置順序嘗試與下一個備用伺服器連線。

這種方式下,更新通知是一種輕量級的,一個機器上的數據更新,不會把整個數據傳輸出去,而只是通知一個ID,當遠程的其他機器收到更新通知後,就會把對應ID的緩衝對象從本地的記憶體緩衝區中移除,以保證不會在緩衝區內出現錯誤數據。

這種構造需要分別配置客戶端和伺服器,配置比較麻煩。

配置方法

JCS的好處之一,就是套用在開發的時候,可以不用去構思底層的緩衝配置構架。同一個套用,只需要修改配置,就可以改變緩衝構架,不需要修改套用的原始碼。配置方法也比較簡單,就是修改配置檔案cache.ccf。這個檔案放置在WEB-INF/classes目錄下。配置格式類似log4j的配置檔案格式。下面介紹一下使用各種緩衝結構的配置方法。

記憶體緩衝

#WEB-INF/classes/cache.ccf(以下內容不要換行)

jcs.default=

jcs.default.cacheattributes=org.apache.jcs.engine.CompositeCacheAttributes

jcs.default.cacheattributes.MaxObjects=1000

jcs.default.cacheattributes.MemoryCacheName=org.apache.jcs.engine.memory.lru.LRUMemoryCache

上面配置了默認緩衝屬性。一個套用中,由於對象類型的不同,可能會使用多個緩衝區,每個緩衝區都會有一個名字,如果在配置檔案中沒有指明特定的緩衝區的屬性,所有的緩衝區都會根據默認屬性來構建。上面的內容,指明緩衝區的大小為存放1000個對象,記憶體緩衝器使用LRUMemoryCache對象。可選的還有MRUMemoryCache,應該可以自定義新的記憶體緩衝區。1000個緩衝對象這個容量,是指每個緩衝區都緩衝1000個,而不是指所有緩衝區總容量。以上配置,就可以讓套用運行起來。

時間過期

如果需要引入時間過期機制,則需要加上

jcs.default.cacheattributes.cacheattributes.UseMemoryShrinker=true

jcs.default.cacheattributes.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.default.cacheattributes.cacheattributes.ShrinkerIntervalSeconds=60

這裡指明對象超過3600秒則過期,每隔60秒檢查一次。

索引式硬碟緩衝

索引式硬碟緩衝是輔助緩衝的一種,使用時需要做以下事情

#定義一個硬碟緩衝區產生器(Factory),取名為DC

jcs.auxiliary.DC=org.apache.stratum.jcs.auxiliary.disk.indexed.IndexedDiskCacheFactory

jcs.auxiliary.DC.attributes=org.apache.stratum.jcs.auxiliary.disk.indexed.IndexedDiskCacheAttributes

jcs.auxiliary.DC.attributes.DiskPath=g:/dev/jakarta-turbine-stratum/raf

#這裡其實就是指明了緩衝檔案存放到那裡去。

然後,做以下修改

jcs.default=DC

這樣,所有未特別指定屬性的緩衝區都會自己使用一個硬碟緩衝區,緩衝檔案會以緩衝區的名字來命名。存放在指定的目錄下。

橫向式的並行緩衝

並行式的配置如下

jcs.auxiliary.LTCP=org.apache.jcs.auxiliary.lateral.LateralCacheFactory

jcs.auxiliary.LTCP.attributes=org.apache.jcs.auxiliary.lateral.LateralCacheAttributes

jcs.auxiliary.LTCP.attributes.TransmissionTypeName=TCP

jcs.auxiliary.LTCP.attributes.TcpServers=192.168.10.129:1121,192.168.10.222:1121

jcs.auxiliary.LTCP.attributes.TcpListenerPort=1121

jcs.auxiliary.LTCP.attributes.PutOnlyMode=false

這裡的配置是在41,129,221三台機器上實現並行緩衝的。

大家都在1121連線埠上監聽,同時與另外兩台機器連線。如果連線失敗,就會等待一個時間後再連線一次,直到連線成功為止。三台機器中任意一台的緩衝區發生更新,比如put和remove動作,就會把更新傳遞給另外兩台。

單獨指明某個緩衝區的屬性

如果,針對某個緩衝區,比如叫做TestCache1,需要單獨配置屬性,可以如下配置。

jcs.region.testCache1=DC,LTCP

jcs.region.testCache1.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes

jcs.region.testCache1.cacheattributes.MaxObjects=1000

jcs.region.testCache1.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache

jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true

jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600

jcs.region.testCache1.cacheattributes.ShrinkerIntervalSeconds=60

system.GroupIdCache

這個概念我也不是很清楚。不過JCS文檔中指出配置以下內容會比較好。

jcs.system.groupIdCache=DC

jcs.system.groupIdCache.cacheattributes=org.apache.stratum.jcs.engine.CompositeCacheAttributes

jcs.system.groupIdCache.cacheattributes.MaxObjects=10000

jcs.system.groupIdCache.cacheattributes.MemoryCacheName=org.apache.stratum.jcs.engine.memory.lru.LRUMemoryCache

這可能是JCS自己的組管理體系上的緩衝區。

Client/Server式的緩衝(Remote)

這種構架需要單獨配置客戶端和服務端。

金和jcs

套用平台

金和協同平台套件系統(JAVA Collaboration System 以下簡稱JCS)是金和軟體擁有自主智慧財產權的、基於J2EE框架的協同軟體系統。它以集團企業協同辦公管理為核心,在滿足企業部門辦公業務處理和個性化功能要求的基礎上,實現信息共享和協同工作,通過統一安全的接口系統,實現各機構和各部門業務之間的高效協同,最終形成一個大型分散式的協同辦公套用平台。

設計理念

金和JCS採用“協同平台”的設計理念,基於J2EE框架,套用SOA/MVC的設計模式,運用了大量先進的諸如Ajax、RSS等web2.0的技術,增強了系統的柔性和開放性,並在智慧運算、高並發、高性能方面實現了重大的技術突破,從而實現了靈活擴展、隨需定製、易於整合的技術平台。金和JCS採用了業務模組松耦合的組件化設計思想,提供標準化的數據規範和API接口,具備強大的跨平台性,多樣的部署方式,滿足產品的功能擴展和跨系統的套用整合需求,從而滿足現代大型企業的支持集團化套用、多維度的許可權、大用戶以及集群式部署的需求。

相關詞條

相關搜尋

熱門詞條

聯絡我們