2009-02-12 15 views
13

Tôi đã đọc về các giải pháp "lưới dữ liệu" được gọi là nền tảng Java bao gồm Terracotta, GigaSpaces và Coherence. Tôi đã tự hỏi liệu có ai có kinh nghiệm thực tế làm việc với bất kỳ công cụ nào và có thể chia sẻ kinh nghiệm của họ hay không. Tôi cũng thực sự tò mò muốn biết quy mô của những người triển khai đã làm việc với: chúng ta đang nói 2-4 cụm nút hoặc bạn đã làm việc với bất cứ điều gì lớn hơn đáng kể so với điều đó?Bạn muốn giới thiệu gì cho công nghệ lưới dữ liệu Java có quy mô lớn: Đất nung, GigaSpaces, Coherence, v.v ...?

Tôi bị thu hút bởi Terracotta vì hỗ trợ "thả" cho Hibernate và Spring, cả hai đều sử dụng rất nhiều. Tôi cũng thích ý tưởng về cách trang trí bytecode dựa trên cấu hình và không yêu cầu bạn phải lập trình chống lại "API lưới". Tôi không biết về bất kỳ lợi thế nào cho các công cụ sử dụng cách tiếp cận của một API rõ ràng nhưng rất thích nghe về chúng nếu chúng thực sự tồn tại. :)

Tôi cũng đã dành thời gian đọc về memcached nhưng quan tâm nhiều hơn đến việc nghe phản hồi về ba giải pháp cụ thể này. Tôi sẽ tò mò muốn nghe cách họ đo lường chống lại memcached trong sự kiện ai đó đã sử dụng cả hai.

+0

Tôi đã thực hiện một JVM lớn (6-8 GB hiện tại) máy chủ đơn, sử dụng Prevayler và Memcached cho một số nội dung được tải xuống. Tôi rất quan tâm để xem bạn nhận được câu trả lời nào. Bạn đang nói về triển khai kích thước nào? –

+0

Hầu hết các triển khai mà chúng tôi đang xem không lớn (4 nút hoặc ít hơn) nhưng tôi thực sự tò mò muốn biết về triển khai lớn hơn đáng kể, chủ yếu để xem liệu các giải pháp này có quy mô tuyến tính hay không. –

+1

I * luôn luôn * upvote một đề nghị tốt-a-một cái gì đó câu hỏi - * đặc biệt là * nếu họ đã được đóng lại. – mtyson

Trả lời

7

Chúng tôi có 50 máy chủ đang chạy ứng dụng webservice và tất cả các máy chủ này đều được cân bằng tải bằng bigIP. Yêu cầu là để lưu trữ từng trạng thái người dùng để các trạng thái tiếp theo không thực hiện xử lý tương tự một lần nữa và lấy dữ liệu từ trạng thái trước đó. Bằng cách này, khách hàng của webservice không cần phải duy trì trạng thái.

Chúng tôi đã sử dụng Terracotta để lưu trữ trạng thái và không bao giờ gặp phải bất kỳ vấn đề về hiệu suất nào. Vào thời điểm cao điểm, số lượng đơn yêu cầu nhận được là 100 mỗi giây.

+7

100 yêu cầu mỗi giây chia trên 50 máy chủ là tải rất thấp, trừ khi các yêu cầu có tính toán nặng. – stivlo

2

Tôi không có đủ kinh nghiệm với các công nghệ này, nhưng tôi nghĩ rằng Apache Hadoop được chứng minh là có thể mở rộng và đáng tin cậy. Yahoo đã chạy nó trên 10,000 core Linux cluster.

Nó dựa trên thuật toán của Google MapReduce.

This bài viết mô tả MapReduce và lý do bạn nên quan tâm đến nó.

+0

Bạn không nghĩ Hadoop là BigData và câu hỏi này đã được đặt cho Big-Memory (Terracotta, GigaSpaces, Coherence). Chỉ là một ý nghĩ. – deadpool

3

Thư viện bạn chọn thực sự tùy thuộc vào ứng dụng của bạn và những gì bạn đang cố gắng đạt được.

Tôi đã làm việc cho một cửa hàng sử dụng Coherence để cung cấp khả năng mở rộng (và dự phòng, loại) cho các ứng dụng web của nó. Chúng tôi thấy rằng bạn phải có khoảng 4-5 nút để bắt đầu nhận được bất kỳ lợi ích nào từ Coherence (2 hoặc 3 nút có khả năng làm giảm hiệu suất). Tôi tin rằng tài liệu của Oracle nói rằng bạn cần rất nhiều (30+) nút để thực sự có được một lợi ích với Coherence. Nếu bạn đi với Coherence, hãy chắc chắn rằng bạn nhận được phần cứng của bạn thiết lập đúng - nó rất nhạy cảm với độ trễ.

Cá nhân tôi sẽ tránh xa nội dung "thả". Họ có thể cung cấp cho bạn một cái gì đó để bắt đầu, nhưng cuối cùng bạn sẽ chạy vào đồng bộ hóa hoặc các vấn đề hiệu suất và sẽ phải bắt đầu viết mã cụ thể cho lớp lưới của bạn anyway. Về cơ bản, bạn biết ứng dụng của mình tốt hơn thư viện và có thể tìm ra những mục nào cần phải có trong bộ nhớ cache, thời gian chúng cần sử dụng, cách ứng dụng của bạn sẽ được sử dụng, v.v.

8

Bạn có thể muốn hãy xem Hazelcast nữa. Hazelcast là một thực thi giao dịch, phân phối/phân đoạn nguồn mở, phân phối 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.

Hazelcast được phát hành theo giấy phép Apache và hỗ trợ cấp doanh nghiệp cũng có sẵn. Mã được lưu trữ tại Google Code.