簡體   English   中英

管理高流量連接應用程序的正確方法

[英]Right way to manage a high traffic connection application

介紹

我正在使用GPS偵聽器,這是基於雙絞線python的服務,此應用程序至少從gps設備接收了100個連接,並且運行正常,每個GPS每5秒鍾發送一次數據,其中包含位置。 (下周必須至少連接200 gps設備)

數據庫

我正在使用唯一的postgresql連接,此連接在所有用於保存和存儲信息的gps設備之間共享,postgresql使用pgbouncer作為池

服務器

我正在使用一台小型PC作為服務器,並且我需要找到一種不丟失數據的高可用性應用程序的方法

問題

由於我的應用流量很高,我在30分鍾后開始顯示內存數據出現問題,因為沒有保存,但是查詢是在postgres上執行的(我已經在上次活動中進行了檢查)

假溶液

我使用了一個腳本來重新啟動我的應用程序,postgres ang pgbouncer,但是這是一個錯誤的解決方案,因為每次我重新啟動應用程序時,gps都斷開連接,並且必須再次重新連接

可能的解決方案

我正在考慮基於數據層的高可用性解決方案,其中每次必須重新啟動數據庫或發生某些情況時,txt文件都會存儲來自gps設備的數據。

為了獲得它,我是在沒有唯一連接的情況下進行的,我正在考慮每次必須保存一個數據時都在一個簡單的連接上,然后像緩沖池一樣測試數據庫,然后如果數據庫連接錯誤,則將txt文件存儲起來,直到數據庫再次正常,其他進程讀取txt文件並將信息發送到數據庫

由於我在每次必須保存此數據以嘗試不丟失數據時都在考慮應用程序數據池和單個連接,因此我想知道

知道每次將在5秒內進行100次以上的連接,每次為這種應用程序保存數據時是否可以進行單個連接?

如我所說,我的問題太簡單了,在高流量應用程序上使用數據庫連接的正確方法是哪一種? 每個查詢單個連接或所有應用程序共享唯一連接。

看這個單一問題的原因是,考慮到內存資源,正在尋找使用數據庫連接的正確方法。

我並不是在尋找解決postgresql問題或性能的方法 ,只是想知道使用此類應用程序正確方法 這就是為什么要盡可能多地提供我的申請的原因

注意還有一件事,我看到一票贊成關閉這個問題,這與沒有明確的問題有關,當該問題的標題為“ question”(問題)並用斜體標記時,現在我將灰色標記為注意人不要讀“問題”一詞

非常感謝

數據庫不僅會隨意丟失數據。 在工作描述中,不丟失數據幾乎是第一位的。 如果它似乎正在丟失數據,則必須在應用程序中濫用事務。 弄清楚您在做什么錯並進行修復。

對於每個事務,在應用程序和pgbouncer之間建立和斷開連接都不會提高性能,但也不是很糟糕。 如果那是什么可以幫助您解決交易邊界,那就去做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM