soul閘道器學習ip埠探活

2021-10-18 07:37:13 字數 1290 閱讀 1720

soul-admin端 upstreamcheckservice#setup()啟動載入後初始時候從db查詢出來放入upstreammap

/**

* setup selectors of divide plugin.

*/@postconstruct

public void setup()}

}if(check)

}

建立乙個定時任務,迴圈check方法

successlist 承裝通過check的上有資料,如果發生資料變化更新更新upstrammap的資料,並且更新db 同時發布變更資料事件,閘道器側訂閱該事件之後進行記憶體資料的變更

private void scheduled()}

private void check(final string selectorname, final list upstreamlist)

, host: {} ", divideupstream.getupstreamurl(

), divideupstream.getupstreamhost());

} successlist.add(divideupstream);}

else

is fail ", divideupstream.getupstreamurl());

}}if(successlist.size(

)== upstreamlist.size(

))if

(successlist.size(

)> 0)

else

}

private void updateselectorhandler(final string selectorname, final list upstreams)

else

; // publish change event.

eventpublisher.publishevent(new datachangedevent(configgroupenum.selector, dataeventtypeenum.update,

collections.singletonlist(selectordata)));

}}

探檢測具體實現,ip+埠如果建立鏈結成功則通過upstreamcheckutils#checkurl

Soul閘道器中的Http服務探活

服務探活機制是為了發現系統中上下游服務的的狀態。當有新的服務註冊時要通知其他系統,當有服務下線時也要告知其他系統。soul閘道器中有對http服務處理的探活,所有的服務物件儲存在soul admin的upstream map中,這裡面的服務物件有兩個 乙個來自於原有的資料庫,乙個來自於其他服務的註冊...

soul閘道器學習筆記二

目錄 web專案如何引入soul閘道器 壓力測試 第二天學習分析 總結 相關使用文件可參考官方文件 今天是學習soul閘道器的第二天,今天的目標是使用soul專案提供的http例子,學會如何在業務專案中引入使用soul。在soul專案裡面有個子模組 soul examples,官方例子。其中http...

Soul閘道器原始碼學習05

soul web基於webflux 可以使用netty作為應用伺服器,eventloop 可以說是netty的排程中心,負責事件的監聽 i o事件 訊號事件 channelpipeline 事件處理鏈,channelhandler事件處理。相對於channelpipeline 而言netty事件分為...