原创 (1)從ICE的對象講起

通信實體、通信信息、鏈路傳輸 從網絡節點層面看,網絡中的通信實體是以計算機爲單位。從tcp編程的角度看,通信實體是以socket爲單位。從ice的角度看,通信實體以對象爲單位。 ice認爲分佈式系統是由對象構成的,所以對分佈式系統

原创 (5)ICE通信器是幹嘛的

作用 在運行期間,ice框架爲了完全隔絕通信層對於客戶業務服務的影響,將通信層用到的所有資源都與客戶業務服務用到的資源完全隔離開來了。爲了完成這個目標,寫代碼進行封裝的時候,我們一般封裝一個資源管理類來對通信層所用的資源進行管理,

原创 consul

簡介 功能簡介 consul提供的服務主要包括服務發現、健康檢查、kv存儲、集羣管理、跨數據中心。 服務發現 服務發現本質就是個名字服務。就像共享內存,只要shmkey知道了,所有的進程都能夠訪問這塊內存的值。通過DNS和HTTP

原创 (6)最簡單的ICE例子

簡述 例子雖然短小,但是基本上反映了ICE對分佈式系統建模的思想和方法。結合以上6篇文章,應該就能夠輕鬆邁入ICE框架學習的大門,比起買《zero ice權威指南》那本坑人的書要好的多。 協議 #pragma once modul

原创 IM同步服務

設計概述 後臺同步方案的設計就是數據存儲結構的設計,如何快速體現“信息變化”,如何快速計算出“變化信息”。後臺數據存儲結構是由同步協議中同步契約決定的。 設計方案 該方案的同步是按照業務粒度來劃分,只需要同步sdk要求同步的數據。

原创 (4)ICE適配器帶來的好處

爲什麼需要適配器 在講解ice servant的章節中說到,服務端要想真正把服務提供給客戶,就要把ice servant和ice object聯繫起來,負責建立這種聯繫的東西就叫做ice適配器(adapter)。ice adapt

原创 (3)ICE服務員起到的作用

爲什麼叫服務員 Ice 對象是一種具有類型、標識、尋址信息的概念性實體。由此話可以得出的結論是Ice對象相當於通信協議,只是定義了一個通信的規範。也就是規定好了客戶想要的服務(函數調用),享受服務時需要提供的資料信息(函數參數),

原创 (8)ICE服務之網格計算模型

概述 ICE網格計算服務是一個相當複雜的服務,我只能說ICE這一套東西本身就非常的複雜,因爲它太想提供一套通用的分佈式框架了。在軟件設計領域裏,真的覺得凡是有這種提供“銀彈”想法的設計都是要出問題的。在生產上用這套ICE框架,真的

原创 vim最簡約配置

提供一個可以方便的在linux下查看源碼,並且學習成本低,使用複雜度低的vim配置。 不用插件的配置 如果你不想使用任何插件,那麼下面的配置基本上夠用。 ” 環境 set nocompatible ” 通用 set backgr

原创 簡單業務推薦排序算法

場景 用戶在進行搜索時,假設搜索出來的結果有B1,B2,B3…Bn類業務,每類業務分別有S1,S2,S3…Sn條推薦內容。在把各個業務展示給用戶時,需要把和用戶搜索關鍵詞“相關性”最高的業務放在前面。 原理 詞頻因子(Tf) Tf

原创 查詢方式設計

PL 優點 語言查詢提供的查詢接口比較靈活。靈活帶來的優點是不言而喻的,它應對未來業務的變化能表現出更好的可擴展性,而且給用戶提供的接口也更加簡潔。所謂簡潔是指完成複雜的查詢邏輯只需要少量的語句,說明PL的描述力比較強。 缺點

原创 分佈式系統節點設計

學習分佈式系統設計最好的例子就是TCP/IP協議,特別是其關於流量和擁塞控制的那部分簡直就是經典。這部分內容實現了在系統中的單個節點無法預知系統全局狀態的情況下,讓節點自適應系統整體狀態的方法。 節點感知系統整體狀態的主要思想就是

原创 分佈式事務

分佈式事務概念 業務的本質是對數據進行的操作,最終沉澱下來的就是數據,當然這些數據沉澱都是在某個確定的上下文條件下進行沉澱的。事務就是業務操作數據時的性質(一致性和原子性是基本,隔離性和持久性是方法)。分佈式事務指的就是事務是在分

原创 (9)ICE服務之發佈訂閱模型

概述 發佈訂閱模型在通信模型裏面也算是一個非常經典的模型了,它能夠將信息發送方和信息接收方的關係進行解耦,實現信息發送方和接收方的異步通信。

原创 同步異步和阻塞非阻塞

真正弄明白一個概念的語義,然後站在設計者的角度去改善這個語義的實現方式。如果你想走的更遠,那就跳出用這個概念來描述事物的條條框框,自己創造一套概念系統,用來描述這個領域的事物,解決這個領域的問題。 同步異步 按照分解法的認知,世界