Giới thiệu Hazelcast và ứng dụng

Một phần của tài liệu Xây dựng hệ thống tương tác trực tuyến (Trang 45)

Hazelcast là một giải pháp mã nguồn mở, hỗ trợ in-memory data grids. In- memory data grids thường được sử dụng với database để nâng cao hiệu năng của ứng dụng, phân tán dữ liệu trên nhiều server với tốc độ tính toán ưu việt và khảnăng quản lý khối lượng lớn dữ liệu.

Hazelcast được thiết kế theo mô hình phân cụm, trong đó các server chia sẻ

dữ liệu với nhau theo cấu trúc Cluster Pack. Hazelcast cho phép:

x Scale-out computing: khả năng tính toán mở rộng trên nhiều server mạnh mẽ.

x Resilience (khảnăng phục hồi): các node có thể bị lỗi mà không mất đi

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 45 dụng (trên mỗi node lưu trữ 1/n real data + 1/n backup data với n là số

node).

x Programming Model: tạo ra một mô hình lập trình cho người phát triển dễ dàng tạo ra các cụm máy tính mà vẫn đảm bảo tính thống nhất như

một hệ thống máy tính đơn lẻ.

x Fast Application Performance: đẩy nhanh hiệu năng của ứng dụng bằng việc lưu trữ dữ liệu in-memories, đảm bảo tốc độđọc ghi nhanh chóng. x Dynamic Scalability (khảnăng mở rộng động): các máy tính có thể kết

hợp động với nhau, tựđộng mở rộng thêm node khi hệ thống scale. x Elastic Main Memory: Bộ nhớ chính cấp phát sử dụng lưu trữ cache có

khảnăng co giãn, phù hợp với nhu cầu sử dụng, tối ưu nguồn tài nguyên hệ thống.

Hazelcast được viết bằng Java vì thế nó dễdàng tương thích với các ứng dụng Java. Hazelcast cung cấp cho người phát triển các API làm việc với các đối tượng cache giống như Java (Map, Set, List, Queue) nhưng có khảnăng mở rộng tới hàng

trăm node. Việc lập trình Hazelcast giống như lập trình trên một máy tính, Hazelcast tựđộng hóa việc đồng bộ, liên kết các node, cung cấp cho người phát triển một môi

trường làm việc trong suốt, rất dễ sử dụng.

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 46 Game Server Application requests id = 1 Retrieve id from Hazelcast Store id in Hazelcast yes no Return id to game server application id already in Hazelcast Cache Retrieve id from database Hình 3.8: Biểu đồ hoạt động sử dụng Hazelcast

Các dữ liệu ít thay đổi như thông tin user, thông tin về application, các loại tài sản của người chơi… các thông tin này ở lần đầu tiên truy xuất từ database sẽđược cache lại, sau đó các lần tiếp theo hệ thống chỉ cần truy xuất vào cache lấy dữ liệu một cách nhanh chóng.

Sinh viên thực hiện: Lê Văn Thành 20102156 Khóa 55 47 Insert to

Hazelcast cache

Retrieve data from Hazelcast cache

database

Batch insert/ batch update Interval Loop

Insert to Hazelcast cache

Evict cache in Hazelcast Hình 3.9: Biểu đồ hoạt động cài đặt buffer insert (update) Hazelcast Biểu đồ trên mô tả cách hệ thống làm việc với những bản ghi phải insert (update) nhiều và liên tục vào hệ thống như log transaction, log game, log actity…

Với việc áp dụng Hazelcast, hệ thống insert trực tiếp các dữ liệu log này vào hệ thống Hazelcast, sau đó cài đặt một khoảng thời gian “interval”định kỳ lấy các bản ghi này trong cache rồi thực hiện batch insert (update) và database. Những dữ liệu cache sau

khi được insert thành công sẽ được xóa đi giải phóng bộ nhớ của hệ thống. Thông qua cách này hệ thống giảm được sốlượng lớn các câu query và giảm thời gian truy vấn database một cách đáng kể.

Một phần của tài liệu Xây dựng hệ thống tương tác trực tuyến (Trang 45)