toantd1202 / toan1

test
0 stars 0 forks source link

kafka #1

Open toantd1202 opened 4 years ago

toantd1202 commented 4 years ago

research kafka

toantd1202 commented 4 years ago

Kafka

Kafka kết hợp ba khả năng chính để bạn đáp ứng nhu cầu triển khai các trường hợp sử dụng cho việc streaming end-to-end bằng:

Tất cả chức năng này được cung cấp theo hình thức phân tán, có khả năng mở rộng cao, đàn hồi, chịu lỗi và an toàn. Kafka có thể được triển khai trên phần cứng vật lý, máy ảo và containers cũng như trên cloud.

Cách thức hoạt động

Kafka là một hệ thống phân tán, sử dụng mô hình client-server, giao tiếp thông qua giao thức TCP.

Server: Kafka được chạy dưới dạng cluster gồm một hoặc nhiều máy chủ có thể mở rộng nhiều datacenters. Một số máy chủ này tạo thành lớp lưu trữ, được gọi là các brokers. Các máy chủ khác chạy Kafka Connect để liên tục nhập và xuất dữ liệu dưới dạng các luồng sự kiện để tích hợp Kafka với các hệ thống như database cũng như các Kafka cluster khác. Một Kafka cluster có khả năng mở rộng cao và khả năng chịu lỗi: nếu bất kỳ máy chủ nào của nó bị lỗi, các máy chủ khác sẽ tiếp quản lại công việc đó để đảm bảo hoạt động liên tục mà không bị mất dữ liệu.

Clients: Cho phép viết các ứng dụng phân tán và microservice đọc, ghi và xử lý các luồng sự kiện song song, theo quy mô và theo cách có thể chịu lỗi ngay cả trong trường hợp có sự cố mạng.

Các thành phần cơ bản

Topic: Đây là các danh mục mà các thông báo được xuất bản. Producer: Đây là quá trình xuất bản thông điệp thành các topics của Kafka. Consumer: Quá trình này đăng ký các topics và xử lý các tin nhắn. Consumer là một phần của consumer group bao gồm nhiều trường hợp về khả năng mở rộng và khả năng chịu lỗi. Broker: Mỗi máy chủ trong một Kafka cluster được gọi là một broker.

Logs được lấy từ các nguồn khác nhau có thể được đưa vào các Kafka topics khác nhau thông qua một số quy trình của producer, sau đó sẽ được consumer sử dụng.

API

Producer API cho phép ứng dụng gửi luồng dữ liệu đến các topics trong cụm Kafka. Consumer API cho phép các ứng dụng đọc luồng dữ liệu từ các topics trong cụm Kafka. Streams API cho phép chuyển đổi luồng dữ liệu từ topics vào thành topics đầu ra. Connect API cho phép triển khai các trình kết nối liên tục kéo từ một số hệ thống hoặc ứng dụng nguồn vào Kafka hoặc đẩy từ Kafka vào một số hệ thống hoặc ứng dụng. Admin API cho phép quản lý và kiểm tra các topics, nhà môi giới và các đối tượng Kafka khác.

Kafka connect

Kafka Connect là một công cụ để truyền dữ liệu có quy mô và đáng tin cậy giữa Apache Kafka và các hệ thống khác. Nó giúp việc xác định nhanh chóng các trình kết nối di chuyển các tập dữ liệu lớn vào và ra khỏi Kafka trở nên đơn giản. Kafka Connect có thể nhập toàn bộ databases hoặc thu thập metrics từ tất cả các máy chủ ứng dụng của bạn vào các Kafka topics, làm cho dữ liệu có sẵn để xử lý luồng với độ trễ thấp. Việc export có thể cung cấp dữ liệu từ các Kafka topics vào hệ thống lưu trữ và truy vấn hoặc vào hệ thống để phân tích ngoại tuyến.

Kafka Connect hiện hỗ trợ hai chế độ thực thi: độc lập và phân tán.