python多進程處理數(shù)據(jù) 如何在分布式環(huán)境中實現(xiàn)多服務(wù)器多進程間數(shù)據(jù)同步?
如何在分布式環(huán)境中實現(xiàn)多服務(wù)器多進程間數(shù)據(jù)同步?環(huán)境::多個應(yīng)用程序服務(wù)器進程,:每個進程都有自己相對較大的緩存(可能有100-300萬個用戶數(shù)據(jù)):這些進程可能開始在同一臺機器上運行,并且將來將分布
如何在分布式環(huán)境中實現(xiàn)多服務(wù)器多進程間數(shù)據(jù)同步?
環(huán)境:
:多個應(yīng)用程序服務(wù)器進程,
:每個進程都有自己相對較大的緩存(可能有100-300萬個用戶數(shù)據(jù))
:這些進程可能開始在同一臺機器上運行,并且將來將分布到多臺機器,
:在初始化期間從RDBMS讀取所有緩存。
]:現(xiàn)在的問題是如果RDBMS中的數(shù)據(jù)發(fā)生了變化,或者如果多個進程中某個進程的用戶數(shù)發(fā)生了變化
:如何同步所有這些進程中的數(shù)據(jù)?]:如果多個進程在同一臺服務(wù)器上,我將考慮共享內(nèi)存信號量、
同一個進程的各個線程可以共享哪些內(nèi)容?
進程代碼段、進程公共數(shù)據(jù)(使用這些共享數(shù)據(jù),線程可以輕松地相互通信)、進程打開文件描述符、信號處理器、進程當前目錄、,進程用戶ID和進程組ID。同一進程的每個線程可以共享什么
1。多進程不一定比多線程好
2。共享內(nèi)存沒問題
3。在Linux上,D-Bus可以用來在進程之間共享數(shù)據(jù),這更可靠、更簡單。D-Bus也會廣播。
如果您想考慮高可靠性,那么采集程序可以是單個進程,然后使用mom(如ActiveMQ)以持久的方式傳輸數(shù)據(jù)。它可以廣播、點對點和分布式。有兩個偵聽程序,一個用于顯示,另一個用于保存到數(shù)據(jù)庫。這樣,只要考慮采集程序的高可靠性,因為如果采用持久模式發(fā)送數(shù)據(jù),對方在沒有接收到數(shù)據(jù)時就會保存數(shù)據(jù)。