An open API service indexing awesome lists of open source software.

https://github.com/239573049/EarthChat


https://github.com/239573049/EarthChat

Last synced: 17 days ago
JSON representation

Awesome Lists containing this project

README

        

# EarthChat 全新版本

微服务设计的EarthChat,自研网关,无需服务发现,支持即可支持服务自动代理

```mermaid
graph TD
A[Kestrel 接收请求] --> B[YARP 路由请求]
B --> C[HttpClient 处理请求]
C --> D[连接池检查]
D --> E{是否有可用连接?}
E -- 是 --> F[复用连接]
E -- 否 --> G[创建新连接]
G --> H[将连接加入连接池]
F --> I[请求发送至目标节点]
H --> I[请求发送至目标节点]
I --> J[目标节点处理请求]
J --> K[节点返回接口响应]
```

### 流程说明:

1. **Kestrel 接收请求**:Kestrel 作为 ASP.NET Core 的 Web 服务器,接收来自客户端的 HTTP 请求。
2. **YARP 路由请求**:YARP(Yet Another Reverse Proxy)根据配置的路由规则,将请求转发。
3. **HttpClient 处理请求**:YARP 使用 `HttpClient` 来处理转发的 HTTP 请求。
4. **连接池检查**:`HttpClient` 会检查连接池中是否有可用的连接。
5. **是否有可用连接**:
- 如果有可用连接,则复用该连接。
- 如果没有可用连接,则创建一个新的连接,并将其加入到连接池中。
6. **请求发送至目标节点**:通过已有或新建的连接,将请求发送到目标节点。
7. **目标节点处理请求**:目标节点处理请求,并返回接口响应。
8. **返回响应给客户端**:通过 Kestrel 将目标节点的响应返回给客户端。