2008-12-21 32 views

Trả lời

31

Có một số:

Bây giờ tôi chưa sử dụng tất cả những điều này nhưng tôi đã sử dụng hoặc điều tra phần lớn trong số chúng.

GridGai n và GigaSpaces tập trung hơn vào khoảng grid computing so với bộ nhớ đệm và (imho) phù hợp nhất để tính toán lưới so với lưới dữ liệu (xem this explanation of compute vs data grids). Tôi thấy GigaSpaces là một công nghệ thực sự thú vị và nó có một số tùy chọn cấp phép, bao gồm một phiên bản miễn phí và một phiên bản đầy đủ miễn phí cho các phần khởi động.

Sự kết hợp và đất nung cố gắng xử lý bộ nhớ cache là Maps, đây là một sự trừu tượng khá tự nhiên. Tôi đã sử dụng Coherence rất nhiều và nó là một sản phẩm hiệu suất cao tuyệt vời nhưng không hề rẻ. Terracotta Tôi ít quen thuộc hơn. Các tài liệu cho Coherence tôi tìm thấy một chút thiếu ở lần nhưng nó thực sự là một sản phẩm mạnh mẽ.

OSCache Tôi đã sử dụng chủ yếu như một phương tiện để giảm mức sử dụng bộ nhớ và phân mảnh trong các ứng dụng Web Java vì nó có một thẻ JSP khá gọn gàng. Nếu bạn đã từng xem JSP đã biên dịch, bạn sẽ thấy chúng thực hiện rất nhiều chuỗi nối. Thẻ này cho phép bạn lưu trữ hiệu quả các kết quả của một đoạn mã JSP và HTML thành một Chuỗi đơn, có thể cải thiện hiệu suất trong một số trường hợp.

EHCache là giải pháp lưu bộ nhớ đệm dễ dàng mà tôi cũng đã sử dụng trong các ứng dụng web. Không bao giờ như là một bộ nhớ cache phân phối mặc dù nhưng nó có thể làm điều đó. Tôi có xu hướng xem nó như là một giải pháp nhanh chóng và bẩn thỉu nhưng đó có lẽ là sự thiên vị của tôi.

memcached đặc biệt ưu tiên trong thế giới PHP (và được sử dụng bởi các trang web như Facebook). Đó là một giải pháp thực sự nhẹ nhàng và dễ dàng và có lợi thế là nó không chạy trong cùng một quy trình và bạn sẽ có các lựa chọn khả năng tương tác tốt hơn với các ngăn xếp công nghệ khác, nếu điều này quan trọng với bạn.

+0

Xin lỗi vì dấu xuống, nhưng câu trả lời của bạn là tổng quan toàn diện hơn về khung bộ nhớ đệm được phân phối thay vì thông tin về cách bật/thiết lập phân cụm cho ứng dụng Java :-) – Karl

+0

Bạn có thể truy vấn bất kỳ điều nào trong số này (Không đi đến một khuôn khổ ORM đầy đủ)? – systemoutprintln

+0

Không chắc tôi hiểu câu hỏi. ORM và bộ nhớ đệm có một chút điểm chung nhưng chủ yếu là các mục tiêu khác nhau. – cletus

5

Tôi nghĩ tóm tắt của @ cletus là khá tốt.Tôi đã muốn đề cập đến rằng Terracotta cung cấp nhiều hơn chỉ là một bộ nhớ cache được phân phối dưới dạng bản đồ. Nó gộp cụm từ Java và đồng bộ hóa các nguyên thủy, chuyển một chương trình Java đồng thời thành một chương trình Java phân tán. Bạn có thể làm bộ nhớ đệm với nó (bao gồm cả việc sử dụng các phiên bản phân tán của bộ nhớ cache nguồn mở libs) hoặc một loạt các công cụ khác.

Để phân phối công việc, có một số libs bổ sung được viết trên đầu trang của Terracotta, đặc biệt là tim-pipe (cho tin nhắn) và tim-masterworker (để phân phối phong cách Master-Worker) là abstractions tuyệt vời trên đầu trang của Terracotta. Thư viện này là trên Terracotta Forge:

trang mới thêm này có thể thêm một chút thông tin bổ sung so với một số công nghệ dữ liệu tiềm năng khác:

2

Nếu bạn muốn xuống cấp thấp hơn một chút, có JGroups, cung cấp cho bạn những điều cơ bản về phân cụm các quy trình java.

21

Bạn cũng có thể xem Hazelcast. Hazelcast là một triển khai thực hiện giao dịch, phân phối/phân đoạn nguồn mở của hàng đợi, chủ đề, bản đồ, thiết lập, danh sách, khóa và dịch vụ thi hành. Nó là siêu dễ dàng để làm việc với; chỉ cần thêm hazelcast.jar vào classpath của bạn và bắt đầu viết mã. Hầu như không cần cấu hình.

