安装分布式限流服务
安装说明
北极星分布式限流服务端包含以下1个组件:
- polaris-limiter:北极星的分布式限流服务端,主要用于全局token的缓存及分配。
北极星分布式限流服务端默认占用以下端口:
- polaris-limiter:8100(http/tcp, 分布式限流服务端HTTP协议端口)、8101(grpc/tcp,分布式限流服务端gRPC协议端口)
安装服务端
环境准备
北极星单机版支持以下4种运行环境:
- Linux(64位)
- Windows(64位)
- Mac(64位)
- 容器化
软件包
单机版的安装需要依赖单机版软件包,单机版软件包的命名格式为polaris-limiter-release_*.zip
:
下载地址
执行所有安装之前,需要下载软件包,可以从以下2个地址下载单机版软件包,请选择最新的release版本:
- Github下载:polaris limiter releases (opens new window)
- Gitee下载:polaris limiter releases (opens new window)
虚拟机安装
这里已 Linux 为例
下载安装包并解压
下载Linux软件包(polaris-limiter-release_$version.linux.$arch.zip),执行安装命令:
unzip polaris-limiter-release_$version.linux.$arch.zip
cd polaris-limiter-release_$version.linux.$arch
修改 polaris-limiter.yaml
进入到目录 polaris-limiter-release_$version.linux.$arch
registry:
enable: true
polaris-server-address: { 北极星服务端 grpc 协议地址 }
name: polaris.limiter
namespace: Polaris
health-check-enable: true
api-servers:
- name: http
option:
ip: 0.0.0.0
port: 8100
- name: grpc
option:
ip: 0.0.0.0
port: 8101
limit:
myid: { 服务端节点唯一标识信息,int 类型}
注意事项
- 如果是部署单节点的 polaris-limiter,myid 设置为 1 即可
- 如果是部署多节点的 polaris-limiter,每个节点的 myid 必须保证唯一
启动服务端
cd polaris-limiter-release_$version.linux.$arch
bash ./tool/start.sh
注意事项
- 如果您是 windows 用户
- 依赖powershell 5.0及以上版本(Windows 10及以上版本默认安装)
- 需要以管理员身份运行安装脚本,执行powershell需要进行授权操作
- 安装脚本可能遭到系统安全软件的误杀,请在安全软件中执行信任操作
Kubernetes 安装
下载安装包并解压
下载 kubernetes 软件包(polaris-limiter-release_$version.kubernetes.$arch.zip):
unzip polaris-limiter-release_$version.kubernetes.$arch.zip
cd polaris-limiter-release_$version.kubernetes.$arch
修改 ConfigMap
进入到目录 polaris-limiter-release_$version.linux.$arch,修改 0-polaris-limiter-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: polaris-limiter-config
namespace: polaris-system
data:
polaris-limiter.yaml: |-
registry:
enable: true
polaris-server-address: { 北极星服务端 grpc 协议地址 }
name: polaris.limiter
namespace: Polaris
health-check-enable: true
安装
cd polaris-limiter-release_$version.kubernetes.$arch
kubectl apply -f ./
安装验证
执行以下命令,查看 polaris.limiter 服务下的实例信息
curl --location --request POST '127.0.0.1:8090/v1/Discover' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": 1,
"service": {
"name": "polaris.limiter",
"namespace": "Polaris"
}
}'