Giter Site home page Giter Site logo

hantmac / automq-for-kafka Goto Github PK

View Code? Open in Web Editor NEW

This project forked from automq/automq

0.0 1.0 0.0 140.79 MB

A cloud native implementation for Apache Kafka, reducing your cloud infrastructure bill by up to 90%.

Home Page: https://www.automq.com/

License: Apache License 2.0

Shell 0.27% Python 2.50% Java 74.63% Scala 22.40% XSLT 0.02% HTML 0.01% Batchfile 0.07% Dockerfile 0.02% Roff 0.08%

automq-for-kafka's Introduction

AutoMQ for Kafka

The truly serverless Kafka solution that maximizes the benefits of cloud

Docs License

What is AutoMQ for Kafka

AutoMQ for Apache Kafka is redesigned based on cloud infrastructure, and users benefit from elastic computing resources and nearly unlimited cheap storage in the cloud.

It is developed based on Apache Kafka and replace Kafka's local storage with S3 Stream. This design allows Kafka Brokers:

  • Become stateless and could scale up/down in seconds.
  • By making targeted modifications at the LogSegment level and extensively reusing upper-level code, it guarantees 100% functional compatibility.

Compared to Apache Kafka, AutoMQ for Apache Kafka offers the following advantages:

  1. Enhanced Scalability: It leverages cloud-native infrastructure and stateless Kafka Brokers, enabling seamless scaling to meet varying workloads. This elasticity allows for efficient resource allocation and ensures optimal performance even during peak periods.

  2. 10x Cheaper: By utilizing object storage, it could save storage cost up to 90%; By leveraging serverless architecture and spot instance, it can achieve significant cost savings of up to 90% in compute expenses.

  3. Simplified Management: No need to manage disks; It automatically performs second-level partition load balancing across Brokers.

S3Stream

AutoMQ for Kafka is built on S3Stream directly, a streaming library based on object storage. Please refer to S3Stream for more architecture details.

AutomMQ for Kafka and AutoMQ for RocketMQ share the same codebase of S3Stream, so please refer to AutoMQ RocketMQ for the source code.

Quick Start

Local Run

Launch cluster

Launch an AutoMQ for Kafka cluster locally using Docker Compose.

This cluster comprises 1 Controller node, 2 Broker nodes, and an additional LocalStack container to simulate S3 services locally.

# launch AutoMQ for Kafka cluster
docker compose -f docker/docker-compose.yaml up -d

Run a console producer and consumer

  1. Create a topic to store your events:
# create quickstart-events topic
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9094
  1. Run the console producer client to write a few events into your topic. By default, each line you enter will result in a separate event being written to the topic.
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9094

You may input some messages like:

This is my first event
This is my second event
  1. Run the console consumer client to read the events you just created:
# CRTL-C to exit the consumer
# run console consumer
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9094
  1. Clean up the cluster
docker compose -f docker/docker-compose.yaml down -v

Explore more: Second-level partition migration and automatic traffic rebalancing.

AutoMQ Cloud

Sign up for a free trial of AutoMQ Cloud and experience auto scaling with AutoMQ for Kafka.

License

Apache 2.0 license

automq-for-kafka's People

Contributors

bbejeck avatar c0urante avatar cadonna avatar chia7712 avatar cmccabe avatar dajac avatar dengziming avatar dguy avatar enothereska avatar ewencp avatar granthenke avatar guozhangwang avatar hachikuji avatar huxihx avatar ijuma avatar jsancio avatar junrao avatar mimaison avatar mjsax avatar mooc9988 avatar mumrah avatar nehanarkhede avatar omkreddy avatar rajinisivaram avatar rhauch avatar showuon avatar superhx avatar ther1sing3un avatar vahidhashemian avatar vvcephei avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.