首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在 Linux 上运行你自己的公共时间服务器

    (查看 在 Linux 上使用 NTP 保持精确时间 去学习如何设置一台局域网时间服务器) 著名的时间服务器滥用事件 就像现实生活中任何一件事情一样,即便是像时间服务器这样的公益项目,也会遭受不称职的或者恶意的滥用...使得时间服务器的查询请求突然增加,随着 NetGear 卖出越来越多的路由器,这种情况越发严重。更有意思的是,路由器的程序设置是每秒钟发送一次请求,这将使服务器难堪重负。...放大攻击是指一个很小的请求收到大量的回复信息。例如,在 Linux 上,ntpq 命令是一个查询你的 NTP 服务器并验证它们的系统时间是否正确的很有用的工具。一些回复,比如,对端列表,是非常大的。...它对机器本身要求并不高,很多管理员在其它的面向公共的服务器(比如,Web 服务器)上顺带架设了 NTP 服务。...查看官方的手册 分布式网络时间服务器(NTP) 学习所有的命令、配置选项、以及高级特性,比如,管理、查询、和验证。访问以下的站点学习关于运行一台时间服务器所需要的一切东西。

    1.3K20

    世界上运行时间最长的服务器是多久?

    最近,在知乎上看到一个引人深思的问题:“世界上连续运行时间最长的电脑(服务器)是多久?”该话题引发激烈的讨论,一时间众说纷纭。 有些人认为6年小意思,而另一些人则持反对意见。...01、知乎好友:罗健 国企,某省电信自有数据中心,一台红帽公司的 redhat linux 5.4,从 2009 年机器上架至今,已经持续运行 14 年。...还有一台被设计成7*24*365的基站网元设备,双主板冗余热备,持续运行时间有20年,但因为涉及敏感信息,我们签署过保密协议,无法拍照或截图。...还听过八卦说前几年国内某企业机房下电的一台 Sun 服务器是19年运行时间(这个无图无真相了)。 怀念伟大的 SUN!...连续运行时间最长的计算机系统是美国宇航局航行者2号航天器上的计算机命令系统(CCS)。 这对互联计算机自1977年8月20日航天器发射以来一直在运行。

    5100

    部署到服务器上的项目隔段时间访问查不到数据?服务器上安装mysql都要调整的参数

    最近在部署一个项目,试用了一个腾讯云的服务器,正常安装docker和mysql,构建镜像以及启动容器;后面发现只要我隔段时间不去访问项目,就会出现数据库无法查询的情况,项目查不到数据;查看数据库和项目有关的那个数据库直接消失了...一直在网上寻求解决方式,以为是服务器的问题,因为之前用阿里云服务器并没有这种情况;查看服务器内存也很充足,实在找不到有什么解决方法;好在是经过一番讨论最后是解决了。...,默认值依旧是28800秒,8小时;非交互式客户端指的是那些通过编程方式连接到mysql的应用程序,例如JDBC,ODBC等数据库连接池;之前项目隔段时间莫名查不到数据的根本原因在于服务器上的mysql...空闲时间超过了8小时,也就是我们没有去访问项目超过了8小时,导致服务器上的mysql自动关闭了;mysql自动关闭当然就查不到数据;如果不修改这两个参数,对于长期上线的web应用程序必然会出现数据无法查询的错误...800小时,基本上保证了访问项目能正常查询到数据的情况;除非你的项目用的人实在太少,那就继续延长自动关闭的时间;反正我直接设置成了8000小时哈哈哈(虽然也只是我自己用来做练习的项目)。

    9410

    IM消息机制(二):保证离线消息的可靠投递

    ),用于去重等场景,单机情况下此id可能是个自增值、分布式场景下可能是类似于UUID这样的东西 msg_id varchar(70), -- 消息发出时的时间戳(如果是个跨国IM,则此时间戳可能是...② 离线消息拉取模式: 接收方B要拉取发送方A给ta发送的离线消息,只需在receiver_uid(即接收方B的用户ID), sender_uid(即发送方A的用户ID)上查询,然后把离线消息删除,再把消息返回...③ 优化方案2: 如下图所示,一次性拉取所有好友发送给用户B的离线消息,到客户端本地再根据sender_uid进行计算,这样的话,离校消息表的访问模式就变为->只需要按照receiver_uid来查询了...如上图所示,不用每一页消息都ACK,在拉取第二页消息时相当于第一页消息的ACK,此时服务器再删除第一页的离线消息即可,最后一页消息再ACK一次(实际上:最后一页拉取的肯定是空返回,这样可以极大地简化这个分页过程...,相比按照发送方一个个进行消息拉取,能大大减少服务器交互次数 分页拉取,先拉取计数再按需拉取,是无线端的常见优化 应用层的ACK,应用层的去重,才能保证离线消息的不丢不重 下一页的拉取,同时作为上一页的

    1.4K10

    IM消息送达保证机制实现(二):保证离线消息的可靠投递1、前言2、学习交流3、IM消息送达保证系列文章4、消息接收方不在线时的典型消息发送流程5、典型离线消息表的设计以及拉取离线消息的过程6、上述流

    ),用于去重等场景 msg_idvarchar(70), -- 消息发出时的时间戳(如果是个跨国IM,则此时间戳可能是GMT-0标准时间) send_timetime, -- 消息发送者ID...ID), sender_uid(即发送方A的用户ID)上查询,然后把离线消息删除,再把消息返回B即可。...③ 优化方案2: 如下图所示,一次性拉取所有好友发送给用户B的离线消息,到客户端本地再根据sender_uid进行计算,这样的话,离校消息表的访问模式就变为->只需要按照receiver_uid来查询了...如上图所示,不用每一页消息都ACK,在拉取第二页消息时相当于第一页消息的ACK,此时服务器再删除第一页的离线消息即可,最后一页消息再ACK一次(实际上:最后一页拉取的肯定是空返回,这样可以极大地简化这个分页过程...,同时作为上一页的ACK,能够极大减少与服务器的交互次数。

    82021

    融云技术分享:全面揭秘亿级IM消息的可靠投递机制

    那么分布式部署情况下,将用户归属到固定的业务服务器上(PS:指的是同一账号的不同端固定连接到相同的业务服务器上),会使得上行排序变得更容易。同时归属到同一个服务器,在多端维护时也更容易。...示意图如下: 小结一下就是:客户端发出消息后,通过接入服务,按照 userId 投递到指定消息服务器,生成消息 Id, 依据最后一条消息时间,确认更新当前消息的时间戳(如果存在相同时间戳则后延)。...下行过程,按照目标 userId 以及本消息在上行过程中生成的时间戳,计算是否需要更新时间戳(正向)。 如果需要更新则对时间戳进行加法操作,直到当前用户时间戳不重复。...通知拉取时候客户端选择本地最新一条消息时间戳作为开始拉取时间; 3)在消息发送过程中,如果上一条消息发送流程未结束,下一条消息则不用直发(s_msg),而是用通知(s_ntf)。...投递给客户端; 2)客户端收到通知后,比对本地消息时间戳,选择是否发拉取消息信令; 3)服务端收到拉取消息信令后,以信令携带的时间戳为开始,查询出消息列表(200 条或者 5M),并给客户端应答; 4)

    90420

    融云技术分享:全面揭秘亿级IM消息的可靠投递机制

    那么分布式部署情况下,将用户归属到固定的业务服务器上(PS:指的是同一账号的不同端固定连接到相同的业务服务器上),会使得上行排序变得更容易。同时归属到同一个服务器,在多端维护时也更容易。...小结一下就是:客户端发出消息后,通过接入服务,按照 userId 投递到指定消息服务器,生成消息 Id, 依据最后一条消息时间,确认更新当前消息的时间戳(如果存在相同时间戳则后延)。...下行过程,按照目标 userId 以及本消息在上行过程中生成的时间戳,计算是否需要更新时间戳(正向)。 如果需要更新则对时间戳进行加法操作,直到当前用户时间戳不重复。...通知拉取时候客户端选择本地最新一条消息时间戳作为开始拉取时间; 3)在消息发送过程中,如果上一条消息发送流程未结束,下一条消息则不用直发(s_msg),而是用通知(s_ntf)。...投递给客户端; 2)客户端收到通知后,比对本地消息时间戳,选择是否发拉取消息信令; 3)服务端收到拉取消息信令后,以信令携带的时间戳为开始,查询出消息列表(200 条或者 5M),并给客户端应答; 4)

    79720

    IM开发技术分享:浅谈IM系统中离线消息、历史消息的最佳实践

    (PS:用户离线的可能性在技术上其实是由很多种情况组成的,比如对方不在线、对方网络断掉了、对方手机崩溃了、服务器发送时出错了等等,严格来讲——只要无法实时发送成的消息,都算“离线消息”。)...在客户端拉取离线消息的信令中,需要带上当前客户端缓存的消息的最大时间戳。...通过上节的图我们应该知道,离线消息我们存储的是一个线性结构(指的是按时间顺序),Server 会根据这个时间戳向下查找离线消息。...当重装或者新安装 App 时,客户端的“当前客户端缓存的消息的最大时间戳”可以传 0 上来。...在拉取过程中,需要向服务端提交两个参数: 1)对方的 ID(如果是单聊的话就是对方的 UserID,如果是群则是群组ID); 2)当前会话的最前面消息的时间戳(即当前会话最老一条消息的时间戳)。

    2.6K30

    一文吃透ICMP协议:网络诊断与故障排查的关键利器

    例如,在时间戳请求和应答报文中,可选数据部分会包含时间戳信息,用于记录报文的发送时间、接收时间等,以便计算网络延迟和往返时间 。...Telnet 连接远程服务器时,如果服务器上的 Telnet 服务未启动,或者防火墙阻止了该端口的访问,就会收到端口不可达的 ICMP 报文 。...时间戳查询:源主机可以向目标主机发送时间戳请求报文,请求目标主机返回其当前的时间值。目标主机在时间戳应答报文中返回其接收请求时的时间戳和发送应答时的时间戳 。...这种机制可用于网络中主机间的时钟同步和网络延迟测量,通过计算时间戳的差值,可以得到数据包在网络中的往返时间,从而评估网络延迟情况,也可以根据时间戳信息对主机的时钟进行校准,实现时钟同步 。...、子网掩码查询、时间戳查询等重要功能,确保网络的稳定运行和高效性能 。

    15610

    基于Storm的实时计算应用实践

    订单实时统计的演进 第一版:流程走通 在使用storm之前,显示实时统计数据一般有两种方案: 在数据库里执行count、sum等聚合查询,是简单快速的实现方案,但容易出现慢查询。...第二版:性能提升 第一版的性能瓶颈在统计结果持久化上。为了确保数据的准确性,把所有的统计指标持久化放在一个数据库事务里。...为此做了数据库事务的瘦身: 去除历史状态的mysql持久化,而是通过单条binlog消息的前后状态对比,决定统计逻辑,这样就做到了统计逻辑上的无状态。...对于时序判断,尽量不用使用时间戳,因为在分布式系统里,各服务器时间不一致是很常见的问题。...监控 生产环境少不了监控,除了服务器的基础监控,还加了不少storm特有的监控: 消息延迟:消息在业务系统的时间戳与storm应用的当前时间戳对比,大于一定阈值则告警,不同应用的阈值会不同; 消息处理时长

    1.4K80

    Feed 流系统实战

    推与拉之争 拉模型 一部分工程师认为应该在查询时首先查询用户关注的所有创作者 uid,然后查询他们发布的所有文章,最后按照发布时间降序排列。...而粉丝数有几十万甚至上百万的头部创作者每次发布文章时巨大的写入量都会导致服务器地震。...Redis 做关注时间线的要点: 使用 SortedSet 结构存储,Member 为 FeedID,Score 为时间戳 给缓存设置自动过期时间,不活跃用户的缓存会自动被清除。...笔者更倾向于使用时间戳来作为游标: 使用时间戳不可避免的会出现两条 Feed 时间戳相同的问题, 这会让我们的分页器不知所措。...Timeline 推荐使用 Redis 的 SortedSet 结构存储,Member 为 FeedID,Score 为时间戳。给缓存设置自动过期时间,不活跃用户的缓存会自动被清除。

    15510

    Redis SortedSet结构score字段丢失精度问题解决办法

    一、问题现象 项目中采用Redis SortedSet存储用户的离线消息,score值存储的msgid(消息ID)。msgid采用snowflake算法生成,按照时间有序。...二进制中最高位为1的都是负数,但是我们生成的id都使用正数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。...有以下几种想法 1、因为Redis缓存的消息最多保存15天(假设)或者最多保存多少条。能不能截去41位时间戳的部分高位,确保Redis缓存时间周期内时间戳长度够用就行呢?...计算了一下长度 log(15*24*60*60*1000)=30.2,大约30位二进制数即可在现有规则下表示15天时间。所以将41位时间戳的前11位屏蔽掉,可以节约11位二进制信息。...然而这个方式有个致命问题,当15天时间周期到了后,时间戳会变得特别小(新的周期),这导致上一个周期后边的数据Score值大于新周期。消息顺序混乱了,会导致拉离线丢消息,这不能接受!

    3.3K20

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

    推与拉之争 拉模型 一部分工程师认为应该在查询时首先查询用户关注的所有创作者 uid,然后查询他们发布的所有文章,最后按照发布时间降序排列。...而粉丝数有几十万甚至上百万的头部创作者每次发布文章时巨大的写入量都会导致服务器地震。...在使用「在线推,离线拉」策略时我们需要判断用户是否在线,在为 Timeline 设置了过期时间后,Timeline 缓存是否存在本身即可以作为用户是否在线的标志。...Redis 做关注时间线的要点: 使用 SortedSet 结构存储,Member 为 FeedID,Score 为时间戳 给缓存设置自动过期时间,不活跃用户的缓存会自动被清除。...笔者更倾向于使用时间戳来作为游标: img 使用时间戳不可避免的会出现两条 Feed 时间戳相同的问题, 这会让我们的分页器不知所措。

    29610

    教你如何把openfire的muc聊天室改造为群

    而且考虑到消息量是群发的原因,所以服务器对于加入聊天室的成员只会推送一定量的消息,当然这个可以通过策略来配置为全部推送。事实上考虑到群聊天的特性,推送指定条数可能是更靠谱的。...也就是根据历史管理属性里设定的几个参数进行针对性的发送。 但是这里有个关键点就是since属性,它表示客户端可以设定一个时间戳,服务端根据发送这个时间戳之后的增量数据给客户端。...如果群用户需要查询历史上的数据,应该是另开一个服务接口专门用于查询历史数据,这样就不用在刚上线进入群时接收一堆的离线消息。...利用HistoryRequest来获取增量数据 前面分析HistoryRequest时提到了它可以设置一个时间戳参数,这个是告诉服务端从这个参数之后的历史消息推送过来。...比如,用户A昨天晚20:00下的线(最后消息时间戳是2017-06-07 20:00:00),今天早上8:00上线。在用户A离线的时间里有100条离心线消息记录。

    1.6K10

    基于Redis实现排行榜周期榜与最近N期榜

    以日榜为例,根据时间戳ts计算每日序号s=ts/86400,以日序号s作为后缀即可实现零点后自动读写新日榜。小时榜与此雷同,不再赘述。...对于周榜,可以选定某一个周一(或周日,看需求)的时间戳为基准,计算基准到当前经过的周数为周序号,以此作为榜单后缀。 对于月榜,稍有不同,因为月份天数不固定,所以不能按照上述方法计算。...但我们可以根据时间戳取得年、月信息,以年月做标志(如201810)后缀,即可实现月榜。 滚动榜 方案探讨 滚动榜需要考虑多个周期榜数据的聚合与自动迭代更新,实现起来就没那么容易了。下面分析几个方案。...方案2:全局一个滚动榜,当日离线补齐数据 基于方案1,如果业务无需查询历史的S,可以只使用全局一个S,无需每日创建一个S_i。...我们的业务是在排行榜接入层逻辑中计算榜单后缀的,这种方案对逻辑层多台机器的时间一致性要求较高,如果逻辑层服务器时钟不一致,可能在时间切换点上出现不同机器读写不同榜单的问题。

    9.3K82

    流处理与消息队列------《Designing Data-Intensive Applications》读书笔记16

    在流处理之中,记录通常被称为事件,每个事件都是一个小的、独立的、不可变的对象,通常每个事件包含一个时间戳,表明事件产生的时间。...3.流处理的时间依赖 流处理与数据库相比最核心的差别是:查询和数据之间的关系是相反的。通常,数据库会持久地存储数据,而查询是一个临时的操作。...错误的选择时间导致了结果的异常波动 如何确定时间戳 确定事件的时间戳是一件很困难的事,按理来说,事件上的时间戳应该是与用户交互发生的时间,但是,用户控制的设备上的时钟通常不能被信任,因为它可能是偶然或故意设置到错误的时间...服务器接收到事件的时间(根据服务器的时钟)更可能是准确的,但在描述用户交互方面没有什么意义。...所以这里有三个时间戳的法则: 1 .事件发生的时间 (设备时钟) 2 设备将事件发送到服务器的时间 (传输计时) 3 服务器接收事件的时间 (服务器时钟) 由第三个时间戳减去第二个时间戳,可以估计设备时钟和服务器时钟之间的偏移量

    1.1K30

    一文吃透 WebSocket 原理

    因为 HTTP 协议有一个缺陷:通信只能由客户端发起,不具备服务器推送能力。 举例来说,我们想了解查询今天的实时数据,只能是客户端向服务器发出请求,服务器返回查询结果。...六、websocket 断线重连 心跳就是客户端定时的给服务端发送消息,证明客户端是在线的, 如果超过一定的时间没有发送则就是离线了。 如何判断在线离线?...当客户端第一次发送请求至服务端时会携带唯一标识、以及时间戳,服务端到db或者缓存去查询改请求的唯一标识,如果不存在就存入db或者缓存中, 第二次客户端定时再次发送请求依旧携带唯一标识、以及时间戳,服务端到...db或者缓存去查询改请求的唯一标识,如果存在就把上次的时间戳拿取出来,使用当前时间戳减去上次的时间, 得出的毫秒秒数判断是否大于指定的时间,若小于的话就是在线,否则就是离线; 如何解决断线问题 通过查阅资料了解到...下一个定时器,在一定时间间隔下发送一个空包给客户端,然后客户端反馈一个同样的空包回来,服务器如果在一定时间内收不到客户端发送过来的反馈包,那就只有认定说掉线了。

    3.9K10
    领券