我正在一個(gè)項(xiàng)目中,該項(xiàng)目具有一個(gè)發(fā)布者和一個(gè)訂閱者,并通過(guò)常規(guī)的TCP套接字連接進(jìn)行連接。發(fā)布者以一定的速率生成消息,通過(guò)套接字發(fā)送它們,然后訂閱者處理這些消息。沒(méi)有消息隊(duì)列,只有純TCP套接字連接。問(wèn)題在于,發(fā)布者中的套接字“寫”方法在調(diào)用時(shí)似乎花費(fèi)很長(zhǎng)時(shí)間,這降低了發(fā)布者可以發(fā)送數(shù)據(jù)的速度。我一直在閱讀有關(guān)套接字的內(nèi)容,可以想到可能導(dǎo)致這種情況的兩種情況:網(wǎng)絡(luò)不夠快,無(wú)法處理發(fā)送消息的發(fā)送速率。在這種情況下,我認(rèn)為應(yīng)該填充發(fā)布者上的套接字出站緩沖區(qū)。使用者處理消息的速度很慢,因此我希望使用者的入站緩沖區(qū)已滿。(據(jù)我所知)這將導(dǎo)致套接字寫方法阻塞。我仍在學(xué)習(xí)套接字編程,并且不確定上面的分析是否有意義。如果是這樣,那么確定哪種情況的好方法可能是什么?需要注意的一件事是,使用者位于Linux機(jī)器上,而發(fā)布者是Windows機(jī)器。任何幫助,將不勝感激!
尋找TCP連接中的瓶頸
寶慕林4294392
2021-04-07 22:18:59