
运维
文章平均质量分 85
程序员Rocky
这个作者很懒,什么都没留下…
展开
-
全网最清晰讲解MySQL的MVCC机制
本章分享主要是从MVCC的来龙去脉,搞清楚Why 引入MVCC?MVCC解决了什么问题,没有MVCC之前又怎么解决的,MVVC解决方案好在哪些地方,由此才引出了ReadView、快照读、当前读、ReadView规则等等概念和底层原理分析。如果你搞不清楚Why, 光看MVCC知识点你也是云里雾里的感觉。如果你明确了解了为什么引入MVCC以及底层原理,才能完全吃透这个技术点,本身逻辑不复杂,被网上的一些晦涩难懂的讲解,只讲结果不讲来龙去脉的方式搞得懵了。MVCC 主要是解决 "读" -"写" 时候的并发问题原创 2025-04-22 23:20:55 · 1068 阅读 · 0 评论 -
iptables的“4表5链”-NAT功能
iptables 是 Linux 系统中用于配置防火墙规则的工具,它借助内核中的 netfilter 框架来实现对网络数据包的过滤、网络地址转换(NAT)以及数据包处理等功能。iptables掌握基本的filter表、nat表即可,如果实在遇到复杂的需求,再查找相关资料进行满足即可。一般情况下的需求也用不到那么多表的操作。原创 2025-04-14 16:05:30 · 742 阅读 · 0 评论 -
Docker容器网络与NAT
docker的容器之间相互访问,可以通过veth和docker0网桥实现,源地址、目的地址都不需要做变化,就是在二层网络进行传输,不需要网关的参与。但是如果涉及到数据出宿主机则使用SNAT做源地址转换,源数据包转换为宿主机IP地址才能通过宿主机的网卡路由出去,反之,如果想访问我容器的服务,则经过宿主机的时候要做DNAT,将数据包的目的IP和端口,改为容器的内网IP和端口,容器才能正常响应。原创 2025-04-14 11:41:07 · 869 阅读 · 0 评论 -
NAT网络地址转换与内网穿透
P2P需要解决的前提就是内网穿透问题, 也是难点问题, 因为大家上网都在局域网,正常情况下你是无法直接穿透内网与其它节点进行数据交互和通信的, 那必须要穿透内网才是发挥P2P的优势。 因为现在运营商对P2P, PCDN管控很严格,很多地方都直接把上网的NAT改为NAT4级别,基本上你都无法来穿透内网或者说你要花费的成本变高了很多...原创 2025-03-25 18:06:23 · 1219 阅读 · 0 评论 -
开源CDN产品-GoEdge
这里借鉴官网文档信息,让大家对CDN的原理再次进行一次记忆加强。不同区域或者不同网络的用户,可以通过DNS服务被分配到不同的边缘节点上;边缘节点如果已经缓存内容,可以就近直接向用户发送内容;如果还没有缓存内容,则一级一级网上找,直至去源站(即内容提供原始的站点)去获取内容,然后再一级一级返回,直至发送给用户;由于边缘节点可以缓存内容,所以可以有以下几个优点:降低了网络延时,加速了内容的分发,因为用户可以就近获取内容,就无需跨多个网络千里迢迢访问最原始的服务器;原创 2025-03-25 13:27:13 · 1170 阅读 · 0 评论 -
CDN基本原理剖析与代码实现测试
CDN技术其实还是蛮具有挑战性的,因为需要的技术比较杂、也比较多。涉及数据分发、缓存、HTTP反向代理、DNS解析、高可用、高强度的数据一致性完整性保证、网络安全等等。CDN一般做静态资源加速是常见的长场景,随着CDN技术的发展,还可以做动态加速(边缘节点,接收客户端的请求后,通过线路优化、避免网络拥堵等等,再反向代理到源站,拿到动态执行结果), 也还可以做安全加速,通过边缘节点消化DDOS流量,保护源站。还有边缘节点还可以反向拨测源站点,查看各个地域到源站点网络波动情况来验证源站的网络情况等等...原创 2025-03-24 21:05:35 · 1139 阅读 · 0 评论 -
Docker数据卷volume与bind挂载区别
本质上type=volume和type=bind都是将宿主机的某个目录挂载到容器的某个路径。type=volume是docker自己管理了volume名字和实际宿主机路径的关系,我们只需要黑盒使用volume即可,至于它创建在哪里,我们无须关心,并且针对权限方面docker做了有效管理,是官方推荐使用的方式。type=bind直接绑定呢,是我们知道了实际的宿主机路径,就直接做了挂载。两者最关键区别只是,在卷/本地目录为空的情况下, 默认是否拷贝对应容器路径内容到本地,再进行挂载而已...原创 2025-03-22 19:06:29 · 830 阅读 · 0 评论 -
vLLM 推理框架与Ollama对比、使用
如果生产环境,高并发、高流量,推荐使用vLLM并且搭配GPU使用。如果流量较低,并且资源有限,只能使用CPU进行推理,使用门槛低,可以推荐使用Ollama. Ollama可以快速进行搭建一个样例出来,提供给非技术人员,例如公司领导、运营或者产品人员进行演示,降低搭建成本...原创 2025-03-10 17:57:50 · 1270 阅读 · 0 评论 -
Ollama的底层实现原理分析
知其然也要知其所以然, Ollama第一次使用我就很疑惑是不是底层套了一层docker容器化技术,然后再结合大模型做的包装。后来经过分析,确实和容器没太大关系,就是思想做了一些借鉴。并且从分析过程中知道了,GGUF大模型文件的运行依靠的是llama.cpp底层进行支撑运行,那就意味着性能其实不差,毕竟是c++底层来支撑的,之前以为是使用python sdk之类的来运行的...原创 2025-03-01 18:16:05 · 1565 阅读 · 7 评论 -
DeepSeek之高并发架构设计
市面上看到的这些大模型,无外乎就是使用了Python的很多机器学习框架做出来的东西。所以结合到我们的Web开发,只要理解怎么部署模型、调用模型、提高模型并发、高流量就行,本质上也那么复杂。重点的复杂和有核心技术难度的是模型怎么训练的、复杂的算法、算法优化等等才是大模型的核心,Web只是大模型向外暴露的intput、output方式罢了,本质和console控制台没多大区别。并且大模型最大的一个特点就是,整个问答其实是无状态的,这一点很重要。原创 2025-02-17 13:24:46 · 2025 阅读 · 10 评论 -
Linux的SSH无法连接(shell request failed on channel 0)
查阅多方资料和排查,锁定在了用户能创建的(进程数+线程数 nproc)的数量已经到达了最大值,无法创建出新SSH的线程/进程,导致报错。查看用户的nproc限制数量发现如图: 最大值65536异常时,通过root能上ssh,查看这个用户所占的进程、线程数量总和如下: 65537 > 63336...原创 2025-02-17 11:18:08 · 746 阅读 · 0 评论 -
Python使用Flask结合DeepSeek开发
ollama还提供了可以调用对应部署模型的API接口。我们可以基于这些接口,做自己的二次开发。使用python+flask+ollama就可以进行模型对话调用。并且前端采用SSE的技术,后端向前端推送推理结果进行展示...原创 2025-02-12 14:16:47 · 1846 阅读 · 2 评论 -
DeepSeek之前端利用SSE技术逐步显示推理结果
DeepSeek、文心一言、豆包、通义千问, 大家用这些大模型的时候,都会有一个对话框。你输入问题,然后大模型回答你的答案,都会有一个逐步显示的过程效果, 而不是一次性返回整个答案。开始我以为是使用到了Websocket技术,后端拿到问题以后,逐步往前端推送内容,前端再累加显示整个内容。 但是F12开启以后,没有抓到WS的相关连接信息。 我这就很好奇了,怎么实现这个过程的呢?...原创 2025-02-12 11:43:25 · 1786 阅读 · 0 评论 -
Nvidia GPU驱动安装踩坑
通过yum/dnf方式安装驱动倒是简单,但是不是有时候运气差,下载的驱动和当前硬件版本不兼容,也用不起来。最好还是查看对应GPU硬件版本,从官网拿到合适的版本驱动再进行安装,才能更好进行适配工作。毕竟官网才是最权威的存在,其它封装的一些rpm包只是稍微省略了一下这个过程,但是本质也还是官网提供的驱动包安装的一种形式而已...原创 2025-02-09 11:15:52 · 515 阅读 · 0 评论 -
DeepSeek部署之GPU监控指标接入Prometheus
我们必须要关注主机GPU的监控指标情况,例如总的显卡显存大小、占用的显存大小、显卡的版本信息、驱动信息等等,才能对CPU运行情况、利用率等做到心中有数,便于后期的运维、高可用性等...原创 2025-02-07 20:01:56 · 1338 阅读 · 0 评论 -
Linux环境部署DeepSeek大模型
官网地址:OllamaOllama 是一个基于 Go 语言的本地大语言模型运行框架,类 docker 产品(支持 list,pull,push,run 等命令),事实上它保留了 Docker 的操作习惯,支持上传大语言模型仓库 (有 deepseek、llama 2,mistral,qwen 等模型,你也可以自定义模型上传)。通俗理解就是,Ollama这个类似Docker的平台工具,方便我们去直接运行各种LLM大模型。不需要我们去了解模型启动、模型参数配置、以及各种依赖以及准备工作...原创 2025-02-05 23:07:01 · 3193 阅读 · 0 评论 -
Nginx配置VTS模块-对接Promethues监控
Nginx VTS模块能够获取比stub_status更详细、更丰富的指标,可以有助于我们对nginx有更全面的监控和配置更加合理的告警信息,便于问题的及时发现以及相关优化!..原创 2025-01-13 20:56:28 · 1323 阅读 · 0 评论 -
2FA双因子验证技术实现原理
随着关注数据安全的意识逐步提升,很多站点都开始强制用户不止使用用户名+密码的形式进行登录,还会逐步引导用户开启2FA多因子验证。 Github就已经强制用户使用2FA多因子验证进行账号的登录,现在阿里云、腾讯云等也逐步往这个方向发展。具体原理你知道吗? ...原创 2024-12-19 21:23:17 · 1063 阅读 · 0 评论 -
Python3离线安装第三方包
某些企业,特别是国企、或者涉密单位或者对安全要求比较高的环境下,服务器无法连接互联网。 那么我们的pip install就无法正常工作了。 那怎么办呢? 我就需要安装第三方包啊。别急,我们可以使用离线安装的方式来实现这个需求......原创 2024-12-11 16:21:25 · 1048 阅读 · 0 评论 -
Python+Selenium无头浏览器实现网页截图
Selenium就是个自动化测试框架,底层还可以切换控制Chrome、火狐等等相关浏览器驱动。。可以使用Python+Selenium的方式进行网页截图等等相关工作原创 2024-11-25 21:56:42 · 571 阅读 · 0 评论 -
Chaosblade混沌工程工具
Chaosblade?阿里巴巴开源的一款简单易用、功能强大的混沌实验注入工具。ChaosBlade是一个云原生混沌工程平台,支持多种环境、集群和语言。包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。github地址:官网地址:混沌工程的Chaosblade开源工具,可以帮助我们模拟一些预设的故障, 之后针对这些故障我们如何应对?如何优化程序, 或者如何避免因为这些故障而导致系统产生不可用的情况。原创 2024-11-21 14:05:45 · 893 阅读 · 1 评论 -
Dockerhub镜像加速
dockerhub由于被封锁和站点处于国外的原因,docker pull拉取镜像非常慢,有时候直接都无法拉取。严重妨碍了我们的学习进度以及日常使用。修改/etc/docker/daemon.json文件, 重启docker服务: systemctl restart docker。总结了一些proxy代理的镜像站点,配置之后速度会有明显提升,大家可以参考使用。原创 2024-11-21 13:30:29 · 1518 阅读 · 0 评论 -
Nginx流量同时转发多后端(流量镜像分发)
负载均衡的场景我想就不用赘述了,定义一个upstrem, upstrem定了一组提供相同服务的server地址, 最后通过proxy_pass转发到这个upstrem。 但是,这个是负载均衡的场景,那就意味着,无论你的算法如何,最终只会转发到一个server目标上。那文章标题提到的流量镜像是什么场景呢? 那就是一次HTTP请求,被同时转发到多个后端。 例如一次请求,既代理到A服务、也代理到B服务,发送了2次或者n次的情况。这种需求如何实现呢? ...原创 2024-10-23 13:21:12 · 2418 阅读 · 0 评论 -
RockyLinux-软件实现RAID5
选择硬件RAID还是软件RAID,取决于具体的应用场景和需求。对于需要高性能、高可靠性的关键业务,硬件RAID可能是更好的选择。而对于成本敏感或需要高度定制化的环境,软件RAID则更为合适。在实际部署时,还需要考虑现有的硬件和软件环境,以及维护和管理的成本。从我实际工作来看,几乎没人会用软件实现RAID,影响性能不说,安全性也不得到保证。操作系统崩溃这些原因,也可能导致RAID数据找不回来或者访问不了了。软件实现纯属学习用途...原创 2024-09-15 20:22:06 · 1452 阅读 · 0 评论 -
Linux-Swap分区使用与扩容
swap分区看情况吧,内存很富裕的情况下,并且对性能要求高,那么建议直接关闭算了,减少内存和硬盘IO交换的过程。内存很紧缺的情况下, 并且对性能要求也没那么高,让多一点程序能跑起来,那么可以尝试开启swap分区或者扩容swap分区,勉强撑一下也行。但是对于MySQL、Kafka、K8S节点这些,建议Swap关闭吧,毕竟性能还是要保证的,内存也不贵,这些服务也不至于给8G、16G的内存卡吧,好说歹说基本都是32G起步。原创 2024-09-15 17:42:49 · 3028 阅读 · 0 评论 -
Linux-LVM逻辑卷管理
LVM逻辑卷的机制是其中一种可以满足在线热扩容、对应用程序无关、安全的磁盘管理机制,也许可以满足你的需求。LVM(逻辑卷管理)是一种灵活的存储管理技术,允许用户将一个或多个物理硬盘的分区组合起来,形成一个物理卷集合,从而可以更灵活地管理和分配磁盘空间...原创 2024-09-15 16:13:50 · 1102 阅读 · 0 评论 -
Nginx实现UDP四层转发
Haproxy只支持TCP的4层转发以及7层HTTP的转发,但是不支持UDP流量转发。Nginx支持HTTP、TCP4层、UDP4层。同时Nginx配置我们相对熟悉,如果Haproxy搞不定的事情,我们可以借助Nginx实现也是没问题...原创 2024-09-13 16:34:49 · 908 阅读 · 0 评论 -
Java程序补丁机制探讨
总体,补丁机制就是替换文件或者代码的过程。只是说替换的过程能否让用户更加无感知、出现异常方便回退、补丁版本记录、兼容性强等方便需要做到位。同时例如有些补丁需要进行热加载机制,无须重启,直接生效。针对脚本语言的程序更是如此,就是替换代码文件,如lua、php等,替换立即生效,也没有多么神秘的面纱...原创 2024-09-13 15:51:34 · 1158 阅读 · 0 评论 -
Java JAR命令打包详解与坑点
建议还是按照java规范,使用jar命令进行打包处理,而不是简单的zip命令进行打包。但是也不是一概而论,如果先通过zip没问题就可以,如果存在问题回到原点,使用jar打包即可。特别注意-0参数是否需要,否则会造成上述的问题。原创 2024-08-28 14:36:11 · 1670 阅读 · 0 评论 -
Nacos 202407月RCE漏洞(0day)与复现
202407月, 爆出漏洞作者说由于某些原因,特意爆出了Nacos的一个RCE 0day漏洞。Nacos 是一个用于动态服务发现和配置以及服务管理的平台,Derby 是一个轻量级的嵌入式数据库。接口 /nacos/v1/cs/ops/derby 和 /nacos/v1/cs/ops/data/removal 在使用 Derby 数据库作为内置数据源时。用于运维人员进行数据运维和问题排查,在使用 standalone 模式启动 Nacos 时,为了避免因搭建外置数据库而占用额外的资源...原创 2024-07-31 15:49:32 · 4638 阅读 · 0 评论 -
Golang的TLS版本配置参数-排坑经历
关于tls.Config的MinVersion属性,我的修复建议就是强制写死默认最小版本是TLS1.0,不要依赖Golang给你设置MinVersion的值。要不然就会造成上面我的这种情况,十分坑爹!如果你设置的MinVersion是TLS1.0,MaxVersion怎么设置都不会报错的。因为至少MaxVersion都是TLS1.0了,还是满足条件: MinVersion原创 2024-07-31 15:08:24 · 1685 阅读 · 0 评论 -
https跳过证书校验底层原理
背景 大家可能遇到过爬虫或者curl某个https站点,由于站点TLS证书过期或者使用自签证书,curl或者浏览器校验不通过,导致不能正常访问。 所以类似什么Java中怎么跳过https证书校验,php怎么跳过,python怎么跳过等等问题全网遍地都是。 但是你知道跳过https证书底层到底干了什么事情呢? https不懂的同学可以先简单看我的一篇文章: http...原创 2019-11-26 18:05:17 · 121505 阅读 · 2 评论 -
ssh端口转发(隧道技术)
1.本地端口转发 假设有以下场景,本地客户端A, 远端服务器有B和C, B和C处于同一个内网,且 B上配置了公网ip,C只有内网ip。 那么现在存在一个需求, 我想让A能够访问到C上面部署的一个nginx(监听80端口)的服务。那么怎么解决这个问题? (前提: A能够发起ssh连接到B服务器上)。 如图所示,可以使用ssh提供的本地端口转发技术来实现。(红色箭头表示数据返回流...原创 2019-11-13 14:37:17 · 117726 阅读 · 0 评论 -
https与http区别以及https数据加密解密过程
之前只是去了解了https零散的知识,只是大体知道比http安全。但是其中数据交互的来龙去脉,不是很清楚。借助今天的一篇文章总结一下自己的理解。原文可以参考: https://mp.weixin.qq.com/s/7rn4ruT2KemKRJRUkCwyfAhttps出现的背景大家都知道http协议是"明文"传输。 在互联网中,数据要从A到D一定会经过许许多多的网络路由器,http数据其...原创 2019-03-02 01:14:34 · 128565 阅读 · 2 评论 -
apicloud数据交互mcm模块
混合式开发app,apicloud能快速开发一个中小型甚至大型,功能复杂的app。界面使用html5,js搭建,服务器后端代码减少,调用api云端接口即可。今天浅谈apicloud数据交互模块mcm的简单使用。官方文档个人感觉写得真的很烂,演示的事例太少,刚入门的都不知道怎么使用一些api。并且社区和网上关于这方面的资料比较少,所以自己也是摸石头过河找到点经验和大家分享。 1.创建应用原创 2016-10-29 18:28:14 · 133319 阅读 · 2 评论 -
php源码逆向工程转化为UML类图
通过php源码导出uml类图能够方便我们查看整体项目的类结构,方便我们去阅读源码以及理解。找到一个项目, phuml使用php代码扫描php代码文件,通过extends implements以及注解等形式, 描绘出DOT格式的画图文件,再通过Graphviz软件将DOT图形文件转化为png图片格式,大致原理应该是这样的。 1.项目通过composer安装: https://pack...原创 2019-10-11 15:42:26 · 118972 阅读 · 0 评论 -
Shell脚本精讲-基础语法
Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为 CLI)。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为脚本(script)。这些脚本都通过 Shell 的解释执行,而不通过编译。原创 2024-07-26 15:03:40 · 771 阅读 · 0 评论 -
Linux网络工具“瑞士军刀“集合
下面结合之前的一些使用经验为大家介绍一下一些经典应用场景下,这个网络命令工具如何使用的。例如怎么查看当前服务器监听哪些端口、连接目标主机端口情况如何?平常我们在进行Linux服务器相关运维的时候,总会遇到一些网络相关的问题。我们可以借助这些小巧、功能强悍的工具帮助我们排查问题、解决问题...原创 2024-07-26 14:22:46 · 635 阅读 · 0 评论 -
Web漏洞扫描工具(AWVS、Goby)
开源或者具备有社区版的Web安全漏洞扫描工具找了两款:AWVS、Goby, 使用下来感觉还蛮不错的。 至少也能扫描到一些常见OWASP的TOP10漏洞、常规漏洞等,避免安全部门来扫描的时候让我们去整改。 主动做这个事情对我们本身也是有益的...原创 2024-07-23 15:36:20 · 1567 阅读 · 0 评论 -
Supervisor进程高可用工具详解
Supervisor是一个用于管理和监控进程的工具,特别适用于类UNIX系统(如Linux和macOS)。它最初是由Geoffrey Talvola编写,并以Python语言实现。Supervisor的设计目标是简化进程的管理,确保即使在进程崩溃或退出的情况下,也能自动重启它们,从而保持系统的稳定性和服务的连续性...原创 2024-07-23 14:49:51 · 1249 阅读 · 0 评论