proginn08383927762022年10月08日
224阅读

作品详情

项目描述:该项目主要实现在线视频会议功能,包括门户网站、会议中心、微信小程序、公众号,用户可以通过软终端或者硬终端入会,实现多画面、会场静音、会议录制、屏幕共享,小程序扫码会控等会控操作。项目上线之后会议数量月均 4 万+,参会人数月均 42 万,会议时长月均 19 万小时,对接第三方厂家 39 家。云视讯 3.0 架构升级之后采用 Spring Cloud Alibaba 架构代替 Spring Cloud 架构。工作亮点:改造流控组件 Sentinel 源码实现规则持久化,Sentinel 是面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。但是 Sentinel 规则不能持久化,一旦服务重启,之前配置的规则都将消失,需要重新配置,基于这个问题改造 Sentinel 源码,基于 Push 模式,即 Sentinel-Dashboard统一管理配置,将规则统一推送到 Nacos 并将 Sentinel 规则持久化到 Nacos 生成配置文件,生成 Rule实现持久化。最后客户端监听 Nacos,当规则发生变动时拉去最新规则配置,在持久化 Sentinel 规则基础上,配合微服务架构改造实现 Sentinel 集群化,将 Sentinel 内置到各个微服务模块中,动态设置集群的服务端和客户端,在此之外又为 Sentinel 添加了流控预警功能,在流量达到一定值时,发送预警短信或者邮件。自研动态定时任务组件,之前项目中使用的定时任务组件为 Quartz,当会议数量并发值很大时会偶现修改定时任务失败情况,基于这个问题通过 Redis 同步锁、Redis 广播机制、Mysql、Spring bootScheduledFuture 实现了集群化的动态定时任务。在微服务中通过 SpringAop 和 Mybatis 拦截器 Interceptor 将一条请求的完整日志和对应的服务之间互相调用结果以及数据库 SQL 语句及响应结果关联起来,做到根据唯一的请求标识分析出该条请求所有涉及到的操作,增加了问题排查效率,方便了线上运维和故障处理。
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论