Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.Netflix:zuul:v2.1.8'
}
dependencies {
implementation("com.github.Netflix:zuul:v2.1.8")
}
<dependency>
<groupId>com.github.Netflix</groupId>
<artifactId>zuul</artifactId>
<version>v2.1.8</version>
</dependency>
libraryDependencies += "com.github.Netflix" % "zuul" % "v2.1.8"
:dependencies [[com.github.Netflix/zuul "v2.1.8"]]
Zuul is an L7 application gateway that provides capabilities for dynamic routing, monitoring, resiliency, security, and more. Please view the wiki for usage, information, HOWTO, etc https://github.com/Netflix/zuul/wiki
Here are some links to help you learn more about the Zuul Project. Feel free to PR to add any other info, presentations, etc.
Articles from Netflix:
Zuul 1: http://techblog.netflix.com/2013/06/announcing-zuul-edge-service-in-cloud.html
Zuul 2:
https://netflixtechblog.com/open-sourcing-zuul-2-82ea476cb2b3
https://netflixtechblog.com/zuul-2-the-netflix-journey-to-asynchronous-non-blocking-systems-45947377fb5c
https://netflixtechblog.com/the-show-must-go-on-securing-netflix-studios-at-scale-19b801c86479
Netflix presentations about Zuul:
Strange Loop 2017 - Zuul 2: https://youtu.be/2oXqbLhMS_A
AWS re:Invent 2018 - Scaling push messaging for millions of Netflix devices: https://youtu.be/IdR6N9B-S1E
Slides from Netflix presentations about Zuul:
http://www.slideshare.net/MikeyCohen1/zuul-netflix-springone-platform
http://www.slideshare.net/MikeyCohen1/rethinking-cloud-proxies-54923218
https://github.com/strangeloop/StrangeLoop2017/blob/master/slides/ArthurGonigberg-ZuulsJourneyToNonBlocking.pdf
https://www.slideshare.net/SusheelAroskar/scaling-push-messaging-for-millions-of-netflix-devices
Projects Using Zuul:
https://cloud.spring.io/
https://jhipster.github.io/
Info and examples from various projects:
https://cloud.spring.io/spring-cloud-netflix/multi/multi__router_and_filter_zuul
http://www.baeldung.com/spring-rest-with-zuul-proxy
https://blog.heroku.com/using_netflix_zuul_to_proxy_your_microservices
http://blog.ippon.tech/jhipster-3-0-introducing-microservices/
Other blog posts about Zuul:
https://engineering.riotgames.com/news/riot-games-api-fulfilling-zuuls-destiny
https://engineering.riotgames.com/news/riot-games-api-deep-dive
http://instea.sk/2015/04/netflix-zuul-vs-nginx-performance/
This project uses a GitHub Action workflow for publishing a new release. The workflow is triggered by a Git tag.
git checkout master
git tag vX.Y.Z
git push --tags