Code Monkey home page Code Monkey logo

gateway-consul's Introduction

Introduction

This repo is a sample code to show the usage of an API Gateway. The project uses Spring Cloud Gateway as the main API Gateway. In addition, the Gateway integrates with Consul as the Service Discovery. The objective of this project is three folds:

  • Utilize an API Gateway
  • Configure and utilize Consul as the main discovery service
  • Services are referenced by name and not IP/port

Services

There are 3 services created in this sample project:

  • gateway: this is the Spring Cloud Gateway
  • service1: this is the service that is exposed by the gateway. This service is written using micronaut
  • service2: this service is reference by service1. This service is written using micronaut

Requirements

  • Java 11. The services are set to use java 11
  • Docker. Consul is started using docker

Running

First we need to start Consul by running run-consul.sh. This script uses docker to pull the latest consul image and runs it locally. After consul start, the UI will be available at: http://localhost:8500

After consul start, the other services can also start up using the following command:

./run-services.sh

Once all the services are started, the Gateway will forward `/api/billing' to service1. Then, service1 will utilize service2 for some of the information.

To stop the services run the following command:

./stop-services.sh

gateway-consul's People

Contributors

mlim1972 avatar

Stargazers

Misha Wang avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.