polaris
polaris copied to clipboard
Service Discovery and Governance Platform for Microservice and Distributed Architecture
Polaris: Service Discovery and Governance
English | 简体中文
README:
- Introduction
- Components
- Getting started
- Chat group
- Contribution
Principle or user manual can 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:
- basic: service discover, service register and health check
- fault tolerance: circuit break and rate limit
- traffic control: request route and load balance
- secure: authenticate
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.
Components
server:
- polaris: Control Plane
- polaris-console: Console
client:
- polaris-java: Java Client
- polaris-go: Go Client
- polaris-cpp: C++ Client
- polaris-php: PHP Client
- polaris-sidecar: Envoy based Sidecar
ecosystem:
- polaris-controller: K8s Controller for Automatic Injection of K8s Service and Polaris Sidecar
- spring-cloud-tencent: spring cloud integrates with polaris-java
- grpc-java-polaris: grpc-java integrates with polaris-java
- grpc-go-polaris: grpc-go integrates with polaris-go
- dubbo3/dubbo-go: dubbo-go integrates with polaris-go
- nginx-polaris: nginx integrates with polaris-cpp
others:
Getting started
Preconditions
Prepare database
Please download and install MySQL, version requirement >=5.7, download available here: https://dev.mysql.com/downloads/mysql/5.7.html
Import SQL script
Point Script: ./store/sqldb/scripts/polaris_server.sql, one can import through mysql admin or console.
Prepare golang compile environment
Polaris server end needs golang compile environment, version number needs >=1.17, download available here: https://golang.org/dl/#featured.
Build
If you are china developer, or cannot access the normally proxy.golang.org
, need to set the following steps GOPROXY Environment variable information
Linux/Mac
# set GOPROXY set
export GOPROXY=https://proxy.golang.com.cn,direct
Window
# set GOPROXY set
$env:GOPROXY = "https://proxy.golang.com.cn,direct"
Run build
make build
After built, one can see 'polaris-server-release_${version}.tar.gz' package from the list.
Installation
Unzip package
Obtain polaris-server-release_${version}.tar.gz, and unzip.
Change polaris configuration
After unzipped, vi polaris-server.yaml, replace DB configuration's variable to real database information : ##DB_USER## (database username), ##DB_PWD##(database password), ##DB_ADDR##(database address), ##DB_NAME##(database name)
Execute Installation Script
chmod +x ./tool/*.sh
# install
./tool/start.sh
# test whether the process is successful
./tool/p.sh
After all, run ./p.sh, prompt Polaris Server, proof the installation is successful
Verify installation
curl http://127.0.0.1:8090
Return text is 'Polaris Server', proof features run smoothly
How to access
Polaris supports microservices built with multi-language, multi-framework, multi-mode (proxyless / proxy) to access。
(1) multi-language access guide:
(2) multi-framework access guide:
- Spring Cloud Examples
- Spring Boot QuickStart Example
- gRPC-Go QuickStart Example
- gRPC-Java QuickStart Example
(3) proxy mode access guide:
More access guide:Doc
User manual
Polaris function guide can refer:Manual
Chat group
Please scan the QR code to join the chat group.

Contribution
If you have good comments or suggestions, please give us Issues or Pull Requests to contribute to improve the development experience of Polaris Mesh.
see details:CONTRIBUTING.md