/polaris

Service Discovery and Governance Center for Distributed and Microservice Architecture

Primary LanguageGoOtherNOASSERTION

Polaris: Service Discovery and Governance

Build Status codecov.io Docker Pulls Contributors License GitHub release (latest by date)

English | 简体中文


README:

visit website to learn more

Introduction

Polaris is a cloud-native service discovery and governance center. It can be used to solve the problem of service connection, fault tolerance, traffic control and secure in distributed and microservice architecture.

Functions:

  • service discover, service register and health check

    Register node addresses into service dynamically, and discover the addresses through the discovery mechnism. Also provide health-checking mechanism to remove the unhealthy instances from service in time.

  • traffic control: request route and load balance

    Provide the mechanism to filter instances by request labels, instances metadata. Users can define rules to direct the request flowing into the locality nearby instances, or gray releasing version instances, etc.

  • overload protection: circuit break and rate limit

    Provide the mechanism to reduce the request rate when burst request flowing into the entry services.

    Provide the mechanism to collect the healthy statistic by the response, also kick of the services/interfaces/groups/instances when they are unhealthy.

  • observability

    User can see the metrics and tracing through the vison diagram, to be aware of the api call status on time.

  • config management

    Provide the mechanism to dynamic configuration subscribe, version management, notify change, to apply the configuration to application in time.

Features:

  • It provides SDK for high-performance business scenario and sidecar for non-invasive development mode.
  • It provides multiple clients for different development languages, such as Java, Go, C++ and Nodejs.
  • It can integrate with different service frameworks and gateways, such as Spring Cloud, gRPC and Nginx.
  • It is compatible with Kubernetes and supports automatic injection of K8s service and Polaris sidecar.

Getting started

Download package

You can download the latest standalone package from the addresses below, be aware of to choose the package named polaris-standalone-release-*.zip, and filter the packages by os (windows10: windows, mac: darwin, Linux/Unix: linux).

Take polaris-standalone-release_v1.11.0-beta.2.linux.amd64.zip for example, you can use the following commands to unzip package:

unzip polaris-standalone-release_v1.11.0-beta.2.linux.amd64.zip
cd polaris-standalone-release_v1.11.0-beta.2.linux 

Start server

Under Linux/Unix/Mac platform, use those commands to start polaris standalone server:

bash install.sh

Under Windows platform, use those commands to start polaris standalone server:

install.bat

Verify installation

curl http://127.0.0.1:8090

Return text is 'Polaris Server', proof features run smoothly

If you want to learn more installation methods (changing ports, docker installation, cluster instanllation etc.), please refer: Installation Guide

Examples

Polaris supports microservices built with multi-language, multi-framework, multi-mode (proxyless / proxy) to access。

Service Discovery and HealthCheck

(1) rpc framework examples:

(2) multi-language examples:

(3) proxy mode examples:

RateLimit

(1) rpc framework examples:

(2) multi-language examples:

(3) proxy mode examples:

Flow Control

(1) rpc framework examples:

(2) multi-language examples:

(3) proxy mode examples:

Configuration management

(1) rpc framework examples:

(2) multi-language examples:

More details

More capabilities:User Manual

Chat group

Please scan the QR code to join the chat group.