在測試中發現。單程序中,批量處理資料,會導致通訊停滯。多執行緒並不能解決,所以採取 邏輯處理 和 通訊 分開兩個專案的方法。
連線這兩個 伺服器的 橋梁,選擇了 命名管道 通訊。
是的,他 比 socket 走tcp 的方式,更快 更安全,尤其是 大資料併發的時候,100倍socket也 不為過。
當然,他沒有 socekt流行,原因 不能 外網 訪問。不過在 伺服器之間的 傳輸 資料 中,卻能發揮 最大的優勢。
我的智慧型預判 分 4步驟
後台 資料通訊架構
前台 資料通訊架構
前台 模擬架構
後台 模擬架構
每塊架構 都是 需要 慢慢 完善的,沒有 優先順序 之分。
最後列出 命名管道 通訊 加 執行緒 的 demo。
usinglitjson;
using
system;
using
system.collections.generic;
using
system.io;
using
system.io.pipes;
using
system.linq;
using
system.security.principal;
using
system.text;
using
system.threading;
using
system.threading.tasks;
namespace
public
static
void threadmethod(object
data)
}//命名管道伺服器開啟
public
static
streamreader clientpipes()
}}
usinglitjson;
using
system;
using
system.collections.generic;
using
system.io;
using
system.io.pipes;
using
system.linq;
using
system.security.principal;
using
system.text;
using
system.threading;
using
system.threading.tasks;
namespace
static
void
feiserver()}}
} }
}
以上demo,我已經整合到通訊專案中了,邏輯這方面就不發給大家了。
智慧型預判 (三 布局加強)
同時增加心跳,用來同步 資料並 定時批量儲存資料庫。protected override void onstarted 規定時間 檢查一次心跳 public void theout object source,system.timers.elapsedeventargs e 定時器 作用,同步 儲存...
智慧型預判 (二 最初的布局)
不太會畫圖,先簡單看下 程式流程,他比 其他 伺服器 多了 乙個 單獨的 執行緒 內部資料庫 物理運算,也就是 他的運算 不需要 客戶端 時時給資訊。下面是 片段 var bootstrap bootstrapfactory.createbootstrap if bootstrap.initiali...
智慧型預判 (一 執行緒的開啟)
單執行緒模式,在大資料量 運算下,肯定效率 沒有 多執行緒快,所以,在設計初期,我就定下了 多執行緒方案。下面是 計畫 多執行緒方案的 幾個備選方式。一 單人 多執行緒 非同步併發方案。己方人物碰撞檢測 敵方 一條執行緒。敵方人物碰撞檢測 己方 一條執行緒。己方 子彈 碰撞檢測 敵方 一條執行緒。敵...