發表文章

目前顯示的是 6月, 2016的文章

以Hazelcast + Spring Session建立Cluster Web

Hazelcast 就像她首頁講的: 分散式計算的記憶體網格 ,簡單來說就是把資料分散放在各個伺服器的記憶體中;像 Hazelcast 類似的架構還有像 Redis 、 memcached 、 Infinispan …(網路上也可以找到很多的比較),那為什麼我選 Hazelcast 呢?很簡單,因為像 Redis 可以在伺服器單獨建置而無須Java,而 Hazelcast 則是採用Java開發,所以程式在單元測試開始時可以一併建置 Hazelcast ,而無須確認記憶體網格伺服器啟動後後再來進行測試,而且因為可隨程式一起建置,更方便開發者在不同的環境內進行測試(比如您下載我的程式,就可以直接執行了,除了Java環境外不須要再建置任何系統)。另外, Hazelcast 有Atomic與Transaction的機制,可適用於開發一些特殊的系統,例如:搶票系統( Hazelcast 支援AWS)。 由於記憶體網格的特性,所以Java Web程式有機會在不同的電腦中複製Session資料,從而實質上達到 Cluster Web。 以前要用Java 建立Cluster Web無疑是煩瑣與費用高昂,而現今仍然也是需要一些成本(近來像 Nginx 這種反向代理伺服器可以用Sticky的方式建立叢集,也就是把用戶各自分配到不同的機器,然後從此用戶就黏著到特定的機器,當然,除非您自己結合 nginx-sticky-module 來編譯 Nginx ,否則也是要花錢買她的商業版本才有提供,而社群版只提供Round Robin的方式將來自用戶的存取分配到各伺服器,但這樣就沒法Keep Session了); Hazelcast 的商業版本目前有提供Tomcat Cluster,而 Redis 目前也只提供Tomcat7的solution,那麼其它的 Web Server咋辦呢(JBoss有,但設定煩瑣)?所以 Spring Session 實做了各種不同Cluster儲存機制的Session Cluster,最棒的是我們根本不用改變我們的程式寫法,因為當我們使用 Session.setAttribute() 時, Spring Session 在背後已經將資料寫入到Cluster Memories了。 後面我要來實做Web Cluster,前提是在開發編譯要先有 Maven

在VirbualBox安裝 Remix OS

圖片
如何在VirbualBox安裝 Remix OS 以前常在Virtualbox上安裝 Android x86 ,但是現在有更好的替代品: RemixOS ( 下載 ),但是奇怪的是為什麼一直裝不起來,好在網路上有人分享了安裝方式,步驟如下: 參考來源: https://www.reddit.com/r/RemixOS/comments/40ahkc/is_it_possible_to_run_remix_os_on_virtualbox_if/ https://www.youtube.com/watch?v=q3FN0UaF4Yo https://gist.github.com/cs8425/7315d86a273e57a988245345df68a4f9 建立一個新的虛擬機,名稱填入您想要的名字,例如 “RemixOS”,類型選 Linux ,版本選 “Linux 2.x / 3.x / 4.x (64 bits)” 記憶體大小配置最好是 2048 MB 以上 立即建立虛擬硬碟,至少要 8 GB 這時還不要啟動機器 選擇 “設定值” > “存放裝置” > “控制器:IDE” > 選擇光碟機(沒有的話自行加入一個),然後選擇Remix OS 的安裝光碟 ISO檔案(目前用的是2016112101版) 把光碟機選項  “即時 CD/DVD” 打勾並確認(如果不打算讓虛擬機使用實體的DVD裝置,此步可跳過) 網路可選NAT,若是要給Remix固定IP則選擇橋接介面卡 啟動虛擬機會看到一開開機畫面 - 在它開始執行安裝前(只有3秒鐘的猶豫期)按 Tab 鍵,若是錯過的話,關閉虛擬機重來(注意,關閉時要選擇”機器關機”不要選到”儲存機器狀態”) 先把內容中的 quite SERIAL=random  logo.showlogo=1 SRC= DATA= CREATE_DATA_IMG=1 都先移除,敲入一個空白後繼續輸入”androidboot.hardware=remix_x86_64 INSTALL=1 DEBUG=”後按 Enter鍵(千萬不要漏了空白) 另外可加入 “vga=xxx” 指定 螢幕解析度 按向下鍵(↓)選擇 ”Create/Modify Part