Tôi đang cố gắng tạo một nhóm kênh/kết nối với máy chủ xếp hàng và đang cố gắng sử dụng ObjectPool nhưng gặp sự cố khi sử dụng nó từ example trên trang web của họ.Có hướng dẫn hay ví dụ hay về cách sử dụng Java ObjectPool/pools không?
Cho đến nay tôi có chủ đề hoạt động nhưng tôi muốn mỗi người trong số họ lấy một kênh từ hồ bơi và sau đó trả lại. Tôi hiểu làm thế nào để sử dụng nó (vayObject/returnObjects) nhưng không chắc chắn làm thế nào để tạo ra các hồ bơi intial.
Đây là cách các kênh truyền hình được thực hiện trong RabbitMQ:
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
và mã của tôi chỉ sử dụng kênh để làm công cụ. Tôi bối rối vì ví dụ duy nhất tôi có thể tìm thấy (trên trang web của họ) bắt đầu như sau:
private ObjectPool<StringBuffer> pool;
public ReaderUtil(ObjectPool<StringBuffer> pool) {
this.pool = pool;
}
Điều này không có ý nghĩa với tôi. Tôi nhận ra điều này là phổ biến để thiết lập kết nối cơ sở dữ liệu vì vậy tôi đã cố gắng tìm hướng dẫn bằng cách sử dụng cơ sở dữ liệu và ObjectPool nhưng họ dường như sử dụng DBCP cụ thể cho cơ sở dữ liệu (và tôi dường như không thể sử dụng logic cho máy chủ xếp hàng của tôi).
Bất kỳ đề xuất nào về cách sử dụng? Hoặc là có một cách tiếp cận khác được sử dụng cho các hồ bơi trong java?
wow cảm ơn rất nhiều. Tôi sẽ chơi với mã. Tôi không hiểu nơi để xác định số lượng kênh. Trong ví dụ của bạn là bạn đang chia sẻ một kết nối hoặc có một nơi tôi có thể nói tôi muốn tạo trước các kết nối X? – Lostsoul
Các hồ bơi không được đặt trước đối tượng được gộp chung của chúng. Họ tạo ra chúng theo yêu cầu và đưa chúng từ hồ bơi hoặc tạo ra một cái mới nếu hồ bơi trống. Vì vậy, thường không có giới hạn. Nhưng tôi không biết làm thế nào các lớp học bạn sử dụng hoặc các lớp học bơi làm việc/những gì họ có khả năng. Tôi vừa dịch ví dụ cho bạn :) – zapl
GenericObjectPool sẽ tạo trước các đối tượng gộp chung nếu bạn bật chuỗi gợi ý và đặt thuộc tính "minIdle". http://commons.apache.org/pool/api-1.6/org/apache/commons/pool/impl/GenericObjectPool.html – dnault