首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5亿用户如何高效沟通?钉钉首次对外揭秘即时消息服务DTIM

当用户客户端发起某个会话历史消息漫游请求,服务端根据用户上传消息截止时间(message_create_time)分别从 conversation_message 表和 message_inbox...最后是推拉结合方案,这个方案整合优点,但是方案更复杂,同时会比方案多一次 RTT,特别是移动网络场景下,不得不面临功耗和推送成功率问题。...第三,支持缺失数据回补,某个极端情况下客户端群消息事件比群创建事件更早到达端上,此时端上没有群基本信息消息也就无法展现,所以需要客户端主动向服务端群信息同步到本地,再做消息透出。  ...比如通过钉钉小秘书给大量用户推送升级提醒,由于是一个账号与大量账号建立会话,因此会存在 conversation_inbox 热点问题,如果通过限速来解决,导致推送速度过慢、影响业务。...总的来说,主要是两类问题:大账号和大群导致热点问题。对于大账户问题,由于 conversation_inbox 采用用户维度做分区,导致系统账号请求都落到某个分区,从而导致热点。

90020

为什么很多开源项目都用到了Server酱?

「Server酱」,英文名「ServerChan」,是一个叫 easy 作者开发,可以从服务器报警和日志到手机。 也许你会说这样工具太多了,为什么要用这个呢?...所以 ServerChan 只有一个接口,只要输入网址,你就会用。 一分钟内就可以使用:注册账号是很麻烦事情,所以我们用 GitHub 账号;输入账号是很讨厌事情,所以我们用绑定二维码。...所有这些流程都保证了一个程序员可以一分钟内配置好「Server酱」,并收到第一条推送消息。你问没有 GitHub 账号怎么办?没 GitHub 账号还能叫程序员么?...也就是说除了常见服务器异常报警,你还用它向手机发送内容,比如说你在网上看到一些信息要保存到手机,但是这台电脑没有 PC微信,如何将这些发送到自己手机上呢,最快捷方法就是访问 http://sc.ftqq.com...c=code,GitHub 账号登录,然后就可以将诸如电话、地址、网址和图片轻松送到手机。 除了微信消息,还可以推送消息到微信测试号、企业微信、钉钉和飞书。

8.7K11
您找到你想要的搜索结果了吗?
是的
没有找到

Feed 流系统实战

模型 另一部分工程师认为创作者发布文章就应该将新文章写入到粉丝关注 Timeline,用户每次阅读只需要到自己关注 Timeline 就可以了: 使用模型方案创作者每次发布新文章系统就需要写入...模型好处在于操作简单高效,但是缺点一样非常突出。 首先,每篇文章要写入 M 条数据,如此恐怖放大倍率下关注 Timeline 总体数据量将达到一个惊人数字。...传统 limit + offset 分页器会有一些问题: T1 时刻读取了第一页,T2刻有人新发表了 article 11 ,如果这时来第二页,导致 article 6 第一页和第二页都被返回了...模型:发布新 Feed 送到每个粉丝 Timeline; 拉模型:打开 Timeline 所有关注的人发布 Feed,重新聚合成粉丝 Timeline。...使用「在线,离线只给 Timeline 缓存未失效用户推送即可 Redis 内存不足可以使用 Cassandra 作为 Redis 二级缓存。

6710

你必须知道消息推拉机制

最大优点就是主动权掌握Consumer这边了,每个消费者消费能力可能不一样,消费者可以根据自身情况来取消息请求,如果消费者真的出现那种忙不过来情况下,可以根据一定策略去暂停 服务端也相对来说轻松了...,但是又不能频繁,这样也耗费性能,因此就必须降低请求频率,请求间隔时间也就意味着消息延迟 RocketMQ最终选择呢,为什么是拉模式 RocketMQ最终决定拉模式,kafka也是如此...和offset进行消息,用户取消息时候,用户自己决定哪个队列从哪个offset开始,多少消息 为什么拉模式稍微更合适些呢,现在消息队列都有持久化消息需求,削峰主要就是靠持久化来削,...其实说白了,就是对普通轮询进行一定程度限制,客户端可以随时请求服务端,但是我并不一定立即回复你 RocketMQ就是使用长轮询来实现拉模式,Consumer发起pull请求之后,broker处理请求取消息时候...,这样算是实现了一种准实时取消息 源码PullMessageProcessor里面的processRequest方法,用来处理消息请求,有消息返回,没有消息就进入了上述说长轮询过程,这部分源码我就不截了

