Skip to content

This repository contains samples demonstrating fork join using springboot & angular

Notifications You must be signed in to change notification settings

BarathArivazhagan/fork-join-springboot-angular

Repository files navigation

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

fork join

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

$ 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

About

This repository contains samples demonstrating fork join using springboot & angular

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published