关于流量控制的学习(其一)
前言要做一个限流实现,对新建,并发,吞吐等流量数据进行限制。在此之前,知道Spring是有些中间件能够实现限流的,比如Hystrix ,Sentinel,RateLimiter这些的。但是这些是已经实现的SDK了,只管使用倒是简单,对于里面具体的实现原理就是不清楚了。正好看看有些常用的限流算法...
浅谈NPTv6的实现
引入最近有个需求,在之前的NAT实现上,实现NPTv6。这需求我连名字都没有听过啊,直接两眼一黑。但是后面查阅相关资料之后,发现其实也就是ipv6的一个前缀转换,类似nat66了吧。实现起来也相对简单了。 RFC了解NPTv6,直接看RFC文档就知道了,RFC6296 根据文档,大概可以知道:...
ARP代理的业务实现
背景定制需求需要实现NAT规则上,SNAT的转换源IP地址,DNAT的目的IP地址,能够实现自动响应ARP请求。 ARPARP代理ARP代理(ARP Proxy)是一种网络技术,用于在两个物理上分离的网络之间转发ARP请求,从而实现跨网段通信。它的核心作用是代替某个IP地址回应ARP请求,使得...
关于Netfilter的五个钩子的思考
前言 我是卖钩子起家的。 —朱八八 近期项目有个需求,要修改之前的NAT规则,实现新的NPTv6转换协议(有空再写篇NPTv6转换器的博文吧),于是就是看之前的实现原理,过了一遍整个框架的大致处理逻辑,发现之前的实现上和Linux内核那套实际也差不多,也是在项目自己实现的netfilter上...
WSL中安装ArchLinux与Minikube
前言月底了还没更新,先占个坑吧。之前在WSL中重新装了一下ArchLinux,有想学K8S搞了一下集群,有些踩坑点,但是又没有记录,之后有空再更一下吧,顺便更新点K8S和istio的东西吧,估计要月底了。
浅谈NAT与代理
NAT原理最近在做一个关于NAT的需求,之前对于NAT只是有个大概的了解,对于一些细节还不够清楚,正好学习一下。 NAT简介静态 NAT(Static NAT) 一对一映射:一个私有 IP 地址固定映射到一个公网 IP 地址。 适用于需要从外部访问内部服务器的情况,例如 Web 服务器或邮件...
关于DNS的学习记录 其二
问题引入很常见的一个面试问题:往浏览器中输入www.baidu.com,到返回界面,整个流程是如何进行的? 除去http请求的过程,单纯来讲域名解析的部分: 浏览器缓存检查: 浏览器会先检查自身的DNS缓存,看是否已经存储了www.baidu.com的IP地址。如果有缓存,就直接使用该IP地...
虚拟线程尝鲜
前言Java21去年发布后虚拟线程终于作为了release特性,本来一直想看看的,结果一年都要过去了还没有取好好看过,说是尝鲜,现在Java24都要发了,黄花菜都凉了。正好没事大概看看咋用吧。 虚拟线程虚拟线程和传统线程有一些关键的区别,各自都有其优势,适用于不同的应用场景。以下是详细的对比和...
记自旋触发内核看门狗导致系统重启的思考
问题描述业务中有用到一个驱动,但是加载这个驱动并使用他的一些功能时,会导致设备宕机重启。查看内核日志和转储宕机日志,发现时触发了内核软狗。 12cat /var/log/messagescat /var/crash/crash.txt 查看当前系统的看门狗超时时间,发现是5S,这个值一般默认...
浅谈Redis的HyperLogLog
前言很久之前面团子的时候没问到如何进行UV,PV统计,当时回答得不是很好,只是提到到可以用Redis的hyperloglog进行UV统计,但是如何进行统计,用了有什么好处,却不能回答上来。过去了这么久,最近忽然项目上某个点又让我想起这回事,于是回过来学习一遍。 UV统计比如我现在的博客,对于上...