Cal Huang

  • 首页
  • About Me
Cal Huang
杂记

两个区间存在交集的判断方法

判断两个日期区间、时间区间、IP 地址段是否存在交集是很常见的需求。 具体来说: 1.1.1.0/24 和 1.1.1.0/31 这两个 IP 段中是否有重叠的地址? 一个故障事件发生在 11:20 - 13:10 ,客户使用服务的时间是 12:10 - 16:00 这个客户是否受到这个故障的影响? 可以把 IP 转换为 int 形式,同样把时间转换为 Unix 时间戳形式。那么这类问题就变成了为判断 [ A, B ],[ x, y ] 两个闭区间是否存在交集。 提出一种判断方法供大家一起讨论。 考虑到必然存在 A…

2023年2月3日 0条评论 101点热度 0人点赞 Cal Huang 阅读全文
InfluxDB Internal

InfluxDB 是如何工作的(1)用户故事及思路

前言:在云厂的工作中,总是会面对大量的时序数据。InfluxDB 是工作中最常用的时序数据库。时序数据与更为常用的关系数据的区别是什么,为什么 InfluxDB 可以高性能低存储空间消耗的存储海量时序数据。 ​ 一、用户故事 时序数据有什么特点?分析一个具体的需求:如何存储一个数据中心内所有服务器 CPU 分核心使用率? 就是需要表达:设备在某个时间的状态。 打开任务管理器,切换到性能 Tab,就可以看见自己设备的 CPU 使用率图。 只看其中 CPU 占用率的图,如果把它还原成表的形式: IP地址 CPU核 时间…

2022年5月8日 0条评论 888点热度 0人点赞 Cal Huang 阅读全文
网络

弄个网络质量监测系统(二)—— 高效 traceroute 实现

前言 懒癌患者来更新第二篇。在 上一篇 的 Agent 基本功能实现了以后,就要开始考虑实现 MTR 功能,要做 MTR 就不得不先实现 traceroute 功能。虽然 traceroute 原理很简单,但是如果要考虑 高效实现 会有不小的挑战。   细节 关于 traceroute 和 MTR 的原理细节,相信读者都已经了解,本文将直接从实现上遇到的具体问题开始聊。 具体来讲,我们会遇到几个问题,发什么包?怎么读到回包?回包读得效率太低怎么办?   发什么包做为探针? 在 Windows 上…

2021年10月27日 0条评论 1529点热度 1人点赞 Cal Huang 阅读全文
杂记

弄个网络质量监测系统

背景 有段时间某台服务器的网络质量总是不太好,由于缺少持续的监测,报障的时候也没办法给出具体影响时间。虽然已经有类似 zabbix 等等的现成监测工具,但是生命在于折腾。   结构设计 总体结构的设计与微软的 Pingmesh 很类似。基本分为三个部分: 控制 负责给探测部分下达控制命令,诸如被探测的地址,Ping 超时时间,Ping间隔等参数。 探测 根据控制器给出的参数进行探测。由于网络质量受到各种各样的因素影响,探测器应该布置在尽可能多的地方,尽可能的去收集信息 分析 对数据进行聚合分析,诸如计算平…

2020年10月18日 0条评论 3297点热度 10人点赞 Cal Huang 阅读全文
网络

一次BGP邻居关系建立慢的排查

现象 交换机与服务器直连建立 eBGP 邻居。 服务器重启 BGP 程序,要花 30s-120s 的时间才能重新到Established 状态。 抓包所见: 服务器程序发出 BGP notification 报文到交换机,随后双方四次挥手。 7s后服务端发起 TCP 连接,双方三次握手完成。 随后服务器发出 open 报文,交换机随即发出 TCP RST 将连接重置。 2s后交换机发起 TCP 连接,双方三次握手完成。 随后交换机发出 open 报文,服务器随即发出 TCP RST 将连接重置。 11s后,服务器发…

2020年7月13日 0条评论 2591点热度 2人点赞 Cal Huang 阅读全文
Laravel

翻译:在 Laravel 5 中使用 Repository 模式 (2)关联关系和渴求式加载

和上一篇一样 也是一篇翻译的文章,原文在这里 ,原作者:Mirza Pasic。 前言 开始这篇文章之前,我们先聊聊我们可能需要面对的问题。最近,有个客户抱怨页面打开非常慢。我决定打开 debug 信息来看看。其中 Query 部分令我非常吃惊,显示页面竟然用了 16500+ 个查询。 检查了一下。我找到了问题的源头—— 3 个  foreach  循环。它们通过 Model 里定义的关联关系来获取一些属性。它本来工作得非常正常,直到数据库里有 大约 5500 条数据。代码如下: $main_object = Ma…

2016年11月10日 0条评论 6429点热度 1人点赞 Cal Huang 阅读全文
Laravel

翻译:在 Laravel5 中使用 Repository 模式

翻译自这篇博文,原作者Mirza Pasic。 (前言:懵懵懂懂的用了一段时间的 Repository 模式,想更深入学习一下的时候,看了一些资料,感觉这篇不错,翻译一下作为自己的笔记) 简介 如果你真的理解了  Repository 模式,你会发现不管你用什么框架或者语言 Repository 模式都是很有用的。重要的是理解 Repository 模式背后的原理。然后你就可以用各种各样的技术实现它。所以,让我们从 Repository 模式的定义开始: A Repository mediates between …

2016年10月29日 0条评论 6068点热度 1人点赞 Cal Huang 阅读全文
杂记

七牛云直播空间PC网页简单Demo

看七牛云在知乎上写了「视频直播技术详解」系列文。决定试一试。看了一下,官网的直播SDK只有Android 和 iOS的。试了试PC网页非常快速便捷就构建出了一个简单的直播 demo,现在把过程写一下。作为笔记。严格意义上可能不能算「直播」因为图像和声音来自一个视频文件而不是摄像机等采集设备,不过这并不妨碍我们动手操作一下了解直播到底是一个怎么样的过程。 准备 首先需要准备以下几项: 已备案的域名 七牛云账户 FFmpeg 一个视频文件(请注意版权问题) 一台或两台能上网的电脑   其中 FFmpeg 是「…

2016年10月19日 0条评论 6684点热度 3人点赞 Cal Huang 阅读全文
Laravel

翻译:Laravel 5.3 新 $loop 变量

(注:本文翻译自这篇博文) $loop 变量简介 在 laravel 5.3 中 blade 模板引擎里 @foreach 将会变得更为强大。一个新的变量 $loop 将会在每个 @foreach 循环方法中可用。 $loop 变量是 stdClass 的一个实例。它提供了一些关于包裹它的 @foreach 循环的信息。下面一起来看一下 $loop 变量的属性。 index : 从 0 开始的循环索引。 iteration : 从 1  开始的循环索引。 remaining : 循环剩余次数,如果这个循环里共 3 …

2016年10月13日 0条评论 4863点热度 0人点赞 Cal Huang 阅读全文
杂记

搬迁记

第三次搬迁。 从SAE搬到搬瓦工再到阿里云,这次应该不会再搬了,因为都备案了搬起来就不是纯技术问题了,比较麻烦2333。

2016年10月13日 2条评论 6547点热度 0人点赞 Cal Huang 阅读全文
归档
  • 2023年2月
  • 2022年5月
  • 2021年10月
  • 2020年10月
  • 2020年7月
  • 2016年11月
  • 2016年10月

COPYRIGHT © 2021 hhyhhy.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang