thảo luận Nên chọn message queue nào

  • Người tạo chủ đề Người tạo chủ đề chetdoi89
  • Ngày bắt đầu Ngày bắt đầu
Nếu làm ứng dụng tài chính thì có thể dùng Chronicle. Theo một số nguồn mình tìm hiểu thì perf ăn đứt Kafka. Có 1 case study là Binance dùng Chronicle làm queue để xử lý lượng giao dịch khổng lồ của mình.
 
Use-case thì bạn có thể đọc engineering blog của các công ty event-drive như Grab, Gojek, User, Lift, AirBnB, Netflix ... hoặc nhảy thẳng vào kafka-summit mà xem nha :D
Vài ví dụ:
....
Book thì có thể bắt đầu với cuốn Kafka: The Definitive Guide của Confluent, mình thấy khá dễ hiểu và gần gũi với thực tế.

Edit: Ở VN thì mình biết có mấy bên cũng chơi hệ thống có Kafka ở core, tiếc là mấy cái slide trong mấy cái conference không thấy share :(
Chất lượng quá thím, đã note
FY7e6U1.png
 
Mấy thím trên đã nói gần hết rồi, mình bổ sung vài ý nữa thôi:
Về technical Objectives:
  • RabbitMQ thuộc về loại vertical scaling, còn Kafka là horizontal scaling
  • RabbitMQ thường phục vụ các long-running task, còn Kafka theo dạng deliver sensitive data, task, streaming with high throughput.

Bổ sung cái bảng này nữa
1667618207790.png

Đại khái RabbitMQ sẽ khó hỗ trợ thím ordering (nhớ các version về sau có hỗ trợ nhưng khá là tricky), Kafka thì support ordering theo parittion. Về mặt gurantees khi delivery thì Kafka sẽ tốt hơn vì nó dạng log, nghĩa là thím chỉ commit offsets khi read chứ message không bị xóa đi. Nó sẽ xóa theo default 7 ngày, cái này gọi là Retention (tham khảo bài này nha thím Retention Medium).

Về Use cases:
RabbitMQ sẽ dành cho các trường hợp như các thím trên đã nói, đại khái nó là long running task đó, ngoài ra ví dụ cần hỡ trợ các protocols cũ như STOMP, MQTT, AMQP, 0-9-1, các loại routing phức tạp như Fan-out, direct, ... delay message.

Còn đối với các system lớn, traffic nhiều, integration phức tạp giữa các service thì nên dùng Kafka.
 
Đối với mấy thím làm Big Data chắc cũng không lạ cái hình này nhỉ, nó là 1 dạng streaming data của hệ thống sang data Warehouse rồi xử lý Big data để analyze. Chỉ biết là nếu consume trực tiếp từ Kafka thì khả năng slow down performance của Kafka xuống nên cần streaming data sang 1 storage khác, như hình là thằng AWS S3, thím nào làm DBA thì bổ sung cho mình nào.
FY7e6U1.png


1667618658259.png
 
Nếu làm ứng dụng tài chính thì có thể dùng Chronicle. Theo một số nguồn mình tìm hiểu thì perf ăn đứt Kafka. Có 1 case study là Binance dùng Chronicle làm queue để xử lý lượng giao dịch khổng lồ của mình.
Hiếm lắm mới thấy có 1 người nhắc đến bọn Chronicle này. Mà em tưởng cái Chronicle-queue này là để các process trong 1 service giao tiếp với nhau chứ nhỉ. Bác có thể chia sẻ thêm được ko, công nghệ này ít tài liệu quá.
 
Dạo này thấy có bên bắt đầu dùng Redpanda, API compatibility với Kafka :big_smile:
 
Ở đây có bác nào contribute vào Apache Kafka chưa nhỉ, mọi người thấy tương lai của Apache Kafka thế nào ạ? Có sống tốt trong cỡ 10-15 năm tới không nhỉ? Sự phát triển của SaaS, IaaS đôi khi cũng làm cho OSS giờ cũng ít contribute hẳn ra. :(
 
Chào các bác, em đang tìm hiểu Kafka và có biết về use_case getTaxi này, bác nào giúp em hiểu rõ hơn Kafka stream(Surge Pricing model) nó là gì và sử dụng công nghệ nào đc k ạ
Thank các bác nhiều

1671121910769.png
 
Dạo này thấy có bên bắt đầu dùng Redpanda, API compatibility với Kafka :big_smile:
Thằng này chắc tiếp bước con đường của ScyllaDB: Kiếm một thằng java ngon lành clone bằng C++ theo kiểu hardcore để target vài con cá mập là ấm!

Enterprise mua service bọn nó thì ok chứ kiểu hardcore này ông nào không đủ lực theo là mệt … hoặc điếc không sợ súng cũng có cái hay :-))

