我做了一個webcrawler,每個線程不斷插入頁面和鏈接。我必須每個線程有一個數據庫連接或共享一個連接到他們?每個線程有一個數據庫連接?
回答
您通常會使用某種數據庫連接池來處理這種情況,它可以爲您管理數據庫連接的生命週期。在Java中,Apache Commons DBCP庫經常用於此目的,但如果您使用的是其他框架,它們可能具有內置的功能。
使用PostgreSQL的一些例子?數據庫對使用Apache Commons DBCP有影響嗎? – 2011-05-17 18:57:27
您將使用Postgres JDBC驅動程序[1],並通過JDBC進行連接。 [1] http://jdbc.postgresql.org/download.html – jwismar 2011-05-17 19:23:20
我創建連接並分發給線程? – 2011-05-17 19:44:35
也可以考慮在可行的情況下使用生產者消費者模式將爬網與數據庫I/O解耦。這將允許您稍後調整搜尋器線程(生產者)和數據庫連接 - I/O線程(消費者)的數量。您可以使用有界阻塞隊列將作業從抓取工具轉移/分發到作者。
在自己的消費者線程中分離數據庫連接會帶來怎樣的性能提升。我假設你指的是類似於http://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html – JohnMerlino 2014-05-31 05:45:04
從數據庫寫入中解耦爬行只是提供了調優機會。抓取工具的數量不一定==數據庫編寫者的數量。 – karmakaze 2014-06-19 03:45:53
- 1. 每個數據庫連接一個DAO?
- 2. 連接有一個遠程數據庫
- 3. RedisClusterClient,每個線程一個連接或一個連接
- 4. WCF數據庫連接:只有一個數據庫連接
- 5. 每個數據庫的groovy sql連接
- 6. C++ MySQL和多線程 - 每個用戶1個數據庫連接?
- 7. 綁定數據庫連接到一個線程
- 8. 什麼更有效率,爲什麼:每頁一個數據庫連接或每個函數一個數據庫連接?
- 9. 在整個應用程序上共享數據庫連接或在每個請求上連接到數據庫?
- 10. 多處理如何關閉每個線程的數據庫連接
- 11. ODBC單連接或每個線程一個
- 12. Java線程安全數據庫連接
- 13. 多線程和數據庫連接
- 14. 連接2個數據庫
- 15. 連接兩個數據庫
- 16. 多個數據庫連接
- 17. 多個數據庫連接
- 18. 多個數據庫連接
- 19. ASP.net一次連接兩個數據庫?
- 20. 選擇一個數據庫連接池
- 21. 如何使一個數據庫連接
- 22. 使用Mysqli:有沒有辦法不必連接數據庫每一個查詢?
- 23. Postgresql - 每個用戶一個數據庫或每個用戶一個數據庫
- 24. LARAVEL - 每個用戶擁有多個數據庫,用戶每次都選擇數據庫連接
- 25. 每個線程一個SQLiteConnection?
- 26. 數據庫與一個數據庫的各種連接
- 27. 每個連接線程模型有什麼缺點?
- 28. 連接池vs每線程JDBC連接
- 29. Hibernate JTA:每個環境讀取數據庫連接參數
- 30. 每個數據庫一個用戶vs所有數據庫的單個用戶
是的,根據您的要求,任一種都是可能的。 – 2011-05-17 18:29:51
有人有一個關於連接池的好教程嗎?如果對於Java和PostgreSQL更好。對我來說這是一個新概念,我什麼也不知道。 – 2011-05-17 19:54:12
大多數JDBC驅動程序都內置了池支持。如果您想自己控制它,則只需要一個額外的池。 – 2011-05-18 07:00:47