fzuhelper-server 是基于分布式架构的 fzuhelper 服务器应用程序,自 2024 年以来一直在使用,每天为 超过 23,000 名 福州大学的学生提供服务(数据来源及 fzuhelper 介绍)。
该项目侧重于业务实现。如果你想了解我们如何与教务系统对接,可以查看我们的开源项目 west2-online/jwch。
fzuhelper 于 2015 年上线,由 west2-online 从零开发并持续运营,尽可能为校内学生提供工业级实践机会,并为学生就业提供有力支持。
- 云原生:采用原生 Golang 分布式架构设计,基于字节跳动的最佳实践。
- 高性能:支持异步 RPC、非阻塞 I/O、共享内存通信和即时编译(JIT)。
- 可扩展性:模块化、分层的结构设计,代码清晰易读,降低了开发难度。
- DevOps:丰富的脚本和工具减少了不必要的手动操作,简化了使用和部署流程。
.
├── .golangci.yml # GolangCI 配置文件
├── .licenseignore
├── go.mod
├── go.sum
├── LICENSE
├── Makefile # 一些 make 命令
├── README.md
├── api # gateway
├── cmd # 各个微服务的启动入口
├── config # 配置文件和配置示例
├── docker # Docker 构建配置
├── docs
├── hack # 用于自动化开发、构建和部署任务的工具
├── idl # 接口定义
├── internal # 各个微服务的实现
├── kitex_gen # Kitex 生成的代码
└── pkg
├── base/ # 通用基础服务
│ └── client/ # 对应组件(redis, mysql e.g.)的客户端
├── cache/ # 缓存服务
├── db/ # 数据库服务
├── constants/ # 存储常量
├── errno/ # 自定义错误
├── eshook # elasticsearch hook
├── logger/ # 日志系统
├── tracer/ # 用于 Jaeger 的追踪器
└── utils/ # 实用函数
我们已经实现了 CI/CD,而要部署的话也可以参照下面这个文档来了解具体的部署流程。
详情请查看 部署文档。
如果你有兴趣参与 fzuhelper-server 的维护工作,请访问我们的 官方网站 联系我们。
fzuhelper-server 采用 Apache 2.0 许可协议。详情请参阅 LICENSE 文件。