Hướng Dẫn Khởi Chạy Elasticsearch: Cách Thức và Tùy Chọn
Elasticsearch là một công cụ mạnh mẽ cho lưu trữ và tìm kiếm dữ liệu. Bài viết này sẽ hướng dẫn bạn cách khởi chạy Elasticsearch trên nhiều nền tảng khác nhau với các bước đơn giản và rõ ràng.
1. Khởi Chạy Elasticsearch Như Một Standalone Instance
Khởi chạy Elasticsearch dưới dạng một standalone instance là bước khởi đầu đơn giản và hiệu quả nhất. Bạn chỉ cần làm theo một vài bước dễ dàng:
-
Tải xuống gói cài đặt phù hợp với hệ điều hành của bạn.
-
Chạy lệnh sau trên Linux / Unix / Mac:
bashbin/elasticsearch
Nếu bạn sử dụng Windows, hãy chạy:
bashbin\elasticsearch.bat
Vậy là bạn đã hoàn tất! Cần lưu ý rằng mỗi khi bạn khởi chạy một instance Elasticsearch, bạn đang khởi chạy một node trong cluster. Các loại node có thể bao gồm:
- Data node: Lưu trữ và truy vấn dữ liệu.
- Ingest node: Xử lý và chuyển đổi dữ liệu trước khi ghi vào chỉ mục.
2. Chạy Elasticsearch Dưới Dạng Cluster
Khởi chạy Elasticsearch dưới dạng một cluster là lựa chọn tốt hơn cho production. Điều này có nghĩa là bạn sẽ sử dụng nhiều nodes trên các physical instances khác nhau:
- Mỗi cluster có một tên duy nhất, cấu hình qua
cluster.name
. - Các nodes tham gia cluster bằng tên này và một master node sẽ quản lý các hoạt động trong cluster.
Bạn cũng có thể cấu hình thêm một số loại node khác:
- Master-eligible node: Có thể được bầu là master node.
- Coordinating-only node: Thực hiện việc route requests mà không lưu trữ hoặc xử lý dữ liệu.
- Tribe node: Kết nối và thực hiện truy vấn trên nhiều cluster khác nhau.
3. Nhúng Elasticsearch Vào Ứng Dụng
Bạn có thể nhúng Elasticsearch vào ứng dụng Java / JVM để tích hợp sâu hơn. Một ví dụ với Spring Framework như sau:
java
@Bean
public Settings elasticsearchSettings() {
return Settings.builder()
.put("path.home", home().getAbsolutePath())
.put("path.data", data().getAbsolutePath())
.build();
}
Tuy nhiên, hãy cân nhắc rằng việc này có thể không phải luôn là giải pháp tối ưu, đặc biệt với các hệ thống lớn hơn.
4. Chạy Elasticsearch Trong Container
Việc sử dụng Docker đã trở thành xu hướng trong triển khai và vận hành ứng dụng. Để khởi chạy Elasticsearch trong Docker, bạn chỉ cần một lệnh duy nhất:
bash
docker run -d -p 9200:9200 -p 9300:9300 elasticsearch:5.2.0
Nếu bạn cần chạy một cluster với nhiều nodes, bạn có thể dùng các lệnh sau:
bash
docker run -d -p 9200:9200 -p 9300:9300 --name es1 elasticsearch:5.2.0 -E cluster.name=es-cluster -E node.name=es1 -E transport.host=0.0.0.0
docker run -d --name es2 --link=es1 elasticsearch:5.2.0 -E cluster.name=es-cluster -E node.name=es2 -E transport.host=0.0.0.0 -E discovery.zen.ping.unicast.hosts=es1
docker run -d --name es3 --link=es1 elasticsearch:5.2.0 -E cluster.name=es-cluster -E node.name=es3 -E transport.host=0.0.0.0 -E discovery.zen.ping.unicast.hosts=es1
Khi các container này đang chạy, bạn sẽ có một cluster Elasticsearch với ba nodes.
Tóm Lược
Trong bài viết này, chúng ta đã khám phá nhiều phương pháp để khởi chạy Elasticsearch:
- Standalone Instance: Đơn giản và nhanh chóng.
- Cluster Mode: Một yêu cầu cần thiết cho môi trường sản xuất.
- Embedded Mode: Có thể hữu ích, nhưng cần xem xét cẩn thận.
- Docker Deployment: Phương pháp linh hoạt và hiệu quả.
Trong phần tiếp theo, chúng ta sẽ nói về việc Elasticsearch có thể phù hợp thế nào với các hệ thống phần mềm hiện đại và cách tối ưu hóa khả năng của nó để đáp ứng nhu cầu của bạn.