Appendix00.LocalDevSetup - haymant/trading GitHub Wiki
Local dev setup
The technical stack includes some shared services:
- Relational DBMS: Postgres
- Java for Kafka
- Message queue: Kafka
- Redis
- SCDF server
- Docker/docker-compose: can be used to launch kafka, SCDF, Skipper, Prometheus, Grafna and out of box SCDF apps.
This document give rough steps to setup them on a standalone MAC at 192.168.1.100.
Postgres
$ brew install postgres
$ vim data/pg_hba.conf
# allow remote access, add:
host all all 192.168.0.0/16 md5
# verify port is open
$ telnet 192.168.1.100 5432
# create database for SCDF
$ psql -h 192.168.1.100 -U postgres
postgres=# CREATE DATABASE dataflow;
postgres=# create user scdf with encrypted password 'scdf';
postgres=# grant all privileges on database dataflow to scdf;
Java
$ brew install java
$ export PATH="/usr/loca/opt/openjdk/bin:$PATH" >> ~/.zshrc
Kafka
Please refer to Docker if you want to use docker-compose.
$ brew install kafka
$ zookeeper-server-start /usr/local/etc/kafka/zookeeper.properties
$ vim /usr/local/etc/kafka/server.properties
# add listeners=PLAINTEXT://192.168.1.100:9092
$ kafka-server-start /usr/local/etc/kafka/server.properties
# test from Ubuntu
$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.1.100:9092
$ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server 192.168.1.100:9092
Topic: quickstart-events TopicId: 3ZHe2LVpTRuKekqSUY0oYA PartitionCount: 1 ReplicationFactor: 1 Configs: segment.bytes=1073741824
Topic: quickstart-events Partition: 0 Leader: 0 Replicas: 0 Isr: 0
$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.1.100:9092
$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.1.100:9092
Redis
$ brew install redis
$ redis-server --protected-mode no
$ redis-cli -h 192.168.1.100 -p 6379
192.168.1.100:6379> lpush test hello
192.168.1.100:6379> rpop test
Spring Cloud Data Flow
Please refer to Docker if you want to use docker-compose.
$ wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-server/2.9.2/spring-cloud-dataflow-server-2.9.2.jar
$ wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-dataflow-shell/2.9.2/spring-cloud-dataflow-shell-2.9.2.jar
$ wget https://repo.spring.io/release/org/springframework/cloud/spring-cloud-skipper-server/2.8.2/spring-cloud-skipper
Docker
Follow https://docs.docker.com/desktop/mac/install/ to install docker and docker-compose is included in docker desktop on Mac.
wget -O docker-compose.yml https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow/v2.9.1/src/docker-compose/docker-compose.yml; \
DATAFLOW_VERSION=2.9.2 SKIPPER_VERSION=2.8.2 \
docker-compose up