diff --git a/schema-registry-samples/docker-compose-mysql.yml b/schema-registry-samples/docker-compose-mysql.yml new file mode 100644 index 0000000..b3371c6 --- /dev/null +++ b/schema-registry-samples/docker-compose-mysql.yml @@ -0,0 +1,13 @@ +version: '3' +services: + mysql: + image: mysql:5.7.25 + container_name: schema-registry-mysql + environment: + MYSQL_DATABASE: registry + MYSQL_USER: root + MYSQL_ROOT_PASSWORD: rootpw + expose: + - 3306 + ports: + - 3306:3306 diff --git a/schema-registry-samples/docker-compose-postgres.yml b/schema-registry-samples/docker-compose-postgres.yml new file mode 100644 index 0000000..3662b43 --- /dev/null +++ b/schema-registry-samples/docker-compose-postgres.yml @@ -0,0 +1,14 @@ +version: '3' +services: + postgres: + image: postgres:10 + container_name: schema-registry-postgres + restart: always + environment: + POSTGRES_DB: registry + POSTGRES_USER: root + POSTGRES_PASSWORD: rootpw + expose: + - 5432 + ports: + - 5432:5432 diff --git a/schema-registry-samples/schema-registry-vanilla-kafka-binder/README.adoc b/schema-registry-samples/schema-registry-vanilla-kafka-binder/README.adoc index 6a92c2b..082f673 100644 --- a/schema-registry-samples/schema-registry-vanilla-kafka-binder/README.adoc +++ b/schema-registry-samples/schema-registry-vanilla-kafka-binder/README.adoc @@ -18,9 +18,25 @@ Both producers and consumers interact with this scheam registry to register and Make sure you are in the directory `schema-registry-vanilla-kafka-binder` -Start Kafka +- Start Kafka and Database -`docker-compose up -d` +Start Kafka with H2 in-memory database: +[source,bash] +---- +docker-compose up -d +---- + +or start Kafka with Postgres database: +[source,bash] +---- +docker-compose -f ./docker-compose.yml -f ../docker-compose-postgres.yml up -d +---- + +or start Kafka with MySQL database: +[source,bash] +---- +docker-compose -f ./docker-compose.yml -f ../docker-compose-mysql.yml up -d +---- Build the applications: `./mvnw clean package` @@ -29,8 +45,42 @@ Build the applications: `./mvnw clean package` ---- wget -O /tmp/schema-registry-server.jar https://repo.spring.io/libs-snapshot-local/org/springframework/cloud/spring-cloud-schema-registry-server/1.0.0.BUILD-SNAPSHOT/spring-cloud-schema-registry-server-1.0.0.BUILD-SNAPSHOT.jar cd /tmp +---- + +Start the Schema Registry server using in-memory H2 database: +[source,bash] +---- java -jar schema-registry-server-1.0.0.BUILD-SNAPSHOT.jar ---- + +to use Postgres database instead of H2, set the following property : +[source,bash] +---- +java -jar schema-registry-server-1.0.0.BUILD-SNAPSHOT.jar \ + --spring.datasource.url=jdbc:postgresql://localhost:5432/registry \ + --spring.datasource.username=root \ + --spring.datasource.password=rootpw \ + --spring.datasource.driver-class-name=org.postgresql.Driver \ + --spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect \ + --spring.jpa.hibernate.ddl-auto-create=true \ + --spring.jpa.hibernate.ddl-auto=update \ + --spring.jpa.generate-ddl=true +---- + +to use MySQL database instead of H2, set the following property : +[source,bash] +---- +java -jar schema-registry-server-1.0.0.BUILD-SNAPSHOT.jar \ + --spring.datasource.url=jdbc:mariadb://localhost:3306/registry \ + --spring.datasource.username=root \ + --spring.datasource.password=rootpw \ + --spring.datasource.driver-class-name=org.mariadb.jdbc.Driver \ + --spring.jpa.database-platform=org.hibernate.dialect.MariaDB53Dialect \ + --spring.jpa.hibernate.ddl-auto-create=true \ + --spring.jpa.hibernate.ddl-auto=update \ + --spring.jpa.generate-ddl=true +---- + - Start `consumer` on another terminal session (or run it from an IDE) [source,bash] ---- diff --git a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-consumer-kafka/pom.xml b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-consumer-kafka/pom.xml index c228b6b..67e8b50 100644 --- a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-consumer-kafka/pom.xml +++ b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-consumer-kafka/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.2.0.BUILD-SNAPSHOT + 2.2.1.RELEASE diff --git a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer1-kafka/pom.xml b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer1-kafka/pom.xml index 1d1a032..7d0c86e 100644 --- a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer1-kafka/pom.xml +++ b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer1-kafka/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.2.0.BUILD-SNAPSHOT + 2.2.1.RELEASE diff --git a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer2-kafka/pom.xml b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer2-kafka/pom.xml index 86fbc49..8a352ef 100644 --- a/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer2-kafka/pom.xml +++ b/schema-registry-samples/schema-registry-vanilla-kafka-binder/schema-registry-vanilla-producer2-kafka/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.2.0.BUILD-SNAPSHOT + 2.2.1.RELEASE