- 博客(170)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注

原创 全网最清晰讲解MySQL的MVCC机制
本章分享主要是从MVCC的来龙去脉,搞清楚Why 引入MVCC?MVCC解决了什么问题,没有MVCC之前又怎么解决的,MVVC解决方案好在哪些地方,由此才引出了ReadView、快照读、当前读、ReadView规则等等概念和底层原理分析。如果你搞不清楚Why, 光看MVCC知识点你也是云里雾里的感觉。如果你明确了解了为什么引入MVCC以及底层原理,才能完全吃透这个技术点,本身逻辑不复杂,被网上的一些晦涩难懂的讲解,只讲结果不讲来龙去脉的方式搞得懵了。MVCC 主要是解决 "读" -"写" 时候的并发问题
2025-04-22 23:20:55
1013
1

原创 Ollama的底层实现原理分析
知其然也要知其所以然, Ollama第一次使用我就很疑惑是不是底层套了一层docker容器化技术,然后再结合大模型做的包装。后来经过分析,确实和容器没太大关系,就是思想做了一些借鉴。并且从分析过程中知道了,GGUF大模型文件的运行依靠的是llama.cpp底层进行支撑运行,那就意味着性能其实不差,毕竟是c++底层来支撑的,之前以为是使用python sdk之类的来运行的...
2025-03-01 18:16:05
1482
8

原创 DeepSeek之高并发架构设计
市面上看到的这些大模型,无外乎就是使用了Python的很多机器学习框架做出来的东西。所以结合到我们的Web开发,只要理解怎么部署模型、调用模型、提高模型并发、高流量就行,本质上也那么复杂。重点的复杂和有核心技术难度的是模型怎么训练的、复杂的算法、算法优化等等才是大模型的核心,Web只是大模型向外暴露的intput、output方式罢了,本质和console控制台没多大区别。并且大模型最大的一个特点就是,整个问答其实是无状态的,这一点很重要。
2025-02-17 13:24:46
1980
11

原创 Linux环境部署DeepSeek大模型
官网地址:OllamaOllama 是一个基于 Go 语言的本地大语言模型运行框架,类 docker 产品(支持 list,pull,push,run 等命令),事实上它保留了 Docker 的操作习惯,支持上传大语言模型仓库 (有 deepseek、llama 2,mistral,qwen 等模型,你也可以自定义模型上传)。通俗理解就是,Ollama这个类似Docker的平台工具,方便我们去直接运行各种LLM大模型。不需要我们去了解模型启动、模型参数配置、以及各种依赖以及准备工作...
2025-02-05 23:07:01
3163
1

原创 Redis高可用之Sentinel哨兵模式
Redis关于高可用与分布式有三个与之相关的运维部署模式。分别是主从复制master-slave模式、哨兵Sentinel模式以及集群Cluster模式。这三者都有各自的优缺点以及所应对的场景,以及对应的业务使用量,我们该怎么选择...
2023-12-05 00:11:47
1524
1

