Thiết lập sự cố dựa trên webservice (Spring/Java, Tomcat7 và MySql), nơi mọi người dùng đều có cơ sở dữ liệu riêng của họ. Vì tất cả các cơ sở dữ liệu được tạo động trong thời gian chạy, cấu hình chúng tĩnh trước khi khởi động không phải là một tùy chọn.Kết nối cơ sở dữ liệu cho các kết nối cơ sở dữ liệu động
Để tối ưu hóa việc sử dụng kết nối cơ sở dữ liệu, việc triển khai hồ bơi kết nối cơ sở dữ liệu sẽ rất tuyệt, phải không?
Với Java/Spring: Làm cách nào để tạo hồ bơi kết nối cho cơ sở dữ liệu động? Tôi hơi bị ảnh hưởng bởi việc thiếu sạch tùy chọn tại đây!
Vấn đề: Tomcat's Connection Pool (và như xa như tôi hiểu C3P0 cũng) đối xử với mỗi trường hợp DataSource mới như toàn bộ một hồ bơi kết nối mới ->stack-reference
- có phải là một ý tưởng tốt để tạo ra một tĩnh nguồn dữ liệu với một kết nối MySql chung (không xác định cơ sở dữ liệu trên kết nối) và sử dụng một nhóm kết nối với nguồn dữ liệu này cùng với các câu lệnh SQL được điều chỉnh?
stack-reference - Điều gì về việc phát triển hồ bơi nguồn dữ liệu dựa trên cơ sở dữ liệu liên tục tùy chỉnh? Bất kỳ kinh nghiệm với hiệu suất ở đây? Lời khuyên nào? Bất kỳ thư viện nào làm điều đó? Hoặc là nó có khả thi để giải quyết vấn đề DataSource của Tomcat bằng cách tạo tự động Tomcat JNDI Datasources bằng cách thao tác context.xml động của nó từ Java không? Không.
- Tôi không thể tin rằng không có nhiều hơn đồng bằng/đơn giản giải pháp cho việc này. Grails/Hibernate đấu tranh với điều này, Java/JDBC đấu tranh với điều này, ... là nó như một trường hợp sử dụng hiếm hoi để tách userdata trên cơ sở người dùng bằng cách tạo cơ sở dữ liệu người dùng cụ thể động? Nếu vậy, thiết lập nào tốt hơn?
EDIT
- lựa chọn khác là những gợi ý từ @M.Deinum sử dụng một nguồn dữ liệu cấu hình đơn và tự động hotswap nó cho kết nối đúng ->M.Deinum Blog và stack-reference.
Làm thế nào để thực hiện với một hồ bơi kết nối như những người ở trên?
Không chắc chắn cách thức ngủ đông đấu tranh với điều này khi đi ra khỏi hộp với sự hỗ trợ đa đối tượng thuê, đó là cơ bản những gì bạn muốn. –
Chăm sóc để đưa ra một ví dụ? Sẽ rất vui mừng khi thấy một giải pháp làm việc! Kinh nghiệm của tôi với hỗ trợ nhiều người thuê nhà ngủ đông cho tôi hiểu rằng các nguồn dữ liệu vẫn phải có mặt/được cấu hình trước khi khởi động. Làm thế nào tôi có thể sử dụng ngủ đông mà không có nguồn dữ liệu như vậy và tạo kết nối của tôi tự động? –
Bằng cách triển khai 'MultiTenantConnectionProvider' của riêng bạn và cũng là mặc định' DataSourceBasedMultiTenantConnectionProviderImpl' sử dụng JNDI cho tra cứu động để những người không cần phải có sẵn khi khởi động. Bạn có thể thêm các nguồn dữ liệu vào JNDI và Hibernate của bạn sẽ thực hiện tra cứu. –