Tôi phụ trách phát triển và duy trì một nhóm các ứng dụng web tập trung xung quanh dữ liệu tương tự. Kiến trúc mà tôi quyết định vào thời điểm đó là mỗi ứng dụng sẽ có cơ sở dữ liệu và ứng dụng web-root của riêng chúng. Mỗi ứng dụng duy trì một nhóm kết nối với cơ sở dữ liệu riêng của nó và một cơ sở dữ liệu trung tâm cho dữ liệu được chia sẻ (thông tin đăng nhập, v.v.)Chiến lược kết nối hồ bơi: Tốt, Xấu hay Xấu xí?
Một đồng nghiệp sẽ không quy mô vì có quá nhiều kết nối khác nhau sẽ không được có thể mở rộng và chúng ta nên tái cấu trúc cơ sở dữ liệu để tất cả các ứng dụng khác nhau sử dụng một cơ sở dữ liệu trung tâm và bất kỳ sửa đổi nào có thể là duy nhất đối với một hệ thống sẽ cần được phản ánh từ cơ sở dữ liệu đó và sau đó sử dụng một pool đơn do Tomcat cung cấp. Ông đã đặt ra rằng có rất nhiều "siêu dữ liệu" mà đi qua lại trên mạng để duy trì một hồ bơi kết nối.
Sự hiểu biết của tôi là điều chỉnh thích hợp chỉ sử dụng nhiều kết nối khi cần thiết trên các hồ khác nhau (ứng dụng âm lượng thấp nhận ít kết nối hơn, ứng dụng có khối lượng cao hơn ...) số lượng pools không vấn đề so với số lượng kết nối hoặc chính thức hơn là chênh lệch về chi phí cần thiết để duy trì 3 hồ chứa 10 kết nối là không đáng kể so với 1 hồ bơi gồm 30 kết nối.
Lý do đằng sau phá vỡ hệ thống thành thiết kế một ứng dụng một cơ sở dữ liệu là có khả năng sẽ có sự khác biệt giữa các ứng dụng và mỗi hệ thống có thể thực hiện sửa đổi trên lược đồ khi cần. Tương tự như vậy, nó loại bỏ khả năng chảy máu dữ liệu hệ thống thông qua các ứng dụng khác.
Rất tiếc, không có lãnh đạo mạnh mẽ trong công ty đưa ra quyết định khó khăn. Mặc dù đồng nghiệp của tôi đang sao lưu những lo lắng của mình chỉ với sự mơ hồ, tôi muốn đảm bảo rằng tôi hiểu các nhánh của nhiều cơ sở dữ liệu/kết nối nhỏ so với một cơ sở dữ liệu/kết nối lớn.
Tôi không đồng ý với đồng nghiệp của bạn. Nếu bạn có n webapps, sử dụng n pool, ngay cả khi chúng sử dụng cùng một máy chủ cơ sở dữ liệu. Điều này cho phép bạn tách mối quan tâm tốt hơn, tùy chọn tinh chỉnh tốt hơn, cách ly tốt hơn (nếu một webapp ăn tất cả các kết nối, tại sao ứng dụng kia bị ảnh hưởng), v.v. . Đây là IMO không đúng. –