57520

Git与远程仓库之间通讯与协作

如果你要连接到SSH服务器,客户端软件就会向服务器发出请求请求用你密匙进行安全验证。服务器收到请求之后,先在该服务器主目录下寻找你公用密匙,然后把它和你发送过来公用密匙进行比较。...一路回车即可创建一个密钥对,然后去C/user/.ssh文件夹去看就有俩密钥了 然后就是去github仓库或者账号里添加公钥进去即可....origin master (前提你添加好了远程仓库地址) 推送和可能产生冲突问题 举个栗子 A和B都持有远程仓库版本1 A1基础修改了库并更新了远程仓库(假设现在远程仓库版本为...2) B也1基础修改了,这时候他要推送到远程仓库就会出现不成功问题.因为他不是2基础修改,如果我们可以推送的话岂不是覆盖了原来版本2?...再举个栗子 和上面同样事情,本来都持有仓库1,A更新了自己仓库到2也推送到了远端,这个时候我们B也修改了自己代码,这时候我们直接远程仓库必然失败,因为我们不是2基础修改内容,如果直接取了覆盖我们

91920

杨春文:小程序直播产品中技术应用

还例如直播利用,可能会打开首页,首页上面有直播列表,是实时更新,还有隐藏操作,不断请求数据,不停刷新列表,不停进行隐藏式操作,会对前面的直播间处理,也造成冲突,除前页面签到后界面,推荐更新...其实微信里面不存在情况,微信小程序定期销毁,打开每小程序,每小程序都内存,会把更老销毁,如果小程序,如果图片特别的多,占用内存特别多,可能就成为优先被销毁要程序。...A页面切到B页面的过程当中,B页面加载过程中,直接从本地数据里面取到数据,不需要再发请求数据,B页面里面进行切换以及数据处理和,避免中间时间消耗等等延迟问题。...A:开发者工具上明明可以为什么到真机上不行?...,我代码体积非常小,可能只整个代码百分之几,但是图片资源没有办法压缩到那么多,没有办法压太小,尽量少存图片,开发者说我理解可能是库,开发者可以考虑一下,小程序不存在我包里面,应用里面动态库完成开发

2.1K130

Git入门学习到进阶3

[toc] 0x00 参与开源项目 但是GitHub,利用Git极其强大克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。 如何参与一个开源项目呢?...仓库然后从自己账号下clone: git clone git@github.com:michaelliao/bootstrap.git 一定要从自己账号下clone仓库,这样你才能推送修改。...如果你希望bootstrap官方库能接受你修改,你就可以GitHub发起一个pull request(推送属性请求),当然对方是否接受你pull request就不一定了。...操作流程(f方法1): # 方式1:打开每个项目的.git文件夹下config文件,但是需要手动指定源或者上传 [remote "gitee"] url = git@gitee.com:WeiyiGeek...Github创建仓库进行关联,当进行git pull提醒fatal: refusing to merge unrelated histories。

45120

Gitbash使用基础

集中式版本控制系统:版本库也即是代码库是集中存放在一个中央服务器中,当程序员需要修改代 码时候,就需要在中央服务器最新版本,然后继续写代码或者修改,修改完成以后再把自己 修改后送到服务器端...常见系统(工具) CVS和SVN:CVS作为最早开源而且免费集中式版本控制系统,到现在还 有不少人在用。但是由于CVS自身设计问题,造成提交文件不完整,版本库莫名其妙损坏情 况。...分布式版本控制系统 系统没有‘中央服务器’,每个人电脑都是一个完整版本库,工作不 需要联网,开发者之间只需把各自修改推送给对方(同一网络下),就可以互相看到对方修改 了。...gitbash配置 gitbash是可以一个本地仓库连接多个远端仓库,你可以将一个本地仓库推到多个远端仓库 介绍:也就是把本地仓库内容送到远端,就是把远端代码拉到本地 连接你账户:...如何仓库 # 命令 git clone +地址

57830

高频场景题分析|Feeds 流怎么设计?

模型 另一部分工程师认为创作者发布文章就应该将新文章写入到粉丝关注 Timeline,用户每次阅读只需要到自己关注 Timeline 就可以了: 使用模型方案创作者每次发布新文章系统就需要写入...模型好处在于操作简单高效,但是缺点一样非常突出。 首先,每篇文章要写入 M 条数据,如此恐怖放大倍率下关注 Timeline 总体数据量将达到一个惊人数字。...这种重复操作不影响结果特性有个高大名字 ——— 幂等性 当 Redis 中没有某个 Timeline 缓存我们无法判断是缓存失效了,还是这个用户 Timeline 本来就是空。...传统 limit + offset 分页器会有一些问题: img T1 时刻读取了第一页,T2 时刻有人新发表了 article 11 ,如果这时来第二页,导致 article 6 第一页和第二页都被返回了...若某个推送子任务失败 MQ 自动进行重试,也无需我们担心。

8210

如何基于 ZEGO SDK 实现 Android 一对一音视频聊天应用

,用户 B 预览并将音视频流推送到 ZEGO 云服务(流),用户 A 收到用户 B 推送音视频流通知之后,通知中播放用户 B 音视频流(流)。...如果同一个 AppID 下,不同用户各推了一条 “streamID” 相同流,后用户流失败。 此处示例调用 loginRoom 接口后立即进行流。...// 用户调用 loginRoom 之后再调用此接口进行流 // 同一个 AppID 下,开发者需要保证“streamID” 全局唯一,如果不同用户各推了一条 “streamID” 相同流,后用户流失败...我们可以该回调中,调用 startPlayingStream,传入 “streamID” 播放该用户音视频。...,我们只新增音视频流列表中第第一条流,实际业务中,建议开发者循环遍历 streamList ,每一条音视频流 ZegoStream stream = streamList.get

1.2K30

新知2023 | 打造“爆款”直播,音视频技术赋能直播移、云端导播等“新玩法”

云端导播台也打破了地域限制,无需本地部署专业导播设备,只需将直播流推送到云端,就可以云端轻松进行跨地域导播,适用于演唱直播、秀场直播、赛事直播等多机位切换场景。...若直播源无流能力或点播视频内容需要通过直播形式分发,可通过流转推服务,实现内容并推送,无需进行直播流,就可以快速已有的视频或直播,推送到目标地址。...流转支持多平台分发,主播开播后可通过流转将直播分发到其他平台上,扩大受众范围。另外,我们还支持流录制能力,MCN公司可以通过流录制能力,将工会下所有主播直播内容统一,并录制下来。...例如在手机端720P分辨率转码流,电视端4K分辨率转码流;在网络较差低码率转码流,当网络改善后,再拉更高码率码流。...腾讯云按指定模块对直播流进行加密,解密播放,客户通过腾讯云API接口请求获取token密钥字段,添加到播放URL中,供播放SDK解密播放。

46542

Redis实现feed流

2 特点 多账号内容流 Feed 流系统中肯定会存在成千上万账号账号之间可以关注,关,加好友和黑等操作。只要满足这一条,那么就可以当做 Feed 流系统来设计。...非稳定账号关系 由于存在关注,关等操作,所以系统中用户之间关系就会一直变化,是一种非稳定状态。...4.2 推送 推送方案里面的,有三种方案,分别是: 拉模式 也称为读扩散,用户主动去关注人 Feed 内容。...模式 也成为写扩散,当用户添加 Feed 自动将 Feed 通知给关注的人(优选)。...在线,离线 大V发动态,只同步发布动态给同时在线粉丝,离线粉丝上线后,再去动态。来完成。 ? 定时,离线 大V发动态之后,以常驻进程方式定时推送到粉丝动态表。 ?

1K20

移动直播技术知多少:基础原理解析 & 腾讯云直播接入

一、直播基础知识 最原始直播系统其实并没有想象那么复杂,无非就是主播端将音视频数据推送到服务器,观众端则从服务器数据播放。 1....流,指的是「观众端」流媒体数据,同样也需要通过约定流协议来。 2. 直播协议 直播协议包含了上面提到流」和「流」协议。...弱网优化 根据不同网速切换不同码率进行播放等。 断线重连 网络断开重联机制。 3....我们知道,手机/PC 访问一个域名时候,向 DNS 发起请求,普通情况下,DNS 会将域名解析成 IP 地址,然后返回给 手机/PC ,接着通过这个 IP 发起真正请求。...---- 当客户端对 A域名 发起请求,DNS 找到 A ,说:“给我 IP 吧”,这时候 A 告诉 DNS : “我没有,你去找 B域名 要吧”。

5K137

Git之远程仓库【码云,命令行操作,IDEA操作】

4、IDEA中使用Git 4.1 开始操作 4.2 、初始化本地仓库​ 4.3 提交到本地仓库:​ 4.4 推送到远程仓库​ 4.5 项目​ 4.6 克隆项目​ 4.7 分支操作​ ---- 1...地址: GitHub: Where the world builds software · GitHub 码云:是国内一个代码托管平台,由于服务器国内,所以相比于GitHub,码云速度更快...地址: 我工作台 - Gitee.com GitLab:是一个用于仓库管理系统开源项目,使用Git作为代码管理工具,并在此基础搭建起来web服务,一般用于企业、学校等内部网络搭建git私服...地址: about.gitlab.com 这篇博客就以码云为例,为什么不用GitHub,因为慢,码云国内快,而且它们使用方式大同小异。...注:IDEA版本不同,操作可能也不同

80720

目前最流行版本控制软件:Git基本使用

而且,部分开源项目是同时托管在这两个平台上,所以碰到无法打开Github项目Gitee找找也许会有惊喜。 0x01.安装Git Git全平台均可使用。...),原有项目开发者会收到这个请求,这个时候他review代码,并且测试觉得OK了,就会接受PR,这个时候新改进会被合并进原有项目。...Watch 可以理解为观察,如果Watch了某个项目,以后如果这个项目有更新,都会收到关于这个项目的通知提醒。...最后将代码推送到远程仓库指定分支,即可完成一次代码提(其中注意,最后提交Gitee与Github分支名有所不同): # 推送代码到指定分支 git push origin [分支名] # Github...切换分支 git checkout [分支名] # 切换到新分支之后手动最新内容 git pull origin [分支名] 此时进行改动就是新分支下面了。

31110

【Git开发教程 四 —— Git远程库交互】

大家先注册一下GitHub账号,官网地址:https://github.com/ 具体注册步骤就不介绍了,非常简单。...如何远程库 我们暂且将最开始推送远程库开发人员称为程序员A,另一位开发人员称为程序员B。 那么现在情况是,程序员B克隆了程序员A远程库到本地,并在本地进行了修改,然后推送到了远程库。...解决合并冲突 讲解本地库分支操作,我们便介绍了该如何去解决合并所产生冲突,这里协同开发同样可能产生一系列冲突问题,解决方法是类似的。...提交完成后,就可以推送到远程库了: git push origin master 跨团队协作开发 刚才介绍了如何进行团队协作开发,当你将某位开发人员邀请到你项目团队中,该开发人员就可以对远程库进行和推送操作了...比如你目前正在开发公司项目中某个模块,途中遇到了一些技术问题,你找人帮忙,可他不是你们公司,你当然不能把他邀请到你项目团队里了,这就涉及到一个跨团队协作开发问题,该如何解决呢?

72410

P2P如何将视频直播带宽降低75%?

