dev
This commit is contained in:
parent
a3ad7b50ee
commit
bbe8efba52
|
@ -38,7 +38,22 @@ export default defineConfig({
|
||||||
{ text: 'Mgt 管理端', link: '/service/mgt/index' },
|
{ text: 'Mgt 管理端', link: '/service/mgt/index' },
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ text: '开发指南', link: '/guide' },
|
{
|
||||||
|
text: '开发指南',
|
||||||
|
items: [
|
||||||
|
{ text: 'SDK', link: '/dev/sdk' },
|
||||||
|
{ text: '开发一个服务', link: '/dev/create-service' },
|
||||||
|
{ text: '部署管理后端', link: '/dev/mgt' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: '实验室',
|
||||||
|
items: [
|
||||||
|
{ text: 'Golang GUI ', link: '/labs/gui' },
|
||||||
|
{ text: '森林 AI', link: '/labs/ai' },
|
||||||
|
{ text: '搜索引擎', link: '/labs/search' },
|
||||||
|
]
|
||||||
|
},
|
||||||
{ text: '森林AI', link: 'https://www.senlinai.com', target: '_blank' }
|
{ text: '森林AI', link: 'https://www.senlinai.com', target: '_blank' }
|
||||||
],
|
],
|
||||||
|
|
||||||
|
@ -56,7 +71,7 @@ export default defineConfig({
|
||||||
items: [
|
items: [
|
||||||
{ text: '部署环境', link: '/install/os' },
|
{ text: '部署环境', link: '/install/os' },
|
||||||
{ text: '系统变量', link: '/install/env' },
|
{ text: '系统变量', link: '/install/env' },
|
||||||
{ text: 'bsm 命令', link: '/install/bsm' }
|
{ text: 'bsm cli 命令', link: '/install/bsm' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,65 +3,55 @@
|
||||||
## 介绍
|
## 介绍
|
||||||
|
|
||||||
Gateway 网关服务是一个用 Go 语言开发的高性能 API 网关,旨在帮助开发者轻松管理和路由微服务请求。通过使用此网关,您可以集中处理身份验证、负载均衡、API 版本控制以及请求和响应的转换等功能。
|
Gateway 网关服务是一个用 Go 语言开发的高性能 API 网关,旨在帮助开发者轻松管理和路由微服务请求。通过使用此网关,您可以集中处理身份验证、负载均衡、API 版本控制以及请求和响应的转换等功能。
|
||||||
|
```
|
||||||
|
https://git.apinb.com/bsm-infra/gateway
|
||||||
|
```
|
||||||
|
|
||||||
## 功能特性
|
## 功能特性
|
||||||
|
|
||||||
- **路由管理**:支持基于路径、方法和请求头的灵活路由规则。
|
- **路由管理**:自动发现注册的GRPC微服务,实现动态管理路由。
|
||||||
|
- **支持协议**:同时支持Grpc/Restful协议,自动映射转发。
|
||||||
- **负载均衡**:支持多种负载均衡策略(轮询、随机等)。
|
- **负载均衡**:支持多种负载均衡策略(轮询、随机等)。
|
||||||
- **身份验证**:集成多种身份验证机制(JWT、OAuth2 等)。
|
- **身份验证**:网关实现身份验证,采用不可视化的JWT机制。
|
||||||
- **请求限流**:为每个 API 设置请求速率限制,保护后端服务。
|
|
||||||
- **监控和日志**:实时监控请求日志,方便问题排查和性能优化。
|
- **监控和日志**:实时监控请求日志,方便问题排查和性能优化。
|
||||||
- **插件扩展**:支持自定义插件,扩展功能。
|
|
||||||
|
|
||||||
## 目录结构
|
|
||||||
|
|
||||||
```
|
|
||||||
gateway/
|
|
||||||
├── cmd/
|
|
||||||
│ └── main.go # 主入口
|
|
||||||
├── config/
|
|
||||||
│ └── config.yaml # 配置文件
|
|
||||||
├── routes/
|
|
||||||
│ └── routes.go # 路由定义
|
|
||||||
├── middleware/
|
|
||||||
│ └── auth.go # 身份验证中间件
|
|
||||||
└── README.md # 本文档
|
|
||||||
```
|
|
||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
要安装 Gateway 网关服务,请确保您已经安装了 Go 语言环境(1.16及以上版本)。然后,您可以使用以下命令克隆项目:
|
要安装 Gateway 网关服务,请确保您已经安装了 bsm cli。:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/yourusername/gateway.git
|
bsm install gateway
|
||||||
cd gateway
|
|
||||||
```
|
```
|
||||||
|
|
||||||
接下来,您可以运行以下命令来安装依赖:
|
## 配置文件说明
|
||||||
|
|
||||||
```bash
|
在 `etc/` 目录中,根据dev,test,prod环境不同读取不同的配置文件,您可以配置网关的基本设置,例如:
|
||||||
go mod tidy
|
|
||||||
```
|
|
||||||
|
|
||||||
## 配置
|
|
||||||
|
|
||||||
在 `config/config.yaml` 文件中,您可以配置网关的基本设置,例如:
|
|
||||||
|
|
||||||
|
gateway_prod.yaml
|
||||||
```yaml
|
```yaml
|
||||||
server:
|
Name: bsm-gateway
|
||||||
port: 8080
|
|
||||||
|
|
||||||
routes:
|
Open:
|
||||||
- path: /api/v1/*
|
- rpc
|
||||||
method: GET
|
- http
|
||||||
service: serviceA
|
|
||||||
- path: /api/v2/*
|
TLS:
|
||||||
method: POST
|
Ca: /usr/local/bsm/cert/tls/scf.ca.crt
|
||||||
service: serviceB
|
Cert: /usr/local/bsm/cert/tls/scf.server.crt
|
||||||
|
Key: /usr/local/bsm/cert/tls/scf.server.key
|
||||||
|
|
||||||
authentication:
|
Rpc:
|
||||||
enabled: true
|
Addr: 0.0.0.0:10020
|
||||||
type: jwt
|
|
||||||
|
Http:
|
||||||
|
Addr: 0.0.0.0:10021
|
||||||
|
|
||||||
|
Https:
|
||||||
|
Addr: 0.0.0.0:10022
|
||||||
|
|
||||||
|
Etcd:
|
||||||
|
Endpoints:
|
||||||
|
- 192.168.5.161:2379
|
||||||
```
|
```
|
||||||
|
|
||||||
### 配置项说明
|
### 配置项说明
|
||||||
|
@ -70,17 +60,15 @@ authentication:
|
||||||
- **routes**:定义路由规则,包括路径、请求方法和对应的后端服务。
|
- **routes**:定义路由规则,包括路径、请求方法和对应的后端服务。
|
||||||
- **authentication**:配置身份验证选项。
|
- **authentication**:配置身份验证选项。
|
||||||
|
|
||||||
## 使用
|
## 启动网关
|
||||||
|
|
||||||
### 启动网关
|
使用以下命令启动网关服务:
|
||||||
|
|
||||||
在项目根目录下,使用以下命令启动网关服务:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go run cmd/main.go
|
bsm start gateway
|
||||||
```
|
```
|
||||||
|
|
||||||
### 发送请求
|
## 测试网关
|
||||||
|
|
||||||
一旦服务启动,您可以使用 `curl` 或 Postman 等工具发送请求。例如:
|
一旦服务启动,您可以使用 `curl` 或 Postman 等工具发送请求。例如:
|
||||||
|
|
||||||
|
@ -88,11 +76,6 @@ go run cmd/main.go
|
||||||
curl http://localhost:8080/api/v1/resource
|
curl http://localhost:8080/api/v1/resource
|
||||||
```
|
```
|
||||||
|
|
||||||
### 查看日志
|
## 查看日志
|
||||||
|
|
||||||
网关服务会在控制台输出访问日志,您可以根据日志信息进行监控与调试。
|
网关服务会在控制台输出访问日志,您可以根据日志信息进行监控与调试。
|
||||||
|
|
||||||
## 贡献
|
|
||||||
|
|
||||||
欢迎贡献代码和反馈问题!如果您有任何建议或问题,请提交 Issue 或 Pull Request。
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue