January 19, 2021January 21, 2021cherry & kiwi157 Views 0 CommentsKafka, Message Broker, message queue

Kafka là gì?

Đó là hệ thống message pub/sub phân tán (distributed messaging system). Bên pulbic tài liệu được hotline là producer, bên subscribe nhấn dữ liệu theo topic được hotline là consumer.

Kafka có chức năng truyền một lượng lớn message theo thời hạn thực, vào trường đúng theo bên dấn chưa dìm message vẫn được tàng trữ sao giữ bên trên một sản phẩm chờ với cả bên trên ổ đĩa đảm bảo an toàn. Đồng thời nó cũng khá được replicate trong cluster giúp phòng tránh mất tài liệu.

Điểm sáng này của Kakfa hay được nối liền cùng với Điểm lưu ý là “persistence” cùng “durable”.

Bạn đang xem: Kafka là gì

*
Cấu trúc Kafka đối kháng giản

Các thuật ngữ vào Kakfa

PRODUCER: Kafka lưu giữ, phân một số loại message theotopic, sử dụngproducerđể publish message vào cáctopic. Dữ liệu được gửi đển partition của topic tàng trữ bên trên Broker.

CONSUMER: Kafka sử dụngconsumernhằm subscribe vào topic, cácconsumerđược định danh bởi những group name. Nhiềuconsumerhoàn toàn có thể cùng gọi một topic.

TOPIC: Dữ liệu truyền vào Kafka theo topic, khi đề nghị truyền tài liệu cho những ứng dụng khác biệt thì sẽ tạo nên ra các topic khác biệt.

PARTITION: Đây là khu vực dữ liệu đến mộttopicđược lưu trữ. Mộttopiccó thể tất cả một tốt nhiềupartition. Trên mỗipartitionthì tài liệu tàng trữ cố định và được gán cho một ID Điện thoại tư vấn làoffphối. Trong một Kafka cluster thì một partition rất có thể replicate (sao chép) ra các phiên bản. Trong số đó tất cả một bảnleaderChịu đựng trách nát nhiệm phát âm ghi tài liệu với những bạn dạng còn lại gọi làfollower. lúc bảnleaderbị lỗi thì sẽ có được một bảnfollowerlên làmleadersửa chữa thay thế. Nếu muốn dùng những consumer đọc tuy nhiên tuy vậy tài liệu của một topic thì topic kia rất cần được có không ít partition.

BROKER: Kafka cluster là 1 tập thích hợp các broker, những broker vận động song song với nhau nhằm quản lý tài liệu vào ra. Các broker vận động ngang sản phẩm với nhau và được quản lý bởi vì Zookeeper.

ZOOKEEPER: được dùng để làm thống trị với sắp xếp các broker. Có thể nói ZooKeeper phân tử hễ như một “distributed coordination”. VD Client A ghi dữ liệu thì tức thì lập tức Client B không giống hoàn toàn có thể thấy được biến đổi ấy, vấn đề này hết sức quan trọng vào môi trường phân tán, lúc tò mò về HA của Hdfs tuyệt Yarn, các bạn cũng biến thành thấy các câu chữ về ZooKeeper.

Đơn vị thống trị tài liệu của ZK là node, phiên bản thân 1 node hoàn toàn có thể cất cả dữ liệu và các node con bên phía trong.

*

Toàn cỗ ban bố về topicpartitions của 1 cluster hầu hết được lưu lại trên ZK, đó là nguyên do tại sao lúc cài đặt Kafka bạn luôn được đề nghị thiết đặt ZK, khía cạnh định, node ZK được áp dụng để lưu thông báo về nhiều Kafka là /brokers, trong trên đây sẽ chứa lên tiếng về id của Broker, những topics và partitons.

Xem thêm: " So What Là Gì ? So What Và So That

*
Cáu trúc Kafka bỏ ra tiết

Thêm vào đó, thông tin Leader của những partition cũng khá được lưu trữ trên Zookeeper, lúc có sự khiếu nại thêm hoặc mất broker, ban bố bên trên ZK để giúp đỡ cục bộ các broker còn lại hiểu rằng hiện trạng của các để có hầu như kiểm soát và điều chỉnh cân xứng về leader.

*

Message cùng Batch

Đơn vị tài liệu vào Kafka được điện thoại tư vấn làmessage.Nếu bạn tiếp cận Kafka trường đoản cú mắt nhìn của nền tảng các đại lý tài liệu, chúng ta cũng có thể nghĩ về message tương tự nlỗi mộtrowhoặc mộtrecord.

Một message chỉ đơn giản và dễ dàng là một trong những mảng byte , vì chưng vậy tài liệu cất trong số ấy không tồn tại định dạng ví dụ hoặc chân thành và ý nghĩa . Một message có thể bao gồm một tùy chọnbit of metadata, được hotline là 1 trong những khóa ( tức thị cái bit này là khóa của metadata :v ). Khóa này cũng là 1 mảng byte với cũng giống như message nó không có chân thành và ý nghĩa rõ ràng như thế nào cả.

Các key được sử dụng Lúc message được ghi vào các phân vùng không giống nhau một cách dễ dàng điều hành và kiểm soát hơn. Đơn giản duy nhất là tạo ra một hàm băm đồng điệu của key cùng tiếp nối cho vô phân vùng bao gồm số là kết quả sau khi băm của key. Vấn đề này bảo đảm an toàn rằng những lời nhắn tất cả cùng khóa luôn luôn được ghi vào những vùng như thể nhau.

Để hiệu quả, message được viết vào Kafka theo đợt( Batches ).batchchỉ là 1 trong tập hòa hợp những message, tất cả chúng đang được tạo ra đến thuộc mộttopic( chủ thể ) vàpartition( phân vùng) .Cứ đọng mỗi message nhưng cứ đọng chạy cô quạnh bên trên mạng thì ngân sách khá cao chính vì như thế Việc gộp các message này thành một lô ( Batches ) làm cho giảm thiểu chi phí này. Tất nhiên, đấy là sự tiến công đổi giữa độ trễ cùng thông lượng ,cũng chỉ là 2 phương diện của một đồng xu thôi những lô càng mập càng các message đã yêu cầu đợi chờ cho đầy đủ lô mới được gửi như vậy độ trễ vẫn bự. Các lô cũng hay được nén vì vậy hỗ trợ năng lực truyền cùng lưu trữ dữ liệu công dụng rộng.

Bên cạnh đó, Kafka broker hoàn toàn có thể cách xử trí những tin nhắn lên đến mức 1MB (trên thực tế, thấp hơn 1MB một chút) cùng với thiết đặt cấu hình khoác định, mặc dù Kafka được buổi tối ưu hóa cho các tin nhắn nhỏ tuổi có form size khoảng chừng 1K. Cài đặt cấu hình đến message broker cùng topic cho các thông tin to hơn ko bên trong phạm vi của nội dung bài viết này.

Stream

Streamlà thuật ngữ thường xuyên được thực hiện Khi nói đến dữ liệu trong các khối hệ thống nhỏng Kafka. Thông thường, mộtstreamđược xem như là mộtsingle topiccủa dữ liệu, bất kỳ con số phân vùng vào topic. Vấn đề này thể hiện mộtstreamdữ liệu độc nhất vô nhị gửi từ producers lịch sự consumers. Cách đề cùa đến những message này là khá thịnh hành Khi biểu đạt việc cách xử trí củastream, đó là lúc một vài framework nlỗi Kafka Streams, Apache Samza cùng Storm, hoạt động bên trên những message theo thời hạn thực.

Tại sao Kafka lại nkhô hanh đến nlỗi vậy?

Kafka phụ thuộc không hề ít vào nhân hệ điều hành quản lý nhằm di chuyển dữ liệu một cách nhanh lẹ. Nó phụ thuộc vào những cơ chế củaZero Copy. Kafka có thể chấp nhận được họ bố trí những bạn dạng ghi dữ liệu thành các kân hận. Các khối dữ liệu này hoàn toàn có thể được nhìn thấy từ trên đầu đến cuối từProducermang lại khối hệ thống tệp (Kafka Topic Log) choConsumer. Batching cho phép nén tài liệu kết quả rộng với bớt độ trễ I / O.

Kafka rời xào luộc cỗ đệm vào bộ nhớ lưu trữ với truyền dữ liệu vào nhật ký kết bất biến(offset) cố gắng bởi áp dụng truy vấn ngẫu nhiên, thiết yếu điều đó tạo nên kafka nhanh đến vậy.

Một vài use case mang đến kafka

Website Activity Monitoring: quan sát và theo dõi buổi giao lưu của websiteLog Aggregation: tổng hòa hợp logMetrics Collection: thu thập dữ liệu, tracking hành động người tiêu dùng như những thông số kỹ thuật nhỏng page view, tìm kiếm action của user sẽ được publish vào trong 1 topic cùng sẽ tiến hành cách xử trí sauEvent-Sourcing: Lưu lạitrạng tháicủa hệ thống để có thể tái hiện nay vào ngôi trường thích hợp system bị down.

Use case Kafka cho thương mại điện tử

Một khối hệ thống tmùi hương mại điện tử có khá nhiều hệ thống thực hiện các tác vụ không giống nhau. Tất cả những VPS này hầu hết vẫn giao tiếp với database hệ thống nhằm hiểu ghi dữ liệu.

Vì vậy đang có rất nhiều data pipeline kết nối từ bỏ không ít server khác cho database server này. Cơ cấu nhỏng sau:

*

Nhìn đơn giản vậy thôi chứ đấy là hệ thống nhỏ, đối với hệ thống phệ hơn thế thì nó đã nhỏng vầy:

*

Lúc bấy giờ data pipeline vẫn tinh vi kinh khủng do gia tăng lượng hệ thống hệ thống. Trong thời điểm này ví như ta sử dụng Kafka bóc rời các data pipeline giữa những hệ thống để gia công mang lại bài toán tiếp xúc thân những khối hệ thống trlàm việc cần dễ dàng hơn với dễ dàng quản lý rộng.

*

Use case thực hiện Kafka mang lại IoT

*

Các cảm biến IoT thu thập dữ liệu, tuy vậy bởi vì những đồ vật này sẽ không đầy đủ mạnh bạo để tích hợp những staông chồng ngăn uống xếp TCP mạng yêu cầu bọn chúng sử dụng những giao thức như Z-Wave sầu tuyệt Zigbee để gửi tài liệu mang đến một GW trung tâm có chức năng tổng thích hợp dữ liệu cùng gửi liên kết đến khối hệ thống Kafka.

Các nhiều tài liệu này có thể đưa đến nhiều Apache Storm với Apađậy Spark nhằm giải pháp xử lý dữ liệu ngay sát thời gian thực.

Xem thêm: Điều Gì Xảy Ra Khi Trí Tuệ Sâu Sắc Là Gì, Sâu Sắc Là Gì

Kafka vs Rabbit MQ

Kafka cung cấp hiệu suất cao hơn nhiều so với những bên môi giới lời nhắn như RabbitMQ. Nó áp dụng I / O đĩa tuần trường đoản cú để tăng năng suất, tạo cho nó phát triển thành một tùy chọn cân xứng nhằm triển khai những hàng đợi. Nó hoàn toàn có thể dành được thông lượng cao (hàng ngàn lời nhắn mỗi giây) cùng với tài nguyên ổn tinh giảm, một điều quan trọng cho các ngôi trường thích hợp áp dụng dữ liệu béo.


Chuyên mục: KHÁI NIỆM LÀ GÌ
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *