From bbe8efba5287ac66766419cc36752e6c062b1715 Mon Sep 17 00:00:00 2001 From: yanweidong Date: Wed, 2 Oct 2024 12:44:22 +0800 Subject: [PATCH] dev --- src/.vitepress/config.mts | 19 +++++++- src/infra/gateway.md | 91 ++++++++++++++++----------------------- 2 files changed, 54 insertions(+), 56 deletions(-) diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index 2ba533f..68162d0 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -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' } ] }, { diff --git a/src/infra/gateway.md b/src/infra/gateway.md index 430ceb7..f575558 100644 --- a/src/infra/gateway.md +++ b/src/infra/gateway.md @@ -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。 -