Nếu bạn quan tâm trong việc thực hiện Runnable, nhiệm vụ Callable của bạn trong một thời trang phân phối, sau đó xin vui lòng kiểm tra phân phối tài liệu Executor Dịch vụ tại http://code.google.com/docreader/#p=hazelcast

Hazelcast được phát hành theo giấy phép Apache và hỗ trợ lớp doanh nghiệp cũng có sẵn.

2

Loại khác bạn có thể thêm vào danh sách là Appistry CloudIQ. Nó là một môi trường điện toán phân tán. Nó có sẵn dưới dạng free download tối đa 5 máy. Nó bao gồm phân phối tải cũng như thất bại tự động trong công việc trong trường hợp lỗi phần cứng, trong số các tính năng khác.

1

Để tính toán lưới, bạn cũng có thể xem xét Ice Grid hoặc DataSynapse GridServer. Cả hai đều cung cấp cơ chế rất hiệu quả để phân phối nhiệm vụ và cung cấp thất bại và dự phòng.

1

Tôi nghĩ câu hỏi của bạn đã được giải thích theo nhiều cách khác nhau, bạn hỏi về thư viện mà bạn có thể sử dụng để "cho phép cụm" ứng dụng của bạn.

Trong khi một số thư viện có tên trên có thể giúp cung cấp chức năng cụm cụ thể như bộ nhớ đệm được phân phối, cách thông thường hơn để cho phép quản lý tải công việc là sử dụng vùng chứa J2EE.

Bằng cách thiết lập thể hiện vùng chứa cụm, điều này cho phép bạn sử dụng các tính năng HA và quản lý tải công việc, phân cụm gần như minh bạch ở cấp ứng dụng. Tôi nói gần như vì khi viết các ứng dụng sẽ được nhóm lại, bạn phải cẩn thận cách bạn quản lý trạng thái, ví dụ nếu bạn đã thực hiện một số loại bộ nhớ cache, bạn sẽ cần sao chép trạng thái của bộ đệm trên mỗi máy.

Một nơi bắt đầu tốt sẽ là tải xuống glassfish và thử và thiết lập một cá thể thủy tinh có cụm.

Hy vọng điều đó sẽ hữu ích.

Karl

1

Ngoài ra kiểm tra Fura

1

Một câu trả lời rất muộn - nhưng nó phụ thuộc một phần vào cách ứng dụng của bạn được cấu hình. Bạn có thể muốn chạy một tệp thực thi từ xa thay vì sử dụng một trong các phương pháp trên.

Xin lỗi vì thiếu liên kết - nhưng cho đến khi tôi đăng ký, tôi không thể đăng nhiều hơn một. Các sản phẩm in nghiêng phải dễ dàng với Google.

Nếu bạn muốn chạy tệp thực thi trong tìm kiếm tham số - giả sử bạn muốn quay cùng một tệp thực thi với nhiều tùy chọn cho từng trường hợp - thì cách tiếp cận hàng loạt truyền thống hoạt động tốt. Đây là một cách tiếp cận tính toán hiệu suất cao rất truyền thống đó là vẫn còn sử dụng rộng rãi - cơ sở hạ tầng phù hợp để xử lý này ở quy mô doanh nghiệp là vBulletin LSF, DataSynapse GridServer, PBS hoặc vì nó trưởng thành Windows HPC Server. Bạn cũng có thể muốn xem qua các sản phẩm nguồn mở như GlobusCondor. Tùy thuộc vào ứng dụng của bạn lớn đến mức nào, bạn cũng có thể xem gLite, được sử dụng cho các dự án khoa học quy mô rất lớn như LHC.

Cách tiếp cận HPC thương mại được hưởng lợi từ việc mã ứng dụng của bạn được tách biệt khỏi các quy trình bao gồm cơ sở hạ tầng tính toán của bạn, nhưng có thể đạt hiệu suất cao, trong khi những người khác có thể hiển thị thông lượng nhanh hơn nhưng dễ bị rò rỉ bộ nhớ và các vấn đề khác cho hệ thống thời gian hoạt động lâu dài .

6

Bạn đã xem xét Infinispan? Nó là một nền tảng lưới dữ liệu nguồn mở, từ JBoss.org. Để biết thêm chi tiết, tôi khuyên bạn nên đọc (cũ) blog post thông báo dự án này cùng với các bài đăng trên blog thú vị hơn, bao gồm một bài đăng trên using Infinispan with Hibernate và dưới dạng standalone cache. Thậm chí gần đây hơn, trên Red Hat's Enterprise Data Grid. Có a quick "getting started" guideDZone RefCard quá, thậm chí a YouTube video :)

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