Skip to content
ABFree Studio

使用tRPC制作网关

trpc本身的架构不似GraphQL那样复杂,没有DSL,没有Schema,没有复杂的类型系统,没有复杂的查询语言。类型定义是通过TypeScript的类型系统来定义的,查询语言是通过函数调用来定义的。这样的设计使得trpc的学习成本非常低,上手非常快。

首先我们得提前了解一下几个知识点:

RPC:Remote Procedure Call,远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。 微服务:Microservices,是一种架构风格,是一种将单一应用程序划分为一组小的服务的方法,每个服务运行在自己的进程中,并与其他服务通过HTTP API进行通信。

Diagram
direction: right
Alice -> John: "Hello John, how are you?"
John -> Alice: "I feel great!"
Alice -> John: "John, can you hear me?"
John -> Alice: "Hi Alice, I can hear you!"
Alice -> John: "Did you want to go to the game tonight?"
John -> Alice: "Yeah! See you there."

使用tRPC制作网关

direction: down
main-server: main-server服务
share: share
pub-auth: pub-auth
worker-gateway: worker-gateway
ui: ui
main-server -> share: 依赖
main-server -> pub-auth: 依赖
main-server -> worker-gateway: 依赖
share -> ui: 依赖
pub-auth -> ui: 依赖
worker-gateway -> ui: 依赖
direction: right
手动触发 -> 生成对应任务
自动触发 -> Cron -> 生成对应任务
生成对应任务 -> {
访问对应网址 -> 保存mhtml -> 上传到R2 -> 生成对应PreviewURL
}
插件 -> 预览 -> 上传 -> 解析 -> 存储 -> CDNPreview
保存mhtml -> {
gateway -> worker -> postgre: 保存数据
}

Cloudflare R2 预览svg的行为会变成下载,


© 2024 ABFree Co. All rights reserved.