Chronicle là dạng brokerless, phải xếp nó cùng loại với ZeroMQ, NanoMQ, NNG chứ không so với các loại broker được
 
Thằng này chắc tiếp bước con đường của ScyllaDB: Kiếm một thằng java ngon lành clone bằng C++ theo kiểu hardcore để target vài con cá mập là ấm!

Enterprise mua service bọn nó thì ok chứ kiểu hardcore này ông nào không đủ lực theo là mệt … hoặc điếc không sợ súng cũng có cái hay :))

Chronicle là dạng brokerless, phải xếp nó cùng loại với ZeroMQ, NanoMQ, NNG chứ không so với các loại broker được
Bây giờ có trend port project từ Java -> C++/Rust, thằng nào cũng quảng cáo performance tăng xx lần, resource usage giảm xx lần. Nói chung cũng tốt thêm sự lựa chọn :shame:
 
Ghét mấy đứa chê câu hỏi của Junior vc. Chẳng lẽ ko ai đi lên từ Junior à, chẳng lẽ vozer ai cũng là Senior à. Lên đây hỏi để mn thảo luận ko được à! Junior thì biết éo latency hay thoughput là gì để mà hỏi dựa theo tiêu chí ý
 
Ghét mấy đứa chê câu hỏi của Junior vc. Chẳng lẽ ko ai đi lên từ Junior à, chẳng lẽ vozer ai cũng là Senior à. Lên đây hỏi để mn thảo luận ko được à! Junior thì biết éo latency hay thoughput là gì để mà hỏi dựa theo tiêu chí ý
đồng ý anh, hỏi là 1 thứ tốt, em ở công ty khuyến khích bọn fresher junior hỏi mà có cháu nào hỏi đâu
 
đồng ý anh, hỏi là 1 thứ tốt, em ở công ty khuyến khích bọn fresher junior hỏi mà có cháu nào hỏi đâu
+ 1 đồng ý
zFNuZTA.png
, có nhiều cái tưởng chừng đơn giản và có thể tra google nhưng chưa chắc đâu
uzQb2yt.png
biết đâu lại học thêm đc gì mới, nhưng trên có bác nêu ra cái chronicle là cái mà mình tìm đọc nhiều r nhưng mãi chưa thông
KAUdgHo.png
 
kafka sinh ra để stream, vì nó đảm bảo được thứ tự của các message, dựa vào key trong mỗi partition. Không ai dùng kafka để làm queue chạy background job cả, vì khi số consumer > số partion, thì việc scale là vô nghĩa.

rabbitmq sinh ra để làm queue chạy background job, rabbitmq không mạnh trong việc đảm bảo thứ tự của msg, có thể cố đấm ăn xôi bằng cách set header priority, nhưng không linh hoạt được.

kafka persistance data tốt hơn, có thể cấu hình thời gian msg có thể được lưu lại disk. Có thể đọc lại bất kỳ msg cũ từ cách khai báo offset. Nên consumer có thể "đọc lại" msg bất cứ khi nào muốn.

Rabbitmq không làm được điều này, từ version 3.8 có hỗ trợ Quorum Queue để HA message, còn các queue khác, thì khi msg đã được subscriber báo ACK đọc msg rồi, thì nó sẽ bị xóa khỏi queue.

...
còn nhiều nữa lắm, mà lười gõ quá
Đánh chứng thua quá lại vác phím đi culi ah anh bò húc :big_smile:. Có project thì ới tôi với nha, lõm quá rồi.
 

Thống kê chủ đề

Ngày tạo
chetdoi89,
Người trả lời cuối
the_ruler,
Trả lời
69
Lượt xem
23.828
Quay lại
Lên đầu trang