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

发送邮件那些事

世界第一封电子邮件 1969年10月世界第一封电子邮件是由计算机科学家Leonard K.教授发给他同事一条简短消息。...据《互联网周刊》报道世界第一封电子邮件是由计算机科学家Leonard K.教授发给他同事一条简短消息(时间应该是1969年10月),这条消息只有两个字母:"LO"。...SMTP主要负责底层邮件系统如何将邮件从一台机器传至另外一台机器。...这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器,一般是 PC机或 MAC。一旦邮件发送到 PC 机或 MAC,邮件服务器邮件将会被删除。...,等待邮件服务器SMTP客户端进行发送; 发信人邮件服务器使用SMTP协议把这封邮件发送到收件人邮件服务器 收件人邮件服务器收到邮件后,把这封邮件放到收件人在这个服务器信箱中; 收件人使用用户代理来收取邮件

1.4K80

让人欲罢不能Feed流系统是如何设计

在信息学里面,Feed其实是一个信息单元,比如一条朋友圈状态、一条微博、一条咨询或一条短视频等,所以Feed流就是不停更新信息单元,只要关注某些发布者就能获取到源源不断新鲜信息,我们用户也就可以在移动设备逐条去浏览这些信息单元...水平扩展能力:对于分布式NoSQL数据库,数据天然是分布在多台机器,当一台机器数据量增大后,可以通过自动分裂两部分,然后将其中一半数据迁移到另一台机器上去,这样就做到了线性扩展。...另外这里还有一个误区,很多人在最开始设计feed流系统时,首先想到是拉模式,因为这种和用户使用体感是一样,但是在系统设计这种方式有不少痛点,最大是每个粉丝需要记录自己上次读到了关注者哪条消息...删除Feed内容 在Feed流应用中有一个问题,就是如果用户删除了之前发表内容,系统该如何处理?因为系统里面有写扩散,那么删除时候是不是也要写扩散一遍?...针对这个问题,我们在之前设计时候,同步表中只有消息ID,没有消息内容,在用户读取时候需要到存储库中去读消息内容,那么我们可以直接删除存储库中一条消息,这样用户读取时候使用消息ID是读不到数据

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

揭秘:微信 微博 头条 快手是如何轻松处理亿级规模 Feed 流?

在信息学里面,Feed其实是一个信息单元,比如一条朋友圈状态、一条微博、一条咨询或一条短视频等,所以Feed流就是不停更新信息单元,只要关注某些发布者就能获取到源源不断新鲜信息,我们用户也就可以在移动设备逐条去浏览这些信息单元...水平扩展能力:对于分布式NoSQL数据库,数据天然是分布在多台机器,当一台机器数据量增大后,可以通过自动分裂两部分,然后将其中一半数据迁移到另一台机器上去,这样就做到了线性扩展。...另外这里还有一个误区,很多人在最开始设计feed流系统时,首先想到是拉模式,因为这种和用户使用体感是一样,但是在系统设计这种方式有不少痛点,最大是每个粉丝需要记录自己上次读到了关注者哪条消息...删除Feed内容 在Feed流应用中有一个问题,就是如果用户删除了之前发表内容,系统该如何处理?因为系统里面有写扩散,那么删除时候是不是也要写扩散一遍?...针对这个问题,我们在之前设计时候,同步表中只有消息ID,没有消息内容,在用户读取时候需要到存储库中去读消息内容,那么我们可以直接删除存储库中一条消息,这样用户读取时候使用消息ID是读不到数据

1.3K10

Feed流系统设计

在信息学里面,Feed其实是一个信息单元,比如一条朋友圈状态、一条微博、一条咨询或一条短视频等,所以Feed流就是不停更新信息单元,只要关注某些发布者就能获取到源源不断新鲜信息,我们用户也就可以在移动设备逐条去浏览这些信息单元...水平扩展能力:对于分布式NoSQL数据库,数据天然是分布在多台机器,当一台机器数据量增大后,可以通过自动分裂两部分,然后将其中一半数据迁移到另一台机器上去,这样就做到了线性扩展。...另外这里还有一个误区,很多人在最开始设计feed流系统时,首先想到是拉模式,因为这种和用户使用体感是一样,但是在系统设计这种方式有不少痛点,最大是每个粉丝需要记录自己上次读到了关注者哪条消息...删除Feed内容 在Feed流应用中有一个问题,就是如果用户删除了之前发表内容,系统该如何处理?因为系统里面有写扩散,那么删除时候是不是也要写扩散一遍?...针对这个问题,我们在之前设计时候,同步表中只有消息ID,没有消息内容,在用户读取时候需要到存储库中去读消息内容,那么我们可以直接删除存储库中一条消息,这样用户读取时候使用消息ID是读不到数据

1.2K21

从演进式角度看消息队列

kafka把一个topic拆成了多个partition,每个partition可以分散到不同机器,这样就可以把单机压力分散到多台机器。...,你可能会有个疑惑,kafka消费如果只是移动游标并不删除数据,那么随着时间推移数据肯定会把磁盘打满,这个问题该如何解决呢?...我们再把问题简化一下,假如生产者生产消息在topicA-partition-0.log中一条消息占一行,很快这个文件就到200G了。现在告诉你,这个文件x行失效了,你应该怎么删除呢?...非常难办,这和让你删除一个数组中n个元素一样,需要把后续元素向前移动,这涉及到大量CPU copy操作。假如这个文件有10M,这个删除操作代价都非常大,更别说200G了。...这样做好处是,当segment中所有消息都过期时,可以很容易地直接删除整个文件。而由于segment中消息是有序,看是否都过期就看最后一条是否过期就行了。 1.

73130

Redis、Kafka 和 Pulsar 消息队列对比

kafka把一个topic拆成了多个partition,每个partition可以分散到不同机器,这样就可以把单机压力分散到多台机器。...,你可能会有个疑惑,kafka消费如果只是移动游标并不删除数据,那么随着时间推移数据肯定会把磁盘打满,这个问题该如何解决呢?...我们再把问题简化一下,假如生产者生产消息在topicA-partition-0.log中一条消息占一行,很快这个文件就到200G了。现在告诉你,这个文件x行失效了,你应该怎么删除呢?...非常难办,这和让你删除一个数组中n个元素一样,需要把后续元素向前移动,这涉及到大量CPU copy操作。假如这个文件有10M,这个删除操作代价都非常大,更别说200G了。...这样做好处是,当segment中所有消息都过期时,可以很容易地直接删除整个文件。而由于segment中消息是有序,看是否都过期就看最后一条是否过期就行了。 1.

71620

我用消息队列做了一款联机小游戏

我小时候特别喜欢在 4399 玩一款叫做 Q 版泡泡堂游戏: 游戏里玩家可以操控一个机器人放炸弹,炸开障碍物能够获取随机道具,玩家消灭所有其他机器人则闯关成功,如果被其他机器人消灭,则闯关失败。...这个游戏中其他机器人都是电脑控制,说实话有些蠢,我玩 Hard 难度一个小时就通关了。所以我在想,是否能够把这类炸弹人游戏做成多人在线游戏,让几个好朋友联机 PK 呢?...PS:回想一下,我们在玩 MOBA 游戏时,如果由于网络原因短暂卡顿重连,也会出现类似放快速放电影情况。所以我猜测真实人在线游戏可能真的是通过类似消息队列机制来保证玩家之间同步。...() consumer.Close() // ... } 再考虑随机生成地图功能,如何在地图中随机生成障碍物可以使用前文 水塘抽样算法 来实现。...()) updateMap(msg) } Pulsar Reader接口就好比一个迭代器,可以通过HasNext和Next方法一条一条读取消息,不过在这里我们仅仅使用它来读取地图 topic

1K30

Salesforce物联网云(IOT)介绍

这个操作会确保 Awhina 及时收到消息以便在她出发更换电池。 但是假定Awhina已经在机场了,她牙刷电量马上就要没了。这时她经过了航站楼内一家销售替换电池便利店。...一个物或人在任何给定时间只有一个定义状态。当他们在此状态下时,你可以在对象或人采取任何数量个性化行动。...如果这是她第一次下榻这个酒店,物联网云将触发一条欢迎 Awhina 首次入住 Inn of Things 消息。但是因为 Awhina 是这个酒店常客,因此她会收到一条欢迎她再度光临消息。...类似像 Awhina 顾客在酒店餐厅享用完餐后会收到一条欢迎再来消息,同时还会询问顾客她是否需要预约晚餐服务。 比如说,Awhina没有回应关于晚餐消息。经过一段时间后,她得到一条提醒信息。...她收到一条消息并询问她选择一个时间。基于她选择时间,她又收到了一条消息告知她有时间享用一杯由酒店游泳池提供冰镇饮料。

1.9K20

这个14岁少年打造聊天机器人,BBC说是最好

一年过去了,尽管很多人在这个领域投入了大量精力,但是一直没有什么进展——绝大多数聊天机器人都只是噱头,毫无实用意义,最终项目难免失败。...一开始,学生需要把TA课程表分享给Christopher Bot,然后,它将在每节课以后发一条消息,询问这节课有没有留作业。 30岁我装作一个小孩,去和Christopher聊了聊。...每完成一份作业,我就告诉Christopher Bot,它会祝贺我,并自动从我待办事项列表中删除这项家庭作业。最好一点是,这个机器人不会在假期里来打扰我。...要有用 上周,Alec聊天机器人在Product Hunt获得了很多好评,还收到了不少功能需求。 一个用户评论说,“你解决了许多学生问题”。 另一个评论是:“我也14岁。哥们你做得太好了!...但是首先,他觉得Facebook和其他相关公司要向人们证明,聊天机器人是有用。 他说:“我认为真正问题是,Facebook很多用户都不是技术人员,他们不知道什么是聊天机器人,也就不会去用。

75270

消息已读回执(这个diao),究竟是推还是拉?

消息流程如何,接收方如何确保收到群消息,发送方如何收已读回执,究竟是拉取,还是推送,是今天要讨论问题。 一、群消息投递流程,以及可达性保证 大家一起跟着楼主节奏,一步一步来看群消息怎么设计。...群成员表:记录群里成员,以及每个成员收到最后一条消息。...核心问题3:如何保证接收方一定收到群消息? 答:各个收到消息后,要修改各群成员last_ack_msgid,以告诉系统,这一条消息确认收到了。...上述流程,只能确保接收方收到消息,发送方仍然不知道哪些人在线阅读了消息,哪些人离线未阅读消息,并没有实现已读回执,那已读回执会对系统设计产生什么样影响呢?...答:回执数据不是核心数据 已读消息,可以进行物理删除,而不是标记删除 超过N长时间回执,归档或者删除掉 四、总结 对于群消息已读回执,一般来说: 如果发送方在线,会实时被推送已读回执 如果发送方不在线

1.5K30

当谷歌地图定错位,微软机器人被调戏......

◆ ◆ ◆ 女子家因谷歌地图定错位被拆 新华网3月26日消息,美国得克萨斯州女子迪亚兹近来很闹心,由于谷歌地图定错了位,她家二层小楼被人误拆了。...按她说法,施工队现场负责人在作业与工人确认了该房3条基本信息,均得到肯定答复,“唯独没有确认房屋所在街道”。...◆ ◆ ◆ 微软聊天机器人上线24小时被教坏,变身满嘴脏话不良少女 不到一天,推特(Twitter)微软人工智能机器人就被人类彻底“教坏”,成了一个飙起脏话种族主义者,逼得微软不得不让Tay暂时...据美国新闻网站Quartz报道,3月23日,微软公司在推特社交平台上发布了名为Tay的人工智能聊天机器人,用户只需在推特@TayandYou就能得到Tay回复。...推特网友质疑称,Tay发布帖子似乎经过了编辑。其中一名粉丝甚至发起了“公平对待Tay”运动,要求微软让这个人工智能机器人“自己学习”。

63390

银行核心海量数据无损迁移:TDSQL数据库多源异构迁移方案

接下来,我们如何确定主机从哪里开始解析日志?我们会从消息队列上读取最后一条消息——最后一条消息包含GTID信息。...如果等于0,就认为按照主键去匹配,本身删除不到,匹配不到——意思是本身目标就没有这条要删主键所标识数据——所以实际结果跟要做完删除结果,影响是一样,也就结束这一条删除幂等。...,并且在自己机器重新拉起这些服务。...二是我们要做到同一个数据同步链路不能在两台机器同时拉起,这是一个互斥要求。...这个TDSQL数据同步服务针对水平扩容这个场景也是实现了高可用保障,比如我们会针对扩容SERVER ID进行过滤,过滤水平扩容set原实例SERVERID,这个跟跨城回环操作是比较类似的

2.5K31

草料二维码提交数据自动通知企业微信

添加企业微信群机器人在企业微信社群添加企业微信群机器人后,获取机器人webhook地址,同类方式可以添加钉钉群机器人和飞书群机器人。...4.1 草料二维码新增数据后,以图文方式推送消息推送方式:选择为图文信息(可以支持发送图片+超链接)配置账号:添加群机器人地址,如何开启企微群机器人配置参数:跳转连接选择 XXXX.URL(图片预览地址不接受本地文件...:添加群机器人地址,如何开启企微群机器人配置参数:富文本消息为:引用变量+文本方式,推送动态信息,可参考下图5....如何实现按条件提醒,比如巡检异常。可以草料应用后面添加一个内置条件判断应用,设置条件,满足执行群消息提醒,不满足则不处理。这里支持组合条件。3. 是否可以同时执行提醒到多个群。...可以,结合条件判断应用,满足不同条件,执行不同消息应用,各应用添加是不同机器人地址。

1.3K30

阿里CTO线退出历史舞台 AI视频公司Runway估值破百亿 OpenAI确认不用API数据训练…今日更多新鲜事在此

同样,谷歌母公司Alphabet董事长也透露: 在谷歌自己聊天机器人Bard上进行搜索成本是普通搜索10倍。 大语言模型究竟有多烧钱?由此种种,可见一斑。...如果你开启该模式,OpenAI就只在官方系统里将记录保存30天,之后彻底删除。...Facebook和DeepMind科学家成立AI公司Mistral 还是来自Business Insider一条消息: 法国AI初创公司Mistral AI正计划启动第一轮融资,投资机构Lightspeed...目前关于该公司资料还比较少,只知道创始人Guillaume Lample有多篇关于NLP和机器学习高引论文。而Arthur Mensch也在ArXiv发表了21篇成果,主要涉及语言模型。...该药物由筛选后符合相关标准健康人士捐赠粪便制成,经乙醇处理,主要用于预防18岁以上成人在使用抗生素治疗后出现复发性艰难梭菌感染。

17610

直播回顾 | 随意迁移,无损迁移,其实很简单

接下来,我们如何确定主机从哪里开始解析日志?我们会从Kafka读取最后一条消息——最后一条消息包含GTID信息。...增量数据无非就是三个方面:一是insert写入,二是更新,三是删除。 ?  insert写入 在写入时候我们是如何做到insert事件幂等呢?...如果等于0,就认为按照主键去匹配,本身删除不到,匹配不到——意思是本身目标就没有这条要删主键所标识数据——所以实际结果跟要做完删除结果,影响是一样,也就结束这一条删除幂等。...,这个时候这些consumer在MetaCluster存活节点失效就会被其他机器manager节点感知——认为另外一些机器consumer已经不存活,这个时候就会把任务接管过来,并且在自己机器重新拉起这些服务...二是我们要做到同一个数据同步链路不能在两台机器同时拉起,这是一个互斥要求。

71310

RabbitMQ消息队列常见面试题总结

这时就要考虑如何保证消息队列高可用了 (2)系统复杂度提高:加入消息队列之后,需要保证消息没有重复消费、如何处理消息丢失情况、如何保证消息传递有序性等问题; (3)数据一致性问题:A 系统处理完了直接返回成功了...(3)等待 Broker 回应并投递相应队列中消息,接收消息。 (4)消费者确认收到消息,ack。 (5)RabbitMQ从队列中删除已经确定消息。...所以如果是 bug 则处理 bug;如果是因为本身消费能力较弱,则优化消费逻辑,比如优化一条一条消息消费处理,那么就可以批量处理进行优化。...RabbitMQ 是基于主从(非分布式)做高可用性,RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式 10.1、单机模式:一般没人生产用单机模式 10.2、普通集群模式: 就是在多台机器启动多个...(1)缺点: ① 性能开销大,消息需要同步到所有机器,导致网络带宽压力和消耗很重 ② 非分布式,没有扩展性,如果 queue 数据量大到这个机器容量无法容纳了,此时该方案就会出现问题了 (2)如何开启镜像集群模式呢

51330

Raft 【转】

在一台服务器,一致性模块接收客户端发送来指令然后增加到自己日志中去。它和其他服务器一致性模块进行通信来保证每一个服务器日志最终都以相同顺序包含相同请求,尽管有些服务器会宕机。...不匹配,则返回 false (5.3 节) 3 如果已经存在日志条目和新产生冲突(索引值相同但是任期号不同),删除一条和之后所有的 (5.3 节) 4附加日志中尚未存在任何新条目 5如果...保留这些数据是为了支持快照后紧接着第一个条目的附加日志请求时一致性检查,因为这个条目需要一日志条目的索引值和任期号。...8 客户端交互 这一节将介绍客户端是如何和 Raft 进行交互,包括客户端如何发现领导人和 Raft 是如何支持线性化语义。...但是,如上述,Raft 是可以执行同一条命令多次:例如,如果领导人在提交了这条日志之后,但是在响应客户端之前崩溃了,那么客户端会和新领导人重试这条指令,导致这条命令就被再次执行了。

964160

全渠道客服中心聊天机器人实战

消息供应商已经注意到了这一点,他们使用机器人来改进和自动化企业与客户之间互动体验。 这一切要从在网站上增加聊天部件开始。...在进入下一步之前,需要对当前App进行测试,也就是说,我要在我Facebook主页发送一条消息。 接下来,我们要把从Zapier收到消息放进Google Sheet里。...这样一来,如果有人在Facebook主页消息,就会在Google Sheet中看到这些消息。 ? ? 我在这里没有做消息除重,如果有必要可以在后面再添加除重过滤器。...我们将这些消息保存到Google Sheet里,并使用Zapier来处理这些消息。 回复每一条消息。...结论 在这篇文章里,我们示范了如何使用Twilio Studio创建一个简单全方位消息机器人。开发人员可以基于这个示例创建出双向交互应用。

4.7K70

基于Raft深度优化,腾讯云金融级消息队列CMQ高可靠算法详解

鉴于以上分析,我们设计开发了基于Raft强一致高可靠消息中间件CMQ。接下来会介绍raft算法原理细节、如何应用在CMQ中在保证消息可靠不丢失,以及实现过程中在性能方面所作优化。...如匹配则直接写入Entry,返回成功;否则删除不匹配日志,返回失败。校验是通过在AppendEntry RPC中携带待写入Entry一条entry信息完成。...6)如果此后机器重启,通过raft日志恢复生产消息,保证了已Confirm消息不丢失。 消费流程: 1)消费者从Leader节点拉取消息。...2)Leader收到后从磁盘加载未删除消息投递给客户端。 3)客户端处理完成后Ack消息,通知服务器删除消息。 4)Ack请求经Raft同步后标记为Committed。...7)如果机器重启,通过Raft日志恢复Ack请求,保证了已删除消息不会再投递。

4.3K70

王兴将出任王慧文创业公司董事 谷歌多年来故意推迟发布类ChatGPT 飞书回应齐俊元并未负责日本业务...今日更多新鲜事在此

快来和日报君一起来品尝今日份“科技早餐”吧~ 美团王兴入局中国版OpenAI创业 美团创始人王兴一条朋友圈火了。 内容核心爆点,归结为一句话就是——要入局中国版OpenAI创业。...谷歌多年来故意推迟发布类ChatGPT产品 据外媒爆料,两位前谷歌研究员早在2年多,便建议过谷歌发布一款基于当时最强技术聊天机器人。...他们当年就认为,这种聊天机器人在人工智能技术加持下,会彻底改变人们搜索和交互方式。 二人也曾极力敦促谷歌把这种能力集成到虚拟助手,并公开展示出来。...飞书回应齐俊元并未负责日本业务 近日有消息称Teambition创始人齐俊元加盟飞书后,已经开始负责飞书日本市场。 对此,据飞书回应钛媒体内容来看,网传消息严重失实。...比赛将评估智能机器人在家居场景下场景理解、导航和抓取能力,最高奖金1万美元! 报名截止到6月20日,欢迎各高校、机构研究者报名参赛。

24640
领券