https://github.com/baratharivazhagan/fork-join-springboot-angular
This repository contains samples demonstrating fork join using springboot & angular
https://github.com/baratharivazhagan/fork-join-springboot-angular
angular5 angular6 angular7 fork-join spring-boot
Last synced: 7 months ago
JSON representation
This repository contains samples demonstrating fork join using springboot & angular
- Host: GitHub
- URL: https://github.com/baratharivazhagan/fork-join-springboot-angular
- Owner: BarathArivazhagan
- Created: 2018-07-28T03:58:56.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-04-03T11:01:49.000Z (almost 7 years ago)
- Last Synced: 2025-03-16T02:04:42.451Z (10 months ago)
- Topics: angular5, angular6, angular7, fork-join, spring-boot
- Language: Java
- Homepage:
- Size: 288 KB
- Stars: 1
- Watchers: 0
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# fork-join-springboot-angular
In parallel computing, fork–join is a way of setting up and executing parallel programs, such that execution branches off in parallel at designated points in the program, to "join" (merge) at a subsequent point and resume sequential execution. Parallel sections may fork recursively until a certain task granularity is reached. Fork–join can be considered a parallel design pattern.
# fork-join flow

Name
Port
Description
bank-service
9001
Spring Boot Microservice
user-service
9000
Spring Boot Microservice
fork-join-demo
4200
Angular App
api-gateway
9500
Zuul API Gateway
## Compatability Matrix
clone the repository based on below maintained versions.
Branch/Version
Angular
Spring Boot
Spring Cloud
master
7.0.0
2.1.2.RELEASE
Greenwich.RELEASE
v1.0
5.0.2
2.0.3.RELEASE
Finchley.RELEASE
v2.0
6.0.0
2.1.0.RELEASE
Greenwich.RELEASE
## How to run the application ?
* Clone the repository
```
git clone https://github.com/BarathArivazhagan/fork-join-springboot-angular.git
```
* Execute below script to build all the applications
```
cd fork-join-springboot-angular
./build.sh
```
* On windows, navigate to each applications and perform maven/webpack build
```
cd fork-join-springboot-angular
cd api-gateway
./mvnw clean package
cd bank-service
./mvnw clean package
cd user-service
./mvnw clean package
cd fork-join-demo
npm install
npm run build
```
* Start the applications
```
cd fork-join-springboot-angular
cd api-gateway
./mvnw spring-boot:run
cd bank-service
./mvnw spring-boot:run
cd user-service
./mvnw spring-boot:run
cd fork-join-demo
npm run start
```
### Docker support
Take advantage of docker compose to quickly build and run applications as containers.
* Build docker images
```
docker-compose build
```
* Run the applications
```
docker-compose up
```
### Kubernetes Support
To deploy the applications as docker containers inside kubernetes cluster
```
$ git clone https://github.com/BarathArivazhagan/fork-join-springboot-angular.git && cd fork-join-springboot-angular
$ kubectl create -f k8s/fork-join-deployment-k8s.yaml
configmap/spring-config-map created
configmap/api-gateway-config-map created
deployment.apps/user-app created
deployment.apps/bank-app created
deployment.apps/fork-join-api-gateway created
deployment.apps/fork-join-demo-app created
service/fork-join-api-gateway created
service/bank-service created
service/user-service created
service/fork-join-ui created
```
### Openshift Support
To deploy the applications as docker containers in openshift cluster
[Katacoda Openshift Playground](https://www.katacoda.com/courses/openshift/playground)
```
$ git clone https://github.com/BarathArivazhagan/fork-join-springboot-angular.git && cd fork-join-springboot-angular
$ oc login # login into a project
$ oc create -f openshift/fork-join-openshift-deployment.yaml
configmap "spring-config-map" created
configmap "api-gateway-config-map" created
deploymentconfig "user-service" created
deploymentconfig "bank-service" created
eploymentconfig "api-gateway" created
deploymentconfig "fork-join-angular" created
imagestream "bank-service" created
imagestream "user-service" created
imagestream "api-gateway" created
imagestream "fork-join-angular" created
service "api-gateway" created
service "bank-service" created
service "user-service" created
service "fork-join-angular" created
```
> Note: Angular app uses nginx to serve static files.
To run nginx as non root user in openshift, use fork-join-demo/Dockerfile.openshift to build angular app.
## Teardown openshift resources
To delete all the resources created in openshift
```
$ oc delete dc --all && oc delete svc --all && oc delete configmaps --all
```