Posts

Showing posts from December, 2023

干翻 nio ,王炸 io_uring 来了 ,史上最详细说明及最全图解!!

Image
大趋势:全链路异步化,性能提升10倍+ 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多。 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构总体上是 全链路同步模式 。 全链路同步模式 不仅造成了资源的极大浪费,并且在流量发生激增波动的时候,受制于系统资源而无法快速的扩容。 全球后疫情时代,降本增效是大背景。如何降本增效?一条好的路径: 全链路同步模式  ,升级为  全链路异步模式 。 全链路异步模式 改造 具体的内容,请参考尼恩的深度文章: 全链路异步,让你的 SpringCloud 性能优化10倍+ 先回顾一下全链路同步模式架构图 全链路同步模式  ,如何升级为  全链路异步模式 , 就是一个一个 环节的异步化。 40岁老架构师尼恩,持续深化自己的3高架构知识宇宙,当然首先要去完成一次牛逼的 全链路异步模式 微服务实操,下面是尼恩的实操过程、效果、压测数据(性能足足提升10倍多)。 全链路异步模式 改造 具体的内容,请参考尼恩的深度文章: 全链路异步,让你的 SpringCloud 性能优化10倍+ 并且,上面的文章,作为尼恩 全链路异步的架构知识,收录在《 尼恩Java面试宝典 》V52版的架构专题中 注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取: 语雀 或者 码云 全链路异步化的最终目标 全链路异步化的最终目标,如下图所示: 应用层:编程模型的异步化 框架层:IO线程的异步化 OS层:IO模型的异步化 一:应用层:编程模型的异步化 这个请大家去看 尼恩的 《 响应式 圣经 PDF 》电子书 随着 云原生时代的到来, 底层的 组件编程 越来越 响应式、流化, 从命令式 编程转换到 响应式 编程,在非常多的场景 ,是大势所趋。 而响应式编程, 学习曲线很大, 大家需要多看,多实操。 二:框架层:IO线程的异步化 这个大家 都选择 具有异步 回调功能的 异步线程模型,如 Reactor 线程模型 这个是面试的绝对重点 IO的王者组件,Netty框架,整体就是一个 Reactor 线程模型 实现 也是非常核心的知识,这里不做展开,请大家去看尼恩的畅销书《Java 高并发核心编程卷 1 加强版》。 三:OS层:IO模型的异步化 目前的一个最大难题,是IO模型的异步化。 注意,Netty

美国 公共 共享 apple id 苹果ID 分享,记住只能下载哦!

因政策或其它原因,有些app在本地的苹果app store搜索不到。如果有其它国家或地区的apple id,那么可以切换app store的登录账号下载或者购买所需要的软件。 本页面提供的境外apple id搜集自互联网且注明来源,其中部分账号已购买Shadowrocket(小火箭)等付费软件,登录后可直接下载。请注意 使用时不要登录icloud,使用完后请自觉退出 。 如果apple id密码错误或账号被锁,请尝试其它账号或者访问原网页信息获取最新的账号密码。如果你想自己申请境外账号,请参考: 超简单的,美区苹果ID(APPLE ID)注册方法! 美区id: appidstorecom@outlook.com ,密码: App86686 来源网页: https://mac.ms/1108.html 美区账号: ff4304f9@icloud.com ,密码: Share1100 美区账号: kobelbj1412@gmail.com ,密码: IOSfuli99 账号: stonerock8866@gmail.com ,密码: Yk520520 账号: zhiwu1966@163.com ,密码: Thessr.cn1 备注:信息来源网页: https://t.me/s/shadowrocketid id: ye92581814@163.com ,密码: Aa110011 备注:来源网页: http://dnmr.net/ssios/ 美国 apple id: i7ehkk@163.com , 密码: Ax112211(用完麻烦退出) 美国 apple id: kv8ovy@163.com (必须在蓝色 AppStore软件里面登录使用,已购小火箭) ,密码: Ax112211(如果去设置里面登录使用,你的手机会变砖!) 备注:以上信息来源网页: https://github.com/shadowrocketHelp/help/wiki/%E5%9B%BD%E5%A4%96-appstore-id-%E8%B4%A6%E5%8F%B7%E5%88%86%E4%BA%AB | 账号1: |  4ssgit@Gmail.com  | 密码: | 4ssGit1234 | 已下载Shadowrocket小火箭 | 账号2: |  1714477@Gmail.com  |

Linux 服务器 存在多网卡多IP UDP 监听 INADDR ANY(0.0.0.0)出现收包源IP不一致问题解决方案!

Image
在多IP服务器上,通过策略路由如何保证 回复给客户端的数据不从 从原来的网卡出去导致访问不通的问题? 比如在一台双线上,电信 IP 是182.x.x.119 ,网通 IP 是 119.x.x.107  可以通过以下策略路由保证: ip route flush table ct ip route add default via 182.x.x.97 dev eth0 src 182.x.x.119 table ct ip rule add from 182.x.x.119 table ct ip route flush table cu ip route add default via 119.x.x.97 dev eth1 src 119.x.x.107 table cu ip rule add from 119.x.x.107 table cu 对这段策略路由简单解释下。 ip rule add from 182.x.x.119 table ct  表示源地址是 182.x.x.119 的包,通过ct路由表选路, ip route add default via 182.x.x.97 dev eth0 src 182.x.x.119 table ct  表示ct路由表的默认路由是从 eth0 的 182.x.x.97 这个网关路由,源地址设置为 182.x.x.119 。 有了这层保证后,我们在实现Server 的时候,监听 socket 依然 bind 到 0.0.0.0 ,在回 数据 包的时候,只要设置该数据包从本机发出去的 源地址 配合策略路由,就可以保证 数据包 正确返回。 现在的关键问题是:  如何获取 数据 包的目的地址?   对于无连接状态的 UDP socket 获取目的地址就很难了,木有现成的系统调用,获取方法还是有点点麻烦的。通过  man ip  可以获取详细的步骤和原理: IP_PKTINFO (since Linux 2.2) Pass an IP_PKTINFO ancillary message that contains a pktinfo structure that supplies some information about the incoming packet. This only works

Kcptun 基于 KCP 协议的 UDP 隧道,是一个非常简单和快速的隧道,它可以将 TCP 流转换为 KCP+UDP 流,降低延时,增加吞吐量

Image
本博客曾经发布了通过 Finalspeed 加速 Shadowsocks 的教程,大家普遍反映能达到一个非常不错的速度。Finalspeed 虽好,就是内存占用稍高,不适合服务器内存本来就小的用户;而且现在 Finalspeed 停止维护,就需要寻找一个能替代 Finalspeed 的工具。 今天我就给大家介绍这么一个能替代 Finalspeed 的项目 — Kcptun。 Kcptun 介绍 Kcptun 是一个非常简单和快速的,基于 KCP 协议的 UDP 隧道,它可以将 TCP 流转换为 KCP+UDP 流。而 KCP 是一个快速可靠协议,能以比 TCP 浪费 10%-20% 的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。 Kcptun 是 KCP 协议的一个简单应用,可以用于任意 TCP 网络程序的传输承载,以提高网络流畅度,降低掉线情况。由于 Kcptun 使用 Go 语言编写,内存占用低(经测试,在 64M 内存服务器上稳定运行),而且适用于所有平台,甚至 Arm 平台。 Kcptun 工作示意图: KCP 协议: https://github.com/skywind3000/kcp Kcptun 项目地址: https://github.com/xtaci/kcptun 相关项目 以下为 Kcptun 的相关项目,如果有兴趣,可以了解一下。 1.Kcp-server: https://github.com/clangcn/kcp-server Kcp-server 是在 Kcptun 的基础上,添加了配置文件的支持,并简化了安装过程,一条命令即可配置完毕。 如果你是小白,而且看了后面的教程也看不懂的话,推荐直接使用 Kcp-server 吧,就是更新较原版略慢。 2.Shadowsocks-Plus: https://github.com/shadowsocks-plus/shadowsocks-plus 基于 Shadowsocks Go 版本,加入了以下特性: 启动后降低权限至 nobody , 增强安全性; 与 kcptun 集成,配合相应客户端可加速传输; 网页控制面板。 部署 Kcptun 2016.08.19 添加客户端可视化配置工具 Kcptun-GUI 2016.08.13 发布一键安装脚本  https