Tôi cũng phỏng vấn khá nhiều và thấy khá nhiều công ty không sử dụng cũng như chưa tìm hiểu những cái hay ho từ Hazelcast, hôm nay chúng ta cùng tìm hiểu xem Hazelcast là gì và nó được ứng dụng trong thực tế như thế nào
Mục Lục
Một vài đặc điểm của Hazelcast
Hazelcast-IMDG (viết tắt của Hazelcast in memory data grid) là một mạng lưu trữ dữ liệu trên RAM. Hazelcast đưa ra cài đặt của các interface trong java như: Map, Queue, Executor Service,…
Được xây dựng bằng java nên nó hỗ trợ java khá tiện lợi, tuy nhiên nó cũng hỗ trợ các loại ngôn ngữ khác như: C / C ++, C #, Python, …
Hazelcast sử dụng cơ chế mạng ngang hàng, không có master và slave, mỗi thành viên trong cụm được cấu hình để hoạt động giống nhau. Tất cả các node lưu trữ dữ liệu bằng nhau và xử lý như nhau.
Hazelcast lưu trữ mọi thứ trên Ram, nó được thiết kế để thực thi việc đọc và ghi một cách nhanh chóng nhất.
Hazelcast lưu các bản sao của các mảnh dữ liệu trên nhiều thành viên. Khi một node bị lỗi thì dữ liệu trên node đó sẽ được khôi phục lại từ bản backup và cụm Hazelcast vẫn hoạt động bình thường mà không bị downtime.
Một số usecase Hazelcast
- Application Scaling (Mở rộng ứng dụng)
- Cache-as-a-service (cache như một dịch vụ, tách biệt hẳn với ứng dụng)
- Cross-JVM communication and shared storage
- Distributed cache, often in front of a database (bộ nhớ cache phân tán, thường đặt ở phía trước tầng cơ sở dữ liệu)
- In-memory processing and Analytics
- In-memory computing
- Internet of Things infrastructure (kiến trúc hệ thống IoT)
- Key-value database (cơ sở dữ liệu dạng key-value)
- Memcached alternative with a protocol compatible interface
- Microservices infrastructure (kiến trúc microservices)
- NoSQL data store (kho dữ liệu NoSql)
- Spring Cache
- Web Session clustering
Hazelcast sử dụng trong những trường hợp nào
Hazelcast phù hợp khi chúng ta cần:
- ứng dụng yêu cầu xử lý dữ liệu lớn bằng cách phân vùng dữ liệu
- dữ liệu được truy cập thường xuyên và được lưu trữ trong grid
- xây dựng một bộ nhớ cache
- xây dựng một kho lưu trữ dữ liệu chính cho các ứng dụng có yêu cầu về hiệu suất, khả năng mở rộng và hiệu suất cao
- kho lưu trữ key-value NoSQL trong bộ nhớ
- hệ thống pub-sub có tốc độ nhanh và khả năng mở rộng tốt
- hệ thống message queue để giải quyết các vấn đề về bất đồng bộ
- một hệ thống cache phân tán có khả dụng cao cho các ứng dụng
References: Hazelcast-IMDG
Một số bài viết nổi bật:
- Hazelcast Distributed Cache with Spring Boot
- Cài đặt Hazelcast trên server Centos 7
- Build hệ thống Pub Sub dùng Hazelcast và Spring boot
- Elasticsearch là gì mà bá đạo đến vậy? [Phần 1]
- Elasticsearch và Kibana dựng bằng Docker
- Series tìm hiểu lập trình java
- Cùng nhau tìm hiểu Docker
- Active Jrebel để code trong IntellIJ IDEA
- Lập trình viên lúc rảnh rỗi thì nên làm gì?
- Câu chuyện phỏng vấn online mùa Covid
- Nói sao để được chào đón, làm thế nào để được ghi nhận
- 13 Plugin không thể thiếu khi làm việc với IntellIJ IDEA
- Những plugins Intellij IDEA tốt nhất trong công việc
- Crack Intellij IDEA new versions 2021
- Crack IntellIJ để code như một senior
- Shortcut Intellij hữu ích để làm việc được hiệu quả hơn
- Build hệ thống Pub-Sub bằng Kafka+Spring boot (phần 3)
- Git stash giúp bạn trở nên chuyên nghiệp như thế nào?
- Git revert với git reset hoạt động như thế nào
- Tìm hiểu cơ chế hoạt động của Apache Kafka (phần 1)
- Tìm hiểu cơ chế hoạt động của Apache Kafka (phần 2)