Posts

Showing posts from May, 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

使用SFTP文件共享工具RaiDrive + SourceInsight 阅读开源代码!

Image
     在虚拟机环境下使用 Linux 编写和阅读代码,之前一直是通过 SecureCRT 利用 ssh 登录至虚拟机从而在命令行下使用 vim 来进行的。      目前有阅读开源代码的需要,虽然 vim+ctags+cscope 可以完成这项工作,不过对我来说毕竟还是用鼠标操作窗口更容易入门,因此希望能在 Windows 环境下阅读和修改 Linux 虚拟机的开源代码。      能完成这个要求的途经不少,常见的方法有代码下载到Windows上、虚拟机配置文件共享文件目录、搭建samba服务器等,但是都感觉效果不太好。     今天 这里介绍一个比较简单的方式:RaiDrive+SourceInsight。      其中 RaiDrive 用于将 SSH 服务器映射为 Windows 网络驱动器,而 SourceInsight 用于代码阅读和编写,这里的代码以 Nginx 源码为例(实际设置时并无区别)。   由于 RaiDrive 使用的是 SSH,因此映射的对象不仅限于虚拟机。同时在 使用前请确保欲映射的目标的 SSH 服务已开启 ,然后启动 RaiDrive,如下图中进行设置:      为了能获得所有目录的完全修改权限, 建议使用 root 进行登录 ,不过此后进行删除和修改操作时要格外小心。      设置完毕并 Connect,可以看到计算机中多出了一个盘符,这时就可以像操纵本地文件一样读写虚拟机里的文件了。    最后就 可以使用 SourceInsight 对源码进行查看和修改。由于 SourceInsight 的介绍文章很多,本文就不进行说明 了! RaiDrive备 下载链接: 点击下载