2009-03-16 58 views
24

Tôi chưa bao giờ sử dụng phân phối cache/DHTs như memcached, bộ nhớ cache JBoss, ehcache, vv Tôi đang tự hỏi, nếu có, là thích hợp cho việc sử dụng của tôi.java phân phối bộ nhớ cache cho độ trễ thấp, tính sẵn sàng cao

Đầu tiên, tôi sẽ không làm các ứng dụng web (như hầu hết các dự án dường như hướng tới các ứng dụng web). Tôi viết máy chủ (Hệ thống quản lý đơn hàng thực sự) cho các công ty kinh doanh tài chính. Bản thân các máy chủ không quá phức tạp. Họ cần phải nhận được thông tin (dữ liệu thị trường, lệnh, thực thi, vv) định tuyến chúng đến đích của họ trong khi có thể chuyển đổi một số thông điệp này.

tôi đang xem xét các sản phẩm này để giải quyết các vấn đề sau:

  • an toàn kho của nhà nước của máy chủ. Tôi muốn xây dựng logic của ứng dụng của tôi như một loạt các máy biến áp (tương tự như Apache Camel) và lưu trữ trạng thái ở một nơi 'an toàn'

  • Kho lưu trữ này phải được phân phối: trong trường hợp một trong những dữ liệu này bị treo , một hoặc hai chi tiết khác sẽ được bật lên và tôi sẽ có thể chuyển sang chúng liền mạch

  • Kho lưu trữ này phải là nhanh. Các chữ số đơn tính bằng mili giây tính ở đây, nói cách khác, các hệ thống tiêu thụ/xử lý dữ liệu này là các hệ thống tự động, không phải con người nhấp vào các liên kết. Hệ thống này cần có thông lượng cao độ trễ thấp. Bằng cách gửi dữ liệu của tôi bên ngoài quá trình, tôi nhất thiết phải làm chậm hiệu suất, nhưng tôi đang cố gắng để cân bằng tốc độ tuyệt đối thô và bảo vệ tuyệt đối của dữ liệu.

  • Kho lưu trữ này phải an toàn. Tương tự như điểm về một số bản sao lưu trực tuyến, hệ thống này cần phải ghi dữ liệu vào đĩa (có khả năng nhiều hơn một đĩa).

Tôi thực sự muốn ngừng viết 'máy chủ giao dịch' của riêng mình. Tôi có đúng để xem xét các dự án như bộ đệm jboss, ehcache, v.v. không?

Cảm ơn

Trả lời

5

Rất nhiều tổ chức tài chính đang sử dụng Oracle Coherence cho việc này.

Nó sẽ không khớp với tất cả các điểm trong danh sách của bạn.

4

Tôi tin rằng, JBoss cache là đủ tốt cho mục đích của bạn:

  • nhanh
  • phân phối
  • giao dịch với thực hiện MVCC (không đọc khóa)
  • hỗ trợ JTA
  • hỗ trợ chế độ không đồng bộ
  • dữ liệu trục xuất để lưu trữ liên tục (jd bc, bdb, v.v ..)
9

Hazelcast là một giải pháp lưu trữ bộ nhớ đệm phân phối, giao dịch, mã nguồn mở cho Java. Phù hợp cho các ứng dụng tài chính. Nó được phát hành theo giấy phép Apache.

Hazelcast thực sự nhiều hơn một chút so với bộ nhớ cache được phân phối; nó được phân phối thực hiện hàng đợi, chủ đề, bản đồ, multimap, khóa, dịch vụ thi hành cho Java.

4

Bạn có một số giải pháp miễn phí tốt ở đây. Tuy nhiên, nếu bạn cần giải pháp nhanh hơn, bạn có thể thử 29 West hoặc Solace có các giải pháp nhắn tin đáng tin cậy/đảm bảo độ trễ dưới micro giây.

+1

Nhưng anh ấy cần bộ nhớ cache – HaveAGuess

+1

@HaveAGuess, Tuy nhiên, đó là một điểm tốt, việc triển khai bộ đệm phân phối tương đối đơn giản khi bạn có kết nối độ trễ thấp. –

-2

tôi sẽ đề nghị NCache vì những lý do sau đây,

  • Hỗ trợ .NET và java
  • phạm vi rộng của topo
  • Không có thay đổi mã yêu cầu
  • phân phối cao và khả năng mở rộng
  • Hoàn toàn miễn phí (NCache Express)
+1

Tôi sẽ tiếp tục và đoán rằng @Timmy hoạt động cho Alachisoft. – mjaggard

+0

Đây là một giải pháp .NET –

3

Nhìn vào Gemfire hiệu suất cao trong lưới dữ liệu bộ nhớ. Nó cung cấp bộ nhớ cache phân tán, đối tượng querieng và thông báo sự kiện.

+0

Nó cũng có thể duy trì bộ nhớ cache nếu đó là những gì bạn muốn. –

2

Hãy xem Cacheonix Distributed Cache and Data Grid. Nó đáp ứng các yêu cầu của bạn về độ trễ và độ tin cậy thấp bằng cách cung cấp bộ đệm cục bộ mạch lạc và phân phối dữ liệu được lưu vào bộ nhớ cache tới nhiều máy chủ và bằng cách sao chép dữ liệu được lưu trong bộ nhớ cache. Tiết lộ đầy đủ: Tôi làm việc cho Cacheonix.

Các vấn đề liên quan