A服務呼叫B服務中的某個方法,該方法操作了資料庫,兩個服務分別放在兩個不同的JVM上,我的理解是:A服務與B服務兩個各自的web容器會先建立tcp連接,即3次握手,建立連接后傳輸http資料,B服務的tomcat容器收到http請求后,tomcat將請求封裝為httprequest呼叫B服務的方法,該方法從資料庫中取資料,即B服務的JVM用戶空間發起一個read請求,向內核空間請求資料,內核空間通過DMA從磁盤中拿資料,然后放到內核空間的快取區,然后放到JVM用戶空間的快取區,然后回傳給JVM,自此,B服務就操作完資料庫了,拿到了資料S,然后把資料S 回傳給B服務的tomcat,tomcat把這個資料S封裝為http資料,回傳給A服務的tomcat,A服務的tomcat將S封裝為正常的資料回傳給A服務的JVM,自此,訪問結束。
請問,我的思路有沒有錯誤?現在是越想越懵,求解惑。。。。
兩個服務之間互動時產生IO應該就只有 操作資料庫 時 才會發生IO吧? 假設上面是dubbo應用,而不是springcloud, 那netty在這里起的作用是啥?
uj5u.com熱心網友回復:
簡單的方法就是用HTTP互動啊,服務互動不一定要涉及資料庫的,比如一個服務是某個演算法,另外一個服務去調這個演算法。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/157272.html
標籤:Java EE
下一篇:塊截斷編碼影像壓縮技術
