關(guān)于workerman-json-rpc接口不清楚做什么用的?
在項目中使用workerman-json-rpc,但是在啟動 集成了統(tǒng)計監(jiān)控模塊,發(fā)現(xiàn)有端口不清楚的地方,還請大俠賜教。
[attach]167[/attach]
上面紅框的接口是不太明白,接口的工作流程,也不清楚具體的作用。
先說下統(tǒng)計原理:
workerman_json_rpc 自帶一個分布式統(tǒng)計系統(tǒng)http://wtbis.cn/workerman-statistics,用來統(tǒng)計一些系統(tǒng)接口調(diào)用情況。
例如 請求量、耗時、成功率、錯誤日等等
統(tǒng)計上報流程是:
json_rpc處理每個請求都會記錄請求調(diào)用時刻、處理耗時、是否成功、出錯日志然后將這次請求的統(tǒng)計數(shù)據(jù)以udp的方式上報給本地的一個StatisticWorker進程(55656端口),StatisticWorker進程收到本地各個json-rpc進程的請求上報數(shù)據(jù)后在內(nèi)存中做整體統(tǒng)計(總調(diào)用量、整體耗時、總失敗量、失敗日志),內(nèi)存中的統(tǒng)計數(shù)據(jù)會每分鐘(或者緩存占用內(nèi)存量到達一定值)寫入磁盤。
統(tǒng)計數(shù)據(jù)查詢流程:
瀏覽器訪問任意一臺json-rpc服務(wù)器的55757端口,這個端口是http協(xié)議的webserver端口。
然后webserver會根據(jù)請求類型去各個json-rpc服務(wù)器的tcp的55858端口(statisticProvider進程),statisticProvider進程會把本地StatisticWorker進程寫入磁盤的統(tǒng)計數(shù)據(jù)返回給webserver。這樣webserver就有了所有服務(wù)器的統(tǒng)計數(shù)據(jù),然后做匯總展示。這里就是分布式統(tǒng)計系統(tǒng)實現(xiàn)的主要原理。也就是只要訪問一臺json-rpc的http端口,就能在瀏覽器中看到整個局域網(wǎng)的所有json-rpc服務(wù)器整體請求情況。
如何發(fā)現(xiàn)局域網(wǎng)內(nèi)各個json-rpc服務(wù)器?
統(tǒng)計系統(tǒng)中單獨啟動了一個55858的udp端口(StatisticFinder進程),用來接收webserver的udp廣播,當在統(tǒng)計界面中點擊探測數(shù)據(jù)源時,webserver會向本地局域網(wǎng)發(fā)送一個55858端口udp廣播,StatisticFinder進程收到這個udp廣播后會回復(fù)一條udp數(shù)據(jù),告知廣播者自己的存在,這樣webserver上就知道了局域網(wǎng)內(nèi)所有json-rpc的服務(wù)器ip,就知道了所有的statisticProvider的ip和端口(默認55858),也就可以得到整個局域網(wǎng)集群的統(tǒng)計數(shù)據(jù)了。
總結(jié):
1、StatisticWorker 是接收本地udp上報的進程,并把上報數(shù)據(jù)定時寫入磁盤
2、statisticProvider是提供本地磁盤統(tǒng)計數(shù)據(jù)的服務(wù),用于集中展示
3、StatisticFinder是用來接收udp廣播探測的進程,用于發(fā)現(xiàn)局域網(wǎng)內(nèi)的json-rpc服務(wù)器
4、StatisticWeb是用來展示統(tǒng)計的webserver