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