From 771c093d2b313484131fda479e9f8b229807e563 Mon Sep 17 00:00:00 2001 From: qmy <779763764@qq.com> Date: Thu, 11 Jul 2024 19:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0golang=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++-- golang/README.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 3 deletions(-) create mode 100644 golang/README.md diff --git a/README.md b/README.md index 1120ac2f..a763fd70 100644 --- a/README.md +++ b/README.md @@ -56,9 +56,9 @@ Gitee:https://gitee.com/baoyalive/baoyalive.git 1. WEB 系统提供页面、接口逻辑。 2. REDIS 服务提供数据的缓存、存储动态数据。 3. MYSQL 服务提供静态数据的存储。 -4. 视频服务提供视频直播,傍路直播,转码、存储、点播等 支持腾讯云 阿里云 七牛等 自建流媒体服务器等(包括成熟方案SRS) -5. mq 队列 聊天服务提供直播群聊,私聊,消息通知等。 -6. 后台框架:fastadmin框架。 +4. 视频服务提供视频直播,傍路直播,转码、存储、点播等 支持腾讯云 阿里云 七牛等 自建流媒体服务器等 +5. 聊天服务提供直播群聊,私聊,消息通知等。 +6. 后台框架:thinkphp框架。 ------------ ## golang微服务架构版本【未开源】 diff --git a/golang/README.md b/golang/README.md new file mode 100644 index 00000000..f29b2740 --- /dev/null +++ b/golang/README.md @@ -0,0 +1,82 @@ +## golang微服务架构版本【未开源】 + +**微服务介绍** + +1. 轻松获得支撑百万日活服务的稳定性 +2. 内建级联超时控制、限流、自适应熔断、自适应降载等微服务治理能力,无需配置和额外代码 +3. 微服务治理中间件可无缝集成到其它现有框架使用 +4. 极简的 API 描述,一键生成各端代码 +5. 自动校验客户端请求参数合法性 +6. 大量微服务治理和并发工具包 + +**架构图** + +![](https://github.com/DOUBLE-Baller/momo/blob/master/doc/doc.jpg?raw=true) + +**代码目录说明** + +``` +├── ergo +│ ├── app // app代码 +│   ├── backend // 后台接口,rpc +│   ├── backendweb // 后台vue页面代码 +│   ├── script // 数据库脚本,简化的kubernetes部署脚本 +│   ├── .gitignore // git控制忽略文件 +│   ├── LICENSE // LICENSE文件,使用的是MIT LICENSE +``` +**网关** +``` +nginx做网关,使用nginx的auth模块,调用后端的backend服务统一鉴权,业务内部不鉴权,如果涉及到业务资金比较多也可以在业务中进行二次鉴权。 +另外,很多同学觉得nginx做网关不太好,这块原理基本一样,可以自行替换成apisix、kong等 +``` +**开发模式** +``` +本项目使用的是微服务开发,api (http) + rpc(grpc) , api充当聚合服务,复杂、涉及到其他业务调用的统一写在rpc中,如果一些不会被其他服务依赖使用的简单业务,可以直接写在api的logic中 +``` +**日志** +``` +关于日志,统一使用filebeat收集,上报到kafka中,logstash把kafka数据源同步到elasticsearch中,再通过kibana进行分析处理展示等。 +``` +**监控** +``` +监控采用prometheus,只需要配置就可以了,这里可以看项目中的配置 +``` +**链路追踪** +``` +默认jaeger、zipkin支持,只需要配置就可以了,可以看配置 +``` +**消息队列** +``` +这里使用可kq,kq是基于kafka做的高性能消息队列 +``` +**延迟队列、定时任务** +``` +延迟队列、定时任务本项目使用的是asynq , google团队给予redis开发的简单中间件, +当然了asynq也支持消息队列,你也可也把kq消息队列替换成这个,毕竟只需要redis不需要在去维护一个kafka也是不错的 +链接:https://github.com/hibiken/asynq +``` +**分布式事务DTM** +``` +分布式事务准备使用的是dtm.性能够用。 +``` +**K8S部署** +``` +简单易用: 提供可视化的 Web UI,极大降低 Kubernetes 部署和管理门槛. +按需创建: 调用云平台 API,一键快速创建和部署 Kubernetes 集群 +按需伸缩: 快速伸缩 Kubernetes 集群,优化资源使用效率 +按需修补: 快速升级和修补 Kubernetes 集群. +离线部署: 支持完全离线下的 Kubernetes 集群部署 +自我修复: 通过重建故障节点确保集群可用性 +全栈监控: 提供从Pod、Node到集群的事件、监控、告警、和日志方案 +Multi-AZ 支持: 将 Master 节点分布在不同的故障域上确保集群高可用 +应用商店: 内置 Apps 应用商店 +GPU 支持: 支持 GPU 节点,助力运行深度学习等应用. + +``` + +### ==问题反馈== + +**在使用中有任何问题,欢迎反馈给我们** + +https://github.com/DOUBLE-Baller/momo/issues +