This commit is contained in:
yanweidong 2024-10-02 12:44:22 +08:00
parent a3ad7b50ee
commit bbe8efba52
2 changed files with 54 additions and 56 deletions

View File

@ -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' }
] ]
}, },
{ {

View File

@ -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/*
method: POST
service: serviceB
authentication: TLS:
enabled: true Ca: /usr/local/bsm/cert/tls/scf.ca.crt
type: jwt Cert: /usr/local/bsm/cert/tls/scf.server.crt
Key: /usr/local/bsm/cert/tls/scf.server.key
Rpc:
Addr: 0.0.0.0:10020
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。