merged with upstream/wip-customer
This commit is contained in:
18
README.md
18
README.md
@@ -1,7 +1,7 @@
|
||||
#Event-Sourcing+CQRS example application
|
||||
|
||||
This example application is the money transfer application described in my talk [Building and deploying microservices with event sourcing, CQRS and Docker](http://plainoldobjects.com/presentations/building-and-deploying-microservices-with-event-sourcing-cqrs-and-docker/).
|
||||
This talk describe a way of architecting highly scalable and available applications that is based on microservices, polyglot persistence,
|
||||
This talk describes a way of architecting highly scalable and available applications that is based on microservices, polyglot persistence,
|
||||
event sourcing (ES) and command query responsibility segregation (CQRS).
|
||||
Applications consist of loosely coupled components that communicate using events.
|
||||
These components can be deployed either as separate services or packaged as a monolithic application for simplified development and testing.
|
||||
@@ -94,9 +94,12 @@ First, you need to tell the query side code how to connect to MongoDB:
|
||||
```
|
||||
|
||||
[Docker Compose](https://docs.docker.com/compose/) is a great way to run MongoDB.
|
||||
You can run the `docker-compose up -d mongodb` to run MongoDB.
|
||||
You can run the `docker-compose up -d mongodb` to run MongoDB and then set `SPRING_DATA_MONGODB_URI` as follows:
|
||||
```
|
||||
export SPRING_DATA_MONGODB_URI=mongodb://$(docker-machine ip default)/yourdb
|
||||
```
|
||||
|
||||
Second, some of the tests in accounts-command-side-service, transactions-command-side-service, accounts-query-side-service and e2e-test need you need to set some environment variables that tell them how to connect to the Event Store server.
|
||||
Second, some of the tests in accounts-command-side-service, transactions-command-side-service, accounts-query-side-service and e2e-test require you to set some environment variables that tell them how to connect to the Event Store server.
|
||||
But don't worry.
|
||||
The build is configured to ignore failures for those projects.
|
||||
|
||||
@@ -117,6 +120,15 @@ Simply use this command:
|
||||
java -jar monolithic-service/build/libs/monolithic-service.jar
|
||||
```
|
||||
|
||||
This will start the service running on port 8080 (you can change using the --server.port=9999 option).
|
||||
|
||||
Once the service has started you can open the Swagger UI: http://localhost:8080/swagger-ui.html.
|
||||
You can then:
|
||||
|
||||
1. Create two accounts (save the account ids)
|
||||
2. Create a money transfer
|
||||
3. View the updated account balances
|
||||
|
||||
## Running the microservices
|
||||
|
||||
The other option is to run the services separately.
|
||||
|
||||
@@ -26,7 +26,7 @@ if [ "$1" = "--no-rm" ] ; then
|
||||
shift
|
||||
fi
|
||||
|
||||
${DOCKER_COMPOSE?} up -d mongodb
|
||||
${DOCKER_COMPOSE?} up -d mongodb $EXTRA_INFRASTRUCTURE_SERVICES
|
||||
|
||||
if [ -z "$DOCKER_HOST_IP" ] ; then
|
||||
if which docker-machine >/dev/null; then
|
||||
|
||||
@@ -7,19 +7,19 @@ This application consists of three microservices:
|
||||
* Account Service - the command side business logic for Accounts
|
||||
* Money Transfer Service - the command side business logic for Money Transfers
|
||||
* Query service - query side implementation of a MongoDB-based, denormalized view of Accounts and MoneyTransfers
|
||||
|
||||
|
||||
The Account Service consists of the following modules:
|
||||
|
||||
* accounts-command-side-backend - the Account aggregate
|
||||
* accounts-command-side-web - a REST API for creating and retrieving Accounts
|
||||
* accounts-command-side-service - a standalone microservice
|
||||
|
||||
|
||||
The Money Transfer Service consists of the following modules:
|
||||
|
||||
* transactions-command-side-backend - the MoneyTransfer aggregate
|
||||
* transactions-command-side-web - a REST API for creating and retrieving Money Transfers
|
||||
* transactions-command-side-service - a standalone microservice
|
||||
|
||||
|
||||
The Query Service consists the following modules:
|
||||
|
||||
* accounts-query-side-backend - MongoDB-based, denormalized view of Accounts and MoneyTransfers
|
||||
@@ -28,10 +28,8 @@ The Query Service consists the following modules:
|
||||
|
||||
# Deploying the application
|
||||
|
||||
These services can be deployed either as either separate standalone services using the Event Store server, or they can be deployed as a monolithic application for simpified integration testing.
|
||||
These services can be deployed either as either separate standalone services using the Event Store server, or they can be deployed as a monolithic application for simplified integration testing.
|
||||
|
||||
The three services can also be packaged as a single monolithic web application in order to be used with the embedded Event Store:
|
||||
|
||||
* monolithic-service - all-in-one, monolithic packaging of the application
|
||||
|
||||
|
||||
|
||||
4
java-spring/build-and-test-all-eventuate-local.sh
Executable file
4
java-spring/build-and-test-all-eventuate-local.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#! /bin/bash
|
||||
|
||||
export EXTRA_INFRASTRUCTURE_SERVICES=cdcservice
|
||||
../_build-and-test-all.sh -f docker-compose-eventuate-local.yml -P eventuateLocal=1 $*
|
||||
48
java-spring/docker-compose-common.yml
Normal file
48
java-spring/docker-compose-common.yml
Normal file
@@ -0,0 +1,48 @@
|
||||
apigateway:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/api-gateway-service.jar --accounts.commandside.service.host=accountscommandside --transfers.commandside.service.host=transactionscommandside --accounts.queryside.service.host=accountsqueryside --customers.commandside.service.host=customerscommandside --customers.queryside.service.host=customersqueryside
|
||||
environment:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
ports:
|
||||
- "8080:8080"
|
||||
|
||||
accountscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/accounts-command-side-service.jar
|
||||
ports:
|
||||
- "8085:8080"
|
||||
|
||||
transactionscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/transactions-command-side-service.jar
|
||||
ports:
|
||||
- "8082:8080"
|
||||
|
||||
accountsqueryside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/accounts-query-side-service.jar
|
||||
environment:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
ports:
|
||||
- "8081:8080"
|
||||
|
||||
customerscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/customers-command-side-service.jar
|
||||
ports:
|
||||
- "8083:8080"
|
||||
|
||||
customersqueryside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
command: java -jar /app/customers-query-side-service.jar
|
||||
ports:
|
||||
- "8084:8080"
|
||||
environment:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
|
||||
mongodb:
|
||||
image: mongo:3.0.4
|
||||
hostname: mongodb
|
||||
command: mongod --smallfiles
|
||||
ports:
|
||||
- "27017:27017"
|
||||
@@ -1,11 +1,61 @@
|
||||
zookeeper:
|
||||
image: eventuateio/eventuateio-local-zookeeper:0.6.0
|
||||
ports:
|
||||
- 2181:2181
|
||||
- 2888:2888
|
||||
- 3888:3888
|
||||
|
||||
|
||||
kafka:
|
||||
image: eventuateio/eventuateio-local-kafka:0.6.0
|
||||
ports:
|
||||
- 9092:9092
|
||||
links:
|
||||
- zookeeper
|
||||
environment:
|
||||
- ADVERTISED_HOST_NAME=${DOCKER_HOST_IP}
|
||||
- KAFKA_HEAP_OPTS=-Xmx320m -Xms320m
|
||||
- ZOOKEEPER_SERVERS=zookeeper:2181
|
||||
|
||||
mysql:
|
||||
image: eventuateio/eventuateio-local-mysql:0.6.0
|
||||
ports:
|
||||
- 3306:3306
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=rootpassword
|
||||
- MYSQL_USER=mysqluser
|
||||
- MYSQL_PASSWORD=mysqlpw
|
||||
|
||||
|
||||
cdcservice:
|
||||
image: eventuateio/eventuateio-local-cdc-service:0.6.0
|
||||
ports:
|
||||
- "8099:8080"
|
||||
links:
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
mongodb:
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: mongodb
|
||||
|
||||
apigateway:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: apigateway
|
||||
volumes:
|
||||
- ./api-gateway-service/build/libs:/app
|
||||
command: java -jar /app/api-gateway-service.jar --accounts.commandside.service.host=accountscommandside --transfers.commandside.service.host=transactionscommandside --accounts.queryside.service.host=accountsqueryside --customers.commandside.service.host=customerscommandside --customers.queryside.service.host=customersqueryside
|
||||
ports:
|
||||
- "8080:8080"
|
||||
links:
|
||||
- accountscommandside
|
||||
- transactionscommandside
|
||||
@@ -13,117 +63,126 @@ apigateway:
|
||||
- customerscommandside
|
||||
- customersqueryside
|
||||
- mongodb
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
accountscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: accountscommandside
|
||||
volumes:
|
||||
- ./accounts-command-side-service/build/libs:/app
|
||||
command: java -jar /app/accounts-command-side-service.jar
|
||||
ports:
|
||||
- "8085:8080"
|
||||
links:
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
|
||||
transactionscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: transactionscommandside
|
||||
volumes:
|
||||
- ./transactions-command-side-service/build/libs:/app
|
||||
command: java -jar /app/transactions-command-side-service.jar
|
||||
ports:
|
||||
- "8082:8080"
|
||||
links:
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
|
||||
|
||||
accountsqueryside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: accountsqueryside
|
||||
volumes:
|
||||
- ./accounts-query-side-service/build/libs:/app
|
||||
command: java -jar /app/accounts-query-side-service.jar
|
||||
ports:
|
||||
- "8081:8080"
|
||||
links:
|
||||
- mongodb
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
|
||||
customerscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: customerscommandside
|
||||
volumes:
|
||||
- ./customers-command-side-service/build/libs:/app
|
||||
command: java -jar /app/customers-command-side-service.jar
|
||||
ports:
|
||||
- "8083:8080"
|
||||
links:
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
customersqueryside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: customersqueryside
|
||||
volumes:
|
||||
- ./customers-query-side-service/build/libs:/app
|
||||
command: java -jar /app/customers-query-side-service.jar
|
||||
ports:
|
||||
- "8084:8080"
|
||||
links:
|
||||
- mongodb
|
||||
- mysql
|
||||
- kafka
|
||||
- zookeeper
|
||||
environment:
|
||||
SPRING_DATASOURCE_URL:
|
||||
SPRING_DATASOURCE_USERNAME:
|
||||
SPRING_DATASOURCE_PASSWORD:
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME:
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS:
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_USER_NAME:
|
||||
EVENTUATELOCAL_EMBEDDED_CDC_DB_PASSWORD:
|
||||
|
||||
mongodb:
|
||||
image: mongo:3.0.4
|
||||
hostname: mongodb
|
||||
command: mongod --smallfiles
|
||||
ports:
|
||||
- "27017:27017"
|
||||
environment:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
SPRING_DATASOURCE_URL: jdbc:mysql://mysql/eventuate
|
||||
SPRING_DATASOURCE_USERNAME: mysqluser
|
||||
SPRING_DATASOURCE_PASSWORD: mysqlpw
|
||||
SPRING_DATASOURCE_DRIVER_CLASS_NAME: com.mysql.jdbc.Driver
|
||||
EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS: kafka:9092
|
||||
EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING: zookeeper:2181
|
||||
EVENTUATELOCAL_CDC_DB_USER_NAME: root
|
||||
EVENTUATELOCAL_CDC_DB_PASSWORD: rootpassword
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
apigateway:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: apigateway
|
||||
volumes:
|
||||
- ./api-gateway-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/api-gateway-service.jar --accounts.commandside.service.host=accountscommandside --transfers.commandside.service.host=transactionscommandside --accounts.queryside.service.host=accountsqueryside --customers.commandside.service.host=customerscommandside --customers.queryside.service.host=customersqueryside
|
||||
ports:
|
||||
- "8080:8080"
|
||||
links:
|
||||
- accountscommandside
|
||||
- transactionscommandside
|
||||
@@ -14,80 +12,66 @@ apigateway:
|
||||
- customersqueryside
|
||||
- mongodb
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
accountscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: accountscommandside
|
||||
volumes:
|
||||
- ./accounts-command-side-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/accounts-command-side-service.jar
|
||||
ports:
|
||||
- "8085:8080"
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
transactionscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: transactionscommandside
|
||||
volumes:
|
||||
- ./transactions-command-side-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/transactions-command-side-service.jar
|
||||
ports:
|
||||
- "8082:8080"
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
|
||||
accountsqueryside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: accountsqueryside
|
||||
volumes:
|
||||
- ./accounts-query-side-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/accounts-query-side-service.jar
|
||||
ports:
|
||||
- "8081:8080"
|
||||
links:
|
||||
- mongodb
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
customerscommandside:
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: customerscommandside
|
||||
volumes:
|
||||
- ./customers-command-side-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/customers-command-side-service.jar
|
||||
ports:
|
||||
- "8083:8080"
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
customersqueryside:
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: customersqueryside
|
||||
image: java:openjdk-8u91-jdk
|
||||
working_dir: /app
|
||||
volumes:
|
||||
- ./customers-query-side-service/build/libs:/app
|
||||
command: java ${JAVA_OPTS} -jar /app/customers-query-side-service.jar
|
||||
ports:
|
||||
- "8084:8080"
|
||||
links:
|
||||
- mongodb
|
||||
environment:
|
||||
EVENTUATE_API_KEY_ID:
|
||||
EVENTUATE_API_KEY_SECRET:
|
||||
SPRING_DATA_MONGODB_URI: mongodb://mongodb/mydb
|
||||
EVENTUATE_API_KEY_ID: ${EVENTUATE_API_KEY_ID}
|
||||
EVENTUATE_API_KEY_SECRET: ${EVENTUATE_API_KEY_SECRET}
|
||||
|
||||
mongodb:
|
||||
image: mongo:3.0.4
|
||||
hostname: mongodb
|
||||
command: mongod --smallfiles
|
||||
ports:
|
||||
- "27017:27017"
|
||||
extends:
|
||||
file: docker-compose-common.yml
|
||||
service: mongodb
|
||||
|
||||
@@ -7,4 +7,3 @@ springBootVersion=1.3.5.RELEASE
|
||||
|
||||
eventuateClientVersion=0.10.0.RELEASE
|
||||
eventuateLocalVersion=0.4.0.RELEASE
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#! /bin/bash
|
||||
|
||||
docker run --link javaspring_mongodb_1:mongodb -i -t mongo:3.0.4 /usr/bin/mongo --host mongodb
|
||||
|
||||
docker run --rm --link javaspring_mongodb_1:mongodb -i -t mongo:3.0.4 /usr/bin/mongo --host mongodb
|
||||
|
||||
@@ -15,6 +15,7 @@ dependencies {
|
||||
compile "org.springframework.boot:spring-boot-starter-actuator"
|
||||
|
||||
compile "io.eventuate.client.java:eventuate-client-java-http-stomp-spring:$eventuateClientVersion"
|
||||
compile project(":common-swagger")
|
||||
|
||||
testCompile project(":testutil")
|
||||
testCompile "org.springframework.boot:spring-boot-starter-test"
|
||||
@@ -27,4 +28,4 @@ task copyWebStatic(type: Copy) {
|
||||
}
|
||||
|
||||
jar.dependsOn(copyWebStatic)
|
||||
bootRun.dependsOn(copyWebStatic)
|
||||
bootRun.dependsOn(copyWebStatic)
|
||||
|
||||
21
java-spring/set-env.sh
Normal file
21
java-spring/set-env.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
if [ -z "$DOCKER_HOST_IP" ] ; then
|
||||
if [ -z "$DOCKER_HOST" ] ; then
|
||||
export DOCKER_HOST_IP=`hostname`
|
||||
else
|
||||
echo using ${DOCKER_HOST?}
|
||||
XX=${DOCKER_HOST%\:*}
|
||||
export DOCKER_HOST_IP=${XX#tcp\:\/\/}
|
||||
fi
|
||||
fi
|
||||
|
||||
echo DOCKER_HOST_IP is $DOCKER_HOST_IP
|
||||
|
||||
export SPRING_DATASOURCE_URL=jdbc:mysql://${DOCKER_HOST_IP}/eventuate
|
||||
export SPRING_DATASOURCE_USERNAME=mysqluser
|
||||
export SPRING_DATASOURCE_PASSWORD=mysqlpw
|
||||
export SPRING_DATASOURCE_DRIVER_CLASS_NAME=com.mysql.jdbc.Driver
|
||||
export EVENTUATELOCAL_KAFKA_BOOTSTRAP_SERVERS=$DOCKER_HOST_IP:9092
|
||||
export EVENTUATELOCAL_CDC_DB_USER_NAME=root
|
||||
export EVENTUATELOCAL_CDC_DB_PASSWORD=rootpassword
|
||||
export EVENTUATELOCAL_ZOOKEEPER_CONNECTION_STRING=$DOCKER_HOST_IP:2181
|
||||
|
||||
7
java-spring/show-urls.sh
Executable file
7
java-spring/show-urls.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
IP=$(docker-machine ip default)
|
||||
|
||||
echo Accounts command-side service = http://${IP}:8080/swagger-ui.html
|
||||
echo Money Transfers command-side service = http://${IP}:8082/swagger-ui.html
|
||||
echo Accounts query-side service = http://${IP}:8081/swagger-ui.html
|
||||
@@ -13,6 +13,7 @@ while [[ "$done" = false ]]; do
|
||||
done=true
|
||||
else
|
||||
done=false
|
||||
break
|
||||
fi
|
||||
done
|
||||
if [[ "$done" = true ]]; then
|
||||
|
||||
Reference in New Issue
Block a user