Skip to content

stark0824/audio

Repository files navigation

Audio - 有声微服务

本项目使用 Go-zero 微服务框架构建,提供了一套完整的 有声(音频)Web 服务gRPC 接口。Web 层负责处理前端请求和业务逻辑,gRPC 层用于内部服务间的高效通信。服务已全面容器化,并部署在 Kubernetes 集群上,实现了自动弹性伸缩、服务注册发现、负载均衡与故障自愈,保证了系统的高可用性和可扩展性。

技术栈

  • Go-zero:微服务框架,集成 Web 框架、RPC 框架、服务治理等能力
  • gRPC:高性能 RPC 通信协议
  • Kubernetes:容器编排与部署,提供云原生基础设施
  • Docker:容器化打包
  • MySQL/Redis(可选):数据存储与缓存

版本说明

go version : 1.20.1
goctl version: 1.4.4
go 框架: go-zero

Web 服务

1.编写api.api,使用goctl工具生成

goctl api go  -api api.api -dir ./ --style=goZero

2.生成rpc服务

goctl rpc protoc cp_drama_admin.proto --go_out=../ --go-grpc_out=../ --zrpc_out=../ --style=goZero 

3.rpc服务生成dockerfile

goctl docker -go cpDramaAdmin.go

4.测试rpc

go get github.com/fullstorydev/grpcui/cmd/grpcui
go install github.com/fullstorydev/grpcui/cmd/grpcui

启动测试:

grpcui -plaintext 127.0.0.1:8899

cp_user_internal.proto

调用外部Rpc

protoc --go_out=cp --go-grpc_out=cp message/*.proto 
protoc --go_out=cp --go-grpc_out=cp cp_user_internal.proto

生成DockerFile

cd apps/app && goctl docker -go client.go
//回到项目根目录执行命令,生成镜像
docker build -t audio-api:v1 -f apps/app/Dockerfile  .

cd apps/rpc/drama && goctl docker -go cpDramaAdmin.go
//回到项目根目录执行命令,生成镜像
docker build -t drama-rpc:v1 -f apps/rpc/drama/Dockerfile .

项目目录

.
├── README.md # 项目说明
├── apps # 服务
│   ├── app # web服务
│   ├── model # 数据模型
│   └── rpc # rpc服务
├── common # 公共模块
│   ├── globalkey # 全局key
│   ├── result # 结果封装
│   └── xerr # 错误封装
├── docker-compose.yaml # docker-compose
├── go.mod 
├── go.sum
└── proto # proto文件
    ├── pb
    └── user_auth

About

这是一个基于 Go-zero 微服务框架 开发的有声(音频)Web 服务与 gRPC 接口,实现了业务逻辑与高性能 RPC 通信,并已容器化部署在 Kubernetes 集群中,具备弹性伸缩、服务发现与高可用能力。项目采用云原生架构,适用于音频处理、内容分发等场景。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors