FacebookTwitterLineHatena

最近經常有做報表的朋友抱怨,報表開發實在太難了,不是因為自己技術不行,而是要面對的“內憂外患”太多了!業務人員“天馬行空”的需求是“外患”,他們常常冷不防就甩出一堆想法,告訴開發人員:“就照這個做吧”。開發一次報表往往兩三天就過去了,碰上難題的話可能一個星期也搞不定。不僅如此,開發人員還要面臨著報表系統帶來的“內憂”:系統隔三差五就可能因為資料量過大當機,每次當機就造成報表平台停轉,報表系統停轉又造成了資料丟失,簡直是雪上加霜!這種日日擔驚受怕的心情想必大家都能感同身受。

今天做報表流的淚,都是當年報表工具選型時腦子進的水。只顧著價效比,卻小看了功能性和技術性。有沒有技術瓶頸、能不能預覽快取、有沒有叢集快取機制、會不會經常當機…這些問題對報表工作效率影響都是很大的。

FineReport作為一款技術成熟的報表工具,穩定性很強,基本不會出現上述問題。

你可能要問為什麼?那麼本文便來總結FineReport是通過哪些技術硬貨,從而成為了報表開發員最稱職的工作夥伴的!前方大量技術知識來襲,請準備好小本本做筆記唷!

一、Web叢集

什麼是叢集呢?簡而言之,就是同一個業務,部署在多個伺服器上。叢集的好處是什麼呢?很明顯,效率提高了!兩臺或多臺計算機的工作內容、過程等完全一樣,那麼就算一臺當機了,另一臺也可以起作用。

FineReport就是如此,基於叢集的橫向延伸性,通過增加節點數量實現併發線性增長。同時也可以用多個工程做備份,避免單機不可用導致系統停止造成的損失(業務中斷、資料/模板丟失),確保系統7*24h穩定執行。

報表系統技術特性-Web叢集
Web叢集

技術特性

1.高可用性

無主機模式,即使某一節點當機了,集群系統仍可正常提供服務;

節點當機後,自動切換其他節點,使用者無需重新登入;

2.高一致性

實時同步各節點間平台配置資訊和資原始檔修改更新;

智慧檢測各節點的jar包、插件版本,並能做到異常提醒。

3.強延伸性

基於良好的架構設計,Web叢集可以通過增加節點數量實現併發線性增長,從而獲得較高的併發支撐效能。

4.使用簡單

簡單視覺化配置,80%的配置都可在平台上完成;

支援熱部署,增加刪除節點無須重啟叢集,只需要拷貝節點檔案即可;

實時監控各節點的執行狀態,如記憶體使用情況。

二、Swift引擎

簡單來說,swfit就是一個支援分散式的資料庫,是帆軟自主開發的引擎。它可以全面提高日誌存取分析的效率,也能有效避免由於日誌過大導致系統過慢甚至當機。

Swift引擎
Swift引擎

技術特性

1.支援插入操作,資料插入後可以立即查詢到;

不同與以往需要匯入資料(生成cube全量更新,批量偽增量更新)才能查詢的cube,swift實現了另外一套資料結構,可以做到插入查詢零延遲。

2.海量資料支援,分散式平行計算;

主體功能理論上支援資料的無限增加。查詢只要結果集不超過單機的物理瓶頸即可。

3.高可用性,部分節點當機不影響系統的正常使用;

基於分散式的CAP原則,設計處理了swift分散式結構,做到了只要有任一節點在運轉中,那麼系統就能正常使用。

4.部署方便,外部依賴很少,可以簡單的直接啟動;

分散式基本功能幾乎不需要安裝額外的元件(用ftp就可以做共享儲存),直接啟動swift即可。

5.支援非對稱分散式,每臺節點可以單獨設定啟用的功能。

服務之間職責分工明確,互不干擾,可以按需啟用功能,比如匯入機器跟查詢機器分開,避免匯入資料時太佔資源影響查詢。

三、基於 JVM 底層原理的記憶體管理技術

這個技術就是提升穩定性的利器了!FineReport的開發團隊深入研究了 JVM GC 機制的底層原理,基於這些核心研究開發了一系列 JVM 記憶體檢測和調整的功能,幫助使用者維持FineReport長期穩定執行,有效降低、甚至杜絕了當機風險。

技術特性

1.基於 GC 事件的 JVM 精確可用記憶體狀態檢測;

2.記憶體負載較高時,適時地釋放和中止大模板會話;

3.基於系統實際執行負載推薦合適的記憶體配置;

報表系統技術特性-基於 JVM 底層原理的記憶體管理技術
基於 JVM 底層原理的記憶體管理技術

四、HTML解析技術

一般而言,當模板中存在「以html顯示內容」,列印匯出時就會出現問題。因為現在使用者開發的系統基本上趨向於BS架構的瀏覽器,這些系統可能由不同的語言(包括HTML、ASP、JSP、PHP等)開發。如果我們要將製作好的報表嵌入到這些頁面中,就要進行HTML解析,當你的工具中沒有這個技術的時候,就會出現上面的情況。

FineReport通過優化html解析器,徹底解決了HTML的顯示問題,實現了PDF、Excel、Word匯出的html解析。

五、大資料集匯出

大批量資料的匯出會對伺服器、網路傳輸、資料庫造成一定的壓力,由此產生了當機的風險。為了解決這個問題,FineReport推出了「大資料集匯出」功能,可直接根據資料集結果進行匯出。

此功能主要是針對明細表,它可以實現跳過報表計算直接取數匯出。

技術特性

1.使用SXSSFWorkbook流式行匯出,速度快;

2.使用生產者消費者模式,一個執行緒用於取數,把資料行存在佇列中,另一執行緒讀取行匯出;

報表系統技術特性-大資料集匯出
大資料集匯出
報表系統技術特性-大資料集匯出
大資料集匯出

總結

工具存在的意義就是解決問題。如果選對了報表工具,就是找對了工作夥伴,工作上有什麼難題都能配合解決。如果選錯了工具,可能報表工具本身就是問題,萬一系統不穩定然後當機了,那幾個小時的力氣可就白費了。

FineReport通過Web叢集、Swift引擎、基於 JVMTI 的增強記憶體管理技術、HTML解析技術以及大資料集匯出這五大技術硬貨,幫助報表開發人員解決各類複雜報表,並且能夠為企業快速搭建起資料平台,成為了報表工具的不二之選。

感謝閲讀!FineReport提供最全免費功能版本,不用等待,直接點擊以下按鈕激活&下載!
免費試用FineReport10.0>

獲得帆軟最新動態:數據分析,報表實例,專業的人都在這裡!加入FineReport臉書粉絲團

相關文章:
八大功能,FineReport幫你變成不加班的報表工程師?

Excel處理資料總崩潰?快來試試這款BI報表軟體!

喜歡這篇文章嗎?歡迎分享按讚,給予我們支持和鼓勵!

熱門文章推薦

立即試用,可獲取更多 報表範本和案例

免費試用