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/* |  | ||||||
|     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。 |  | ||||||
| 
 |  | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue