From ecd477dd0f140bc27996e1741b50373312e6b824 Mon Sep 17 00:00:00 2001 From: Auri Munoz Date: Mon, 21 Oct 2024 15:08:11 +0200 Subject: [PATCH] Add generic overview docs for stork features --- docs/docs/load-balancer/overview.md | 16 ++++++++++++++++ docs/docs/service-discovery/overview.md | 12 ++++++++++++ docs/docs/service-registration/overview.md | 19 +++++++++++++++++++ docs/mkdocs.yml | 3 +++ 4 files changed, 50 insertions(+) create mode 100644 docs/docs/load-balancer/overview.md create mode 100644 docs/docs/service-discovery/overview.md create mode 100644 docs/docs/service-registration/overview.md diff --git a/docs/docs/load-balancer/overview.md b/docs/docs/load-balancer/overview.md new file mode 100644 index 00000000..10ec349f --- /dev/null +++ b/docs/docs/load-balancer/overview.md @@ -0,0 +1,16 @@ +### Load Balancer / Service Selection in SmallRye Stork + +Once services are registered and discovered, the next critical step is selecting which service instance will handle a given request. +SmallRye Stork provides flexible load balancing strategies to efficiently distribute requests across multiple instances of a service. +This ensures optimal resource usage, improved performance, and high availability. + +#### Key Features: +- **Multiple Load Balancing Strategies**: SmallRye Stork supports several built-in strategies for selecting service instances. +Check them out in the following dedicated sections. +- **Customizable Strategies**: You can define custom service selection strategies based on your unique use case or performance requirements, ensuring that the load balancer can adapt to specific needs. + +#### How it Works: +Once a service has been registered and discovered, the load balancer comes into play when a client makes a request to that service. +Stork applies the configured load balancing strategy to select an instance from the available pool of discovered services. + +This feature ensures that your services remain responsive, scalable, and resilient, providing a smooth experience for both users and developers. diff --git a/docs/docs/service-discovery/overview.md b/docs/docs/service-discovery/overview.md new file mode 100644 index 00000000..abeb7173 --- /dev/null +++ b/docs/docs/service-discovery/overview.md @@ -0,0 +1,12 @@ +### Service Discovery in SmallRye Stork + +As already introduced, service discovery is a crucial part of modern microservices architectures. +It allows services to dynamically discover the location of other services at runtime, which is particularly useful in distributed systems where services may scale up or down, +or change their network addresses. + +SmallRye Stork provides a flexible and extensible mechanism for service discovery. +It supports out of the box some service discovery such as Kubernetes or Consul but the main strength of it is customization so you can easily create your own implementation related on your business for example. +Stork allows services to communicate with each other without requiring hardcoded addresses, making it an ideal solution for microservices deployments. +SmallRye Stork brings this capability to clients for Quarkus applications but it's vendor agnostic so you easily use it with other solutions and even in standalone mode. + +You can explore the different implementations and learn how to create your own in the following sections. \ No newline at end of file diff --git a/docs/docs/service-registration/overview.md b/docs/docs/service-registration/overview.md new file mode 100644 index 00000000..b4e3d3ac --- /dev/null +++ b/docs/docs/service-registration/overview.md @@ -0,0 +1,19 @@ +### Service Registration in SmallRye Stork + +Service registration is the process by which services announce their availability to a central registry, allowing other services to discover and communicate with them. +In SmallRye Stork, service registration is automated and integrated with supported registries like **Consul**. +This ensures that services can dynamically join and leave the network. + +#### Key Features: +- **Automatic Registration**: For Quarkus applications, SmallRye Stork automatically registers it with the configured service registry (e.g., Consul). + +**IMPORTANT** Public IP address needs to be provided. Smallrye Stork will fail if the service IP address is not provided during registration. + +#### Supported Registries: +Currently, Smallrye Stork provides seamless integration with **Consul**, Eureka and a Static registry. +This integration simplifies the management of dynamic environments where services are frequently added or removed. + +#### Custom Registration: +In addition to the default mechanisms, SmallRye Stork allows you to implement custom service registration strategies, providing flexibility for different infrastructures or custom service discovery needs. + +In the following sections you can have more details about each specific implementation. \ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 7151f6e0..d684dafd 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -14,6 +14,7 @@ nav: - Javadoc: 'https://javadoc.io/doc/io.smallrye.stork/smallrye-stork-api/latest/index.html' - Using Stork with Quarkus: './quarkus.md' - Service Discovery: + - Overview: 'service-discovery/overview.md' - Consul: 'service-discovery/consul.md' - DNS: 'service-discovery/dns.md' - Kubernetes: 'service-discovery/kubernetes.md' @@ -23,6 +24,7 @@ nav: - Static List: 'service-discovery/static-list.md' - Custom Service Discovery: 'service-discovery/custom-service-discovery.md' - Load-Balancing: + - Overview: 'load-balancer/overview.md' - Round Robin: 'load-balancer/round-robin.md' - Random: 'load-balancer/random.md' - Least Requests: 'load-balancer/least-requests.md' @@ -31,6 +33,7 @@ nav: - Sticky: 'load-balancer/sticky.md' - Custom Load Balancer: 'load-balancer/custom-load-balancer.md' - Service Registration: + - Overview: 'service-registration/overview.md' - Consul: 'service-registration/consul.md' - Eureka: 'service-registration/eureka.md' - Static List: 'service-registration/static-list.md'