Windows
Redpanda is a modern streaming platform for mission critical workloads. With Redpanda you can get up and running with streaming quickly and be fully compatible with the Kafka ecosystem.
This quick start guide can help you get started with Redpanda for development and testing purposes. For production or benchmarking, set up a production deployment.
Getting Redpanda running
You can run Redpanda on a Windows machine in a Docker container.
Before you start you’ll need to install WSL2 and Docker for Windows.
Don’t forget that in order for Docker for Windows to work, you have to enable your Hypervisor service in the Windows Control Panel.
Executing directly from Docker repository
The Docker image for Redpanda is hosted in Docker Hub.
Setting a 1-node cluster
You can copy and paste this command to create a 1-node cluster:
docker run -d --pull=always --name=redpanda-1 --rm ^
-p 8081:8081 ^
-p 8082:8082 ^
-p 9092:9092 ^
-p 9644:9644 ^
docker.redpanda.com/redpandadata/redpanda:latest ^
redpanda start ^
--overprovisioned ^
--smp 1 ^
--memory 1G ^
--reserve-memory 0M ^
--node-id 0 ^
--check=false
Setting a 3-node cluster
To test out the interaction between nodes in a cluster, set up a Docker network with 3 containers in a cluster.
Create network and persistent volumes
First we need to set up a bridge network so that the Redpanda instances can communicate with each other but still allow for the Kafka API to be available on the localhost. We’ll also create the persistent volumes that let the Redpanda instances keep state during instance restarts.
docker network create -d bridge redpandanet && ^
docker volume create redpanda1 && ^
docker volume create redpanda2 && ^
docker volume create redpanda3
Start Redpanda nodes
We then need to start the nodes for the Redpanda cluster.
docker run -d ^
--pull=always ^
--name=redpanda-1 ^
--hostname=redpanda-1 ^
--net=redpandanet ^
-p 8081:8081 ^
-p 8082:8082 ^
-p 9092:9092 ^
-p 9644:9644 ^
-v "redpanda1:/var/lib/redpanda/data" ^
docker.redpanda.com/redpandadata/redpanda redpanda start ^
--smp 1 ^
--memory 1G ^
--reserve-memory 0M ^
--overprovisioned ^
--node-id 0 ^
--check=false ^
--pandaproxy-addr INSIDE://0.0.0.0:28082,OUTSIDE://0.0.0.0:8082 ^
--advertise-pandaproxy-addr INSIDE://redpanda-1:28082,OUTSIDE://localhost:8082 ^
--kafka-addr INSIDE://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092 ^
--advertise-kafka-addr INSIDE://redpanda-1:29092,OUTSIDE://localhost:9092 ^
--rpc-addr 0.0.0.0:33145 ^
--advertise-rpc-addr redpanda-1:33145 &&
docker run -d ^
--pull=always ^
--name=redpanda-2 ^
--hostname=redpanda-2 ^
--net=redpandanet ^
-p 8083:8083 ^
-p 9093:9093 ^
-v "redpanda2:/var/lib/redpanda/data" ^
docker.redpanda.com/redpandadata/redpanda redpanda start ^
--smp 1 ^
--memory 1G ^
--reserve-memory 0M ^
--overprovisioned ^
--node-id 1 ^
--seeds "redpanda-1:33145" ^
--check=false ^
--pandaproxy-addr INSIDE://0.0.0.0:28083,OUTSIDE://0.0.0.0:8083 ^
--advertise-pandaproxy-addr INSIDE://redpanda-2:28083,OUTSIDE://localhost:8083 ^
--kafka-addr INSIDE://0.0.0.0:29093,OUTSIDE://0.0.0.0:9093 ^
--advertise-kafka-addr INSIDE://redpanda-2:29093,OUTSIDE://localhost:9093 ^
--rpc-addr 0.0.0.0:33146 ^
--advertise-rpc-addr redpanda-2:33146 &&
docker run -d ^
--pull=always ^
--name=redpanda-3 ^
--hostname=redpanda-3 ^
--net=redpandanet ^
-p 8084:8084 ^
-p 9094:9094 ^
-v "redpanda3:/var/lib/redpanda/data" ^
docker.redpanda.com/redpandadata/redpanda redpanda start ^
--smp 1 ^
--memory 1G ^
--reserve-memory 0M ^
--overprovisioned ^
--node-id 2 ^
--seeds "redpanda-1:33145" ^
--check=false ^
--pandaproxy-addr INSIDE://0.0.0.0:28084,OUTSIDE://0.0.0.0:8084 ^
--advertise-pandaproxy-addr INSIDE://redpanda-3:28084,OUTSIDE://localhost:8084 ^
--kafka-addr INSIDE://0.0.0.0:29094,OUTSIDE://0.0.0.0:9094 ^
--advertise-kafka-addr INSIDE://redpanda-3:29094,OUTSIDE://localhost:9094 ^
--rpc-addr 0.0.0.0:33147 ^
--advertise-rpc-addr redpanda-3:33147
Executing with a docker-compose file
Another way to spin up a Redpanda cluster is with a docker-compose file.
Copy the code here and save it as docker-compose.yaml
:
version: '3.7'
services:
redpanda:
# NOTE: Please use the latest version here!
image: docker.redpanda.com/redpandadata/redpanda:v21.11.15
container_name: redpanda-1
command:
- redpanda
- start
- --smp
- '1'
- --reserve-memory
- 0M
- --overprovisioned
- --node-id
- '0'
- --kafka-addr
- PLAINTEXT://0.0.0.0:29092,OUTSIDE://0.0.0.0:9092
- --advertise-kafka-addr
- PLAINTEXT://redpanda:29092,OUTSIDE://localhost:9092
- --pandaproxy-addr
- PLAINTEXT://0.0.0.0:28082,OUTSIDE://0.0.0.0:8082
- --advertise-pandaproxy-addr
- PLAINTEXT://redpanda:28082,OUTSIDE://localhost:8082
ports:
- 8081:8081
- 8082:8082
- 9092:9092
- 28082:28082
- 29092:29092
In the directory that you saved the file, open your CMD and execute this command:
docker-compose up –d
If everything is correct, you’ll see this:
Creating redpanda-1 ... done
You can also check Docker for Desktop for any container errors.
Start streaming
We’re going to use the rpk
to run our commands.
rpk
is essentially a CLI tool that you can use to run management and data commands on the cluster.
Check the information about the cluster.
docker exec -it redpanda-1 rpk cluster info
-
Create a topic. We’ll call it “twitch_chat”:
docker exec -it redpanda-1 ^ rpk topic create twitch_chat --brokers=localhost:9092
-
Produce messages to the topic:
docker exec -it redpanda-1 ^ rpk topic produce twitch_chat --brokers=localhost:9092
Type text into the topic and press Ctrl + D to separate between messages.
Press Ctrl + C to exit the produce command.
-
Consume (or read) the messages in the topic:
docker exec -it redpanda-1 ^ rpk topic consume twitch_chat --brokers=localhost:9092
Each message is shown with its metadata, like this:
{ "message": "How do you stream with Redpanda?\n", "partition": 0, "offset": 1, "timestamp": "2021-02-10T15:52:35.251+02:00" }
Clean up
When you are finished with the cluster, you can shutdown and delete the containers. Change the commands below accordingly if you used the 1-cluster option or the 3-cluster option.
docker stop redpanda-1 redpanda-2 redpanda-3 && ^
docker rm redpanda-1 redpanda-2 redpanda-3
If you set up volumes and a network, delete them with:
docker volume rm redpanda1 redpanda2 redpanda3 && ^
docker network rm redpandanet
What’s next?
-
Our FAQ page shows all of the clients that you can use to do streaming with Redpanda. (Spoiler: Any Kafka-compatible client!)
-
Get a multi-node cluster up and running using
rpk container
. -
Use the Quick Start Docker Guide to try out Redpanda using Docker.
-
Want to setup a production cluster? Check out our Production Deployment Guide.