流与连麦 确定好了媒体分片就可以进行流了,我们把流和分发路径合二为一,麦者是将流数据 segment 推送到离自己最近 Edge server ,而不是推送到专门连麦系统。...3、本地根据记录邻居分片信息查找自己丢失分片,通过邻居亲和力值 score 进行权衡随机选取邻居,并向选取邻居发起 pull 请求。 4、收到邻居分片请求,将分片发往请求节点。...补偿 因为 P2P 客户节点是不稳定,有可能某个 segment 通过多次还是没有收到,这个 segment 又临近播放位置,那么缺失这个 segment 节点直接向 Edge server...补偿区间:分片时序进入补偿区间后,也周期检查丢失分片,根据丢失分片 ID 直接向 Edge server 请求,尝试 4 次,每次尝试时间为一个本地节点与 Edge server 之间 RTT...因为每一个节点播放时间点不同,有可能本地播放分片正是其他节点丢失分片,有可能其他节点会通过 pull 来,所以我们会把播放后分片放在过期区间 3 秒后再删除。

83730

Git多账户多地址多秘钥配置

多账户/多平台 多仓库地址 多账户多key/单账户多key 其实单一账号,地址,key ,基本没什么问题,大家正常使用即可。 但是 你有不同地址,又有不同账号,还同时对应不同key。...比如你有多个github账号。统一个key 只可以被一个账号绑定。 然后你不同账号切换时候就很麻烦。虽然也可以单独项目去配置。但是小编比较懒,就没选取那个方法了。...当然,你可以通过http 方式。但是有的仓库限制不允许Http时候,是不是就很麻烦了呢?...导致账号密码错误,无法进行仓库,提交等操作,难点在于账号切花,key配置相对简单。...,该目录下保存秘钥,需要提醒是这个目录是默认隐藏,可以打开Finder,同事按下command + shift + .即可显示全部隐藏文件 cd ~/.ssh //查看秘钥目录 然后,根据账户邮箱生成秘钥

2.6K60

使用Python实现微信提醒备忘录功能

总体思路是将待办事项记录到在线记事本,通过建立定时任务,每天早上爬文档中记 录待办事项,筛选出当日需要处理事项,并通过server酱发送到自己微信。...登入:用GitHub账号登入网站,获得自己SCKEY。? 绑定:通过微信扫码关注完成绑定。 ?...entrance为主功能函数,用于爬在线记事本中信息、筛选出当天需要办理事项并通过server酱发送到 微信; day_of_week表示定时任务一周中哪几天执行,0-6分别代表周一至周日,也可以指定某个值...,比如‘0’表 示仅在周一执行; hour、minute和second分别代表定时任务执行、分、秒,这几个参数既可以指定某个值也可以向day_of_week一样设置范围,甚至设置执行间隔频率。...Python实现微信提醒备忘录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编及时回复大家

1.4K41

“不可不学是编程,不可不用是git” | github

然后推送到github,使用这条命令,可以github新建一个分支。 ▼ 使用分支 ▼ 本地中创建新分支 ? 再来看看github情况吧 ? ?...到了这步,我们来说说github创建分支和合并分支吧。 在这里可以选择,输入一个名字,如果在现有的分支中匹配不懂,那么提示您创建一个新分支,前提是,自己账号登录哈。 ?...下面可以按照之前操作,使用本地git来管理自己仓库了。 之后自己仓库发起请求就可以了。下面上演示。 ? ? ? ? 在这个分之下,我们可以看到我们新建文件lp了吧。...现在我们在这里发起请求。 ? ? 看吧,我们fork来仓库,没有提示合成请求吧,那么我们现在再跳到前一个账号去看看。 看,请求已经出现在这里啦。 ? 接下来我们就可以把这个分支合并过来啦。...接下来我们呢再试试,用另一个账号能不能直接推送到这里呢? ? 从本地推送成功,我们来看github如何呢? ? 到这里,本文主要内容就结束了。 - 进入下一话题 - ▼ -01- 问答 1.

82520
领券