原创 snmp_exporter监控交换机网络流量
最早是IETF的研究小组提出来的,在SGMP协议的基础之上,加上新的管理信息结构和管理信息库,让SGMP更加全面。Zabbix可以根据交换机开启的snmp服务,采集到交换机各个口的流量指标,但是由于现在已经全面转向Prometheus体系,所以只能通过一些方法将这个监控接入Prometheus。我采用文件发现的形式,将配置写在switch.json中, 这样以后修改关于交换机的信息,更改后直接热加载,如果直接写死在promeths.yml每次都要重启prometheus.运行命令测试snmp是否正常(
2023-06-28 16:45:24
4930
3

原创 docker的通俗理解
自己买了个服务器,前不久搭建好的一个网站,想要再搞一个站点,无奈只能修改端口后,再部署另外一个站点。繁琐的配置运行环境,迁移网站,是否让你感觉到很繁琐?服务器不想用了,想搬迁到另外一台服务器去部署,先是拷贝原有数据,在新的服务器上又开始搭建环境进行部署,这些费时间的事情现在只需要几分钟就能完成,那就是docker技术。 docker通俗按照自己的理解来说,就是类似...
2016-11-08 14:12:26
142925
7
原创 iptables的“4表5链”-NAT功能
iptables 是 Linux 系统中用于配置防火墙规则的工具,它借助内核中的 netfilter 框架来实现对网络数据包的过滤、网络地址转换(NAT)以及数据包处理等功能。iptables掌握基本的filter表、nat表即可,如果实在遇到复杂的需求,再查找相关资料进行满足即可。一般情况下的需求也用不到那么多表的操作。
2025-04-14 16:05:30
686
原创 Docker容器网络与NAT
docker的容器之间相互访问,可以通过veth和docker0网桥实现,源地址、目的地址都不需要做变化,就是在二层网络进行传输,不需要网关的参与。但是如果涉及到数据出宿主机则使用SNAT做源地址转换,源数据包转换为宿主机IP地址才能通过宿主机的网卡路由出去,反之,如果想访问我容器的服务,则经过宿主机的时候要做DNAT,将数据包的目的IP和端口,改为容器的内网IP和端口,容器才能正常响应。
2025-04-14 11:41:07
838
原创 NAT网络地址转换与内网穿透
P2P需要解决的前提就是内网穿透问题, 也是难点问题, 因为大家上网都在局域网,正常情况下你是无法直接穿透内网与其它节点进行数据交互和通信的, 那必须要穿透内网才是发挥P2P的优势。 因为现在运营商对P2P, PCDN管控很严格,很多地方都直接把上网的NAT改为NAT4级别,基本上你都无法来穿透内网或者说你要花费的成本变高了很多...
2025-03-25 18:06:23
1164
原创 开源CDN产品-GoEdge
这里借鉴官网文档信息,让大家对CDN的原理再次进行一次记忆加强。不同区域或者不同网络的用户,可以通过DNS服务被分配到不同的边缘节点上;边缘节点如果已经缓存内容,可以就近直接向用户发送内容;如果还没有缓存内容,则一级一级网上找,直至去源站(即内容提供原始的站点)去获取内容,然后再一级一级返回,直至发送给用户;由于边缘节点可以缓存内容,所以可以有以下几个优点:降低了网络延时,加速了内容的分发,因为用户可以就近获取内容,就无需跨多个网络千里迢迢访问最原始的服务器;
2025-03-25 13:27:13
1148
原创 CDN基本原理剖析与代码实现测试
CDN技术其实还是蛮具有挑战性的,因为需要的技术比较杂、也比较多。涉及数据分发、缓存、HTTP反向代理、DNS解析、高可用、高强度的数据一致性完整性保证、网络安全等等。CDN一般做静态资源加速是常见的长场景,随着CDN技术的发展,还可以做动态加速(边缘节点,接收客户端的请求后,通过线路优化、避免网络拥堵等等,再反向代理到源站,拿到动态执行结果), 也还可以做安全加速,通过边缘节点消化DDOS流量,保护源站。还有边缘节点还可以反向拨测源站点,查看各个地域到源站点网络波动情况来验证源站的网络情况等等...
2025-03-24 21:05:35
1123
原创 Docker数据卷volume与bind挂载区别
本质上type=volume和type=bind都是将宿主机的某个目录挂载到容器的某个路径。type=volume是docker自己管理了volume名字和实际宿主机路径的关系,我们只需要黑盒使用volume即可,至于它创建在哪里,我们无须关心,并且针对权限方面docker做了有效管理,是官方推荐使用的方式。type=bind直接绑定呢,是我们知道了实际的宿主机路径,就直接做了挂载。两者最关键区别只是,在卷/本地目录为空的情况下, 默认是否拷贝对应容器路径内容到本地,再进行挂载而已...
2025-03-22 19:06:29
811
原创 vLLM 推理框架与Ollama对比、使用
如果生产环境,高并发、高流量,推荐使用vLLM并且搭配GPU使用。如果流量较低,并且资源有限,只能使用CPU进行推理,使用门槛低,可以推荐使用Ollama. Ollama可以快速进行搭建一个样例出来,提供给非技术人员,例如公司领导、运营或者产品人员进行演示,降低搭建成本...
2025-03-10 17:57:50
1169
1
原创 AI人工智能模式识别EasyOCR的应用
AI人工智能,应用领域中有一个模式识别,也就是我们熟知的图片OCR技术.PyTorch机器学习框架,保存模型成为.pth格式的文件。 模型不再那么神秘,无外乎在软件层面就是体现为一个特定格式的文件罢了, 这个文件一般比较大, 模型参数越多,模型体积越大,一般都是几个G甚至几十个G的这种...
2025-03-10 09:21:57
926
原创 Linux的SSH无法连接(shell request failed on channel 0)
查阅多方资料和排查,锁定在了用户能创建的(进程数+线程数 nproc)的数量已经到达了最大值,无法创建出新SSH的线程/进程,导致报错。查看用户的nproc限制数量发现如图: 最大值65536异常时,通过root能上ssh,查看这个用户所占的进程、线程数量总和如下: 65537 > 63336...
2025-02-17 11:18:08
715
原创 Python使用Flask结合DeepSeek开发
ollama还提供了可以调用对应部署模型的API接口。我们可以基于这些接口,做自己的二次开发。使用python+flask+ollama就可以进行模型对话调用。并且前端采用SSE的技术,后端向前端推送推理结果进行展示...
2025-02-12 14:16:47
1809
3
原创 DeepSeek之前端利用SSE技术逐步显示推理结果
DeepSeek、文心一言、豆包、通义千问, 大家用这些大模型的时候,都会有一个对话框。你输入问题,然后大模型回答你的答案,都会有一个逐步显示的过程效果, 而不是一次性返回整个答案。开始我以为是使用到了Websocket技术,后端拿到问题以后,逐步往前端推送内容,前端再累加显示整个内容。 但是F12开启以后,没有抓到WS的相关连接信息。 我这就很好奇了,怎么实现这个过程的呢?...
2025-02-12 11:43:25
1729
原创 Nvidia GPU驱动安装踩坑
通过yum/dnf方式安装驱动倒是简单,但是不是有时候运气差,下载的驱动和当前硬件版本不兼容,也用不起来。最好还是查看对应GPU硬件版本,从官网拿到合适的版本驱动再进行安装,才能更好进行适配工作。毕竟官网才是最权威的存在,其它封装的一些rpm包只是稍微省略了一下这个过程,但是本质也还是官网提供的驱动包安装的一种形式而已...
2025-02-09 11:15:52
502
原创 DeepSeek部署之GPU监控指标接入Prometheus
我们必须要关注主机GPU的监控指标情况,例如总的显卡显存大小、占用的显存大小、显卡的版本信息、驱动信息等等,才能对CPU运行情况、利用率等做到心中有数,便于后期的运维、高可用性等...
2025-02-07 20:01:56
1291
原创 Nginx配置VTS模块-对接Promethues监控
Nginx VTS模块能够获取比stub_status更详细、更丰富的指标,可以有助于我们对nginx有更全面的监控和配置更加合理的告警信息,便于问题的及时发现以及相关优化!..
2025-01-13 20:56:28
1289
原创 2FA双因子验证技术实现原理
随着关注数据安全的意识逐步提升,很多站点都开始强制用户不止使用用户名+密码的形式进行登录,还会逐步引导用户开启2FA多因子验证。 Github就已经强制用户使用2FA多因子验证进行账号的登录,现在阿里云、腾讯云等也逐步往这个方向发展。具体原理你知道吗? ...
2024-12-19 21:23:17
1017
原创 Python3离线安装第三方包
某些企业,特别是国企、或者涉密单位或者对安全要求比较高的环境下,服务器无法连接互联网。 那么我们的pip install就无法正常工作了。 那怎么办呢? 我就需要安装第三方包啊。别急,我们可以使用离线安装的方式来实现这个需求......
2024-12-11 16:21:25
1023
原创 Python+Selenium无头浏览器实现网页截图
Selenium就是个自动化测试框架,底层还可以切换控制Chrome、火狐等等相关浏览器驱动。。可以使用Python+Selenium的方式进行网页截图等等相关工作
2024-11-25 21:56:42
558
原创 Chaosblade混沌工程工具
Chaosblade?阿里巴巴开源的一款简单易用、功能强大的混沌实验注入工具。ChaosBlade是一个云原生混沌工程平台,支持多种环境、集群和语言。包含混沌工程实验工具 chaosblade 和混沌工程平台 chaosblade-box,旨在通过混沌工程帮助企业解决云原生过程中高可用问题。github地址:官网地址:混沌工程的Chaosblade开源工具,可以帮助我们模拟一些预设的故障, 之后针对这些故障我们如何应对?如何优化程序, 或者如何避免因为这些故障而导致系统产生不可用的情况。
2024-11-21 14:05:45
878
2
原创 Dockerhub镜像加速
dockerhub由于被封锁和站点处于国外的原因,docker pull拉取镜像非常慢,有时候直接都无法拉取。严重妨碍了我们的学习进度以及日常使用。修改/etc/docker/daemon.json文件, 重启docker服务: systemctl restart docker。总结了一些proxy代理的镜像站点,配置之后速度会有明显提升,大家可以参考使用。
2024-11-21 13:30:29
1502
原创 Nginx流量同时转发多后端(流量镜像分发)
负载均衡的场景我想就不用赘述了,定义一个upstrem, upstrem定了一组提供相同服务的server地址, 最后通过proxy_pass转发到这个upstrem。 但是,这个是负载均衡的场景,那就意味着,无论你的算法如何,最终只会转发到一个server目标上。那文章标题提到的流量镜像是什么场景呢? 那就是一次HTTP请求,被同时转发到多个后端。 例如一次请求,既代理到A服务、也代理到B服务,发送了2次或者n次的情况。这种需求如何实现呢? ...
2024-10-23 13:21:12
2362
原创 RockyLinux-软件实现RAID5
选择硬件RAID还是软件RAID,取决于具体的应用场景和需求。对于需要高性能、高可靠性的关键业务,硬件RAID可能是更好的选择。而对于成本敏感或需要高度定制化的环境,软件RAID则更为合适。在实际部署时,还需要考虑现有的硬件和软件环境,以及维护和管理的成本。从我实际工作来看,几乎没人会用软件实现RAID,影响性能不说,安全性也不得到保证。操作系统崩溃这些原因,也可能导致RAID数据找不回来或者访问不了了。软件实现纯属学习用途...
2024-09-15 20:22:06
1427
原创 Linux-Swap分区使用与扩容
swap分区看情况吧,内存很富裕的情况下,并且对性能要求高,那么建议直接关闭算了,减少内存和硬盘IO交换的过程。内存很紧缺的情况下, 并且对性能要求也没那么高,让多一点程序能跑起来,那么可以尝试开启swap分区或者扩容swap分区,勉强撑一下也行。但是对于MySQL、Kafka、K8S节点这些,建议Swap关闭吧,毕竟性能还是要保证的,内存也不贵,这些服务也不至于给8G、16G的内存卡吧,好说歹说基本都是32G起步。
2024-09-15 17:42:49
2948
原创 Linux-LVM逻辑卷管理
LVM逻辑卷的机制是其中一种可以满足在线热扩容、对应用程序无关、安全的磁盘管理机制,也许可以满足你的需求。LVM(逻辑卷管理)是一种灵活的存储管理技术,允许用户将一个或多个物理硬盘的分区组合起来,形成一个物理卷集合,从而可以更灵活地管理和分配磁盘空间...
2024-09-15 16:13:50
1096
原创 Nginx实现UDP四层转发
Haproxy只支持TCP的4层转发以及7层HTTP的转发,但是不支持UDP流量转发。Nginx支持HTTP、TCP4层、UDP4层。同时Nginx配置我们相对熟悉,如果Haproxy搞不定的事情,我们可以借助Nginx实现也是没问题...
2024-09-13 16:34:49
897
原创 Java程序补丁机制探讨
总体,补丁机制就是替换文件或者代码的过程。只是说替换的过程能否让用户更加无感知、出现异常方便回退、补丁版本记录、兼容性强等方便需要做到位。同时例如有些补丁需要进行热加载机制,无须重启,直接生效。针对脚本语言的程序更是如此,就是替换代码文件,如lua、php等,替换立即生效,也没有多么神秘的面纱...
2024-09-13 15:51:34
1148
原创 Linux动态链接库
在 Linux 系统中,动态链接库(Dynamic Link Library)和共享库(Shared Library)是指同一概念的不同称谓,通常指的是 .so(shared object)文件。这类库在 Linux 和其他类 Unix 操作系统中非常常见,用于实现程序的模块化和资源的共享。动态链接库/共享库是一种二进制文件,其中包含了一组预先编译好的函数和数据结构,可以被多个不同的程序共享。这些库通常在程序运行时被加载,并且可以被多个进程同时使用。在 Linux 中,动态链接库通常以.so。
2024-09-03 13:12:33
1365
原创 Java JAR命令打包详解与坑点
建议还是按照java规范,使用jar命令进行打包处理,而不是简单的zip命令进行打包。但是也不是一概而论,如果先通过zip没问题就可以,如果存在问题回到原点,使用jar打包即可。特别注意-0参数是否需要,否则会造成上述的问题。
2024-08-28 14:36:11
1651
原创 云原生容器高级工程师-阿里云ACP认证-考试分享(下)
预约线上/线下考试成功之后,会提前2-3天收到普尔文考试的邮件通知,邮件内容比较重要的就是:1、确认码2、你的姓氏登录考试软件的时候需要使用这2个信息才能进行登录。如果考试前2天都没收到邮件,那么需要联系帮你预约的机构或者缴费单位咨询情况.
2024-08-03 10:20:50
1362
1
原创 云原生容器高级工程师-阿里云ACP认证-考试分享(上)
阿里云认证是由阿里巴巴集团旗下的阿里云所推出的一系列专业认证,旨在验证个人在云计算、大数据、人工智能、物联网、数据库、云原生、云安全等领域的技术能力和专业知识。这个认证体系面向不同层次的专业人士,包括学生、技术工程师、开发者、架构师等,提供了从基础到高级的不同级别的认证。ACP面向的高级工程师的定位,考试费用1200元/次,有且只有1次考试机会,考不过重新缴费考试。 这个是我本次考试的认证等级推荐, 考试费用和对标等级都能相对可以接受...
2024-08-03 10:20:13
1560
1
原创 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
4507
原创 Golang的TLS版本配置参数-排坑经历
关于tls.Config的MinVersion属性,我的修复建议就是强制写死默认最小版本是TLS1.0,不要依赖Golang给你设置MinVersion的值。要不然就会造成上面我的这种情况,十分坑爹!如果你设置的MinVersion是TLS1.0,MaxVersion怎么设置都不会报错的。因为至少MaxVersion都是TLS1.0了,还是满足条件: MinVersion
2024-07-31 15:08:24
1672
原创 Shell脚本精讲-基础语法
Shell 是一个程序,提供一个与用户对话的环境。这个环境只有一个命令提示符,让用户从键盘输入命令,所以又称为命令行环境(command line interface,简写为 CLI)。Shell 接收到用户输入的命令,将命令送入操作系统执行,并将结果返回给用户Shell 是一个命令解释器,解释用户输入的命令。它支持变量、条件判断、循环操作等语法,所以用户可以用 Shell 命令写出各种小程序,又称为脚本(script)。这些脚本都通过 Shell 的解释执行,而不通过编译。
2024-07-26 15:03:40
769
原创 Linux网络工具“瑞士军刀“集合
下面结合之前的一些使用经验为大家介绍一下一些经典应用场景下,这个网络命令工具如何使用的。例如怎么查看当前服务器监听哪些端口、连接目标主机端口情况如何?平常我们在进行Linux服务器相关运维的时候,总会遇到一些网络相关的问题。我们可以借助这些小巧、功能强悍的工具帮助我们排查问题、解决问题...
2024-07-26 14:22:46
616
2024-07-16 nacos 0day exp测试代码
2024-08-06
mybatis逆向工程工具包(自动生成xml和java文件)
2016-11-08
php怎么提取office的文本内容?
2017-10-16
html中文件上传的原理
2017-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人