avatar
Articles
63
Tags
47
Categories
16

梦之痕

梦之痕

MySQL 锁机制
Created2024-03-10|数据库篇章
第06讲 全剧锁和表锁MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类。 6.1 全局锁全局锁是对整个数据库实例加锁,命令如下: 1Flush tables with read lock (FTWRL) 当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。 全局锁的典型使用场景是做全库逻辑备份。也就是把整库每个表都select出来存成文本。 在讲事务隔离时,事务的可重复读隔离级别也可以实现在多个事务执行时实现一致性。官方自带的逻辑备份工具是mysqldump。当mysqldump使用参数–single-transaction的时候,导数据之前就会启动一个事务,来确保拿到一致性视图。但是对于MyISAM这种不支持事务则无法使用,只能全局锁。所以,single-transaction方法只适用于所有的表使用事务引擎的库。如果有的表使用了不支持事务的引擎,那么备份就只能通过FTWRL方法。这往往是DBA要求业务开发人员使用InnoDB替代MyISAM的原因之一。 ...
DPDK 深入浅出
Created2024-03-10|虚拟化&云计算
0 常见问题 DPDK里面你对负载均衡了解吗,能不能给我解释一下呢,有几种方法呢?1DPVS DPDK的两种模式你知道多少呢,可以介绍一下吗? pipeline模式和run 对于DPDK它和传统协议栈的对比好处在哪呢,怎么实现的呢, PMD的流程、NUMA的机制、DPDK对于网卡的流处理机制等等; PMD是用户态轮询机制的驱动,轮询收发数据包,相比中断性能更高,其次PMD虽然是用户态实现的设备驱动,但依赖内核提供策略,比如依赖UIO(内核的用户态驱动框架);或者VFIO DPDK的UIO实现的流程是什么样的呢?对于DPDK的大页以及TLB等,你有多少了解? 1 DPDK简介1.1 初始DPDK以Linux为例,传统网络设备驱动包处理的动作可以概括如下: 数据包到达网卡设备。 网卡设备依据配置进行DMA操作。 网卡发送中断,唤醒处理器。 驱动软件填充读写缓冲区数据结构。 数据报文达到内核协议栈,进行高层处理。 如果最终应用在用户态,数据从内核搬移到用户态。 如果最终应用在内核态,在内核继续进行。 随着网络接口带宽从千兆向万兆迈进,原先每个报文就会触发一个中断,中断带来的开销 ...
基于Istio ingress对外提供服务
Created2024-03-10|虚拟化&云计算
1 简介上一篇是在Service Mesh中两个应用之间互相访问,本片介绍下通过Istio Ingress把服务网络中的应用对外暴露,通过Ingress Gateway控制从外边访问服务网格中的应用。在Service Mesh中部署两个服务,一个httpserver应用,一个Nginx,通过在Ingress Gateway中配置路由控制,使用同一个域名,不同的URI访问两个应用服务。如下: 12curl -H "Host: simple.baihl.io" $INGRESS_IP/simple/httpservercurl -H "Host: simple.baihl.io" $INGRESS_IP/simple/nginx $INGRESS_IP 为 Istio中Ingress Gateway对外的IP地址。 2 创建应用服务1234kubectl create ns simplekubectl create -f simple.yaml -n simplekubectl create -f nginx.yaml -n simplekubect ...
Istio 中的流量劫持机制
Created2024-03-10|虚拟化&云计算
1 Istio流量劫持机制在Service Mesh架构中,Istio通过流量劫持机制,让Pod中的应用访问其他服务时都经过Istio代理,实现对流量的控制。基于Istio可以实现请求路由、服务发现和负载均衡、故障处理、故障注入和规则配置等功能。,因为所有Pod中的进出流量都经过Istio的数据面,所以也可以实现日志记录和追踪。如下是Istio的架构图:下边通过一个示例操作,看下Istio是怎么实现流量劫持的,流量被劫持后又是怎么转到目的地的。 2 环境介绍部署两个Pod,分别表示客户端和服务端,通过客户端发起请求,然后看请求整个链路的转发过程。 12345678# 创建一个namespacekubectl create ns sidecar# 注入sidecarkubectl label ns sidecar istio-injection=enabled# 部署nginx podkubectl apply -f nginx.yaml -n sidecar# 部署toolbox podkubectl apply -f toolbox.yaml -n sidecar nginx.ya ...
MySQL 索引详解
Created2024-03-09|数据库篇章
第4讲 深入浅出索引常见索引模型索引的作用:提高数据查询效率下边介绍几种数据结构: 哈希表 存放 键-值 (key - value)对。 哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置 哈希冲突的处理办法:链表 哈希表适用场景:只有等值查询的场景,查询范围会很慢 有序数组按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(log(N)) 有序数组查询效率高,更新效率低 有序数组的适用场景:静态存储引擎。 二叉搜索树每个节点的左儿子小于父节点,父节点又小于右儿子。查询时间复杂度O(log(N)),更新时间复杂度O(log(N))数据库存储大多不适用二叉树,因为树高过高,会适用N叉树 InnoDB中的索引模型:B+Tree(具体介绍看《数据结构与算法笔记》) InnoDB的索引模型在InnoDB中,表都是根据主键顺序以索引的形式存放的,这种存储方式的表称为索引组织表。又因为前面我们提到的,InnoDB使用了B+树索引模型,所以数据都是存储在B+树中的。每一个索引在InnoDB里面对应一棵B+树。假设,我 ...
Go--进阶篇
Created2024-03-04|Go & Python
00 参考资料笔记资料: https://www.yuque.com/xguan56/uwu3y5/gzbs7g 精选 Go 学习资料https://1024casts.com/topics/Lqno6VNP9b71ZYQ5rZBMd02KG3zQwx 优秀博客:https://lailin.xyz/post/go-training-01.html 实战代码:https://github.com/marmotedu/iam 01 并发编程13 GO语言实践-Runtime13.1 Goroutine原理13.2 内存管理13.2.1 逃逸分析通过检查变量的作用域是否超出了它所在的栈来决定是否将它分配在堆上 其中“变量的作用域超出了它所在的栈”这种行为即被称为逃逸。逃逸分析在大多数语言里属于静态分析:在编译期由静态代码分析来决定一个值是否能被分配在栈帧上,还是需要“逃逸”到堆上。 减少 GC 压力,栈上的变量,随着函数退出后系统直接回收,不需要标记后再清除 减少内存碎片的产生 减轻分配堆内存的开销,提高程序的运行速度 编译的语句如下: 1go build -gcflags &#x ...
负载均衡:高并发网关设计原理与实践
Created2024-02-27|网络协议
0 参考资料0.1 引用资料123456789101112131415161718192021222324252627282930313233343536373839[1] http://www.linuxvirtualserver.org/[2] https://github.com/alibaba/LVS[3] http://kb.linuxvirtualserver.org/wiki/IPVS_FULLNAT_and_SYNPROXY[4] https://wearesocial.com/blog/2018/01/global-digital-report-2018?utm_content=buffer98aa2&utm_medium=social&utm_source =twitter.com&utm_campaign=buffer[5] http://www.cac.gov.cn/2018-08/20/c_1123296882.htm[6] https://tools.ietf.org/html/rfc5798[7] https://tools.iet ...
Langchain 详解与实战
Created2024-02-07|人工智能&大数据
0 参考资料0.1 网站 LangChain 中文网:https://www.langchain.asia/ LangChain Github:https://github.com/langchain-ai/langchain LangChain API文档:https://python.langchain.com/docs/get_started 大语言模型实践:https://wangwei1237.github.io/LLM_in_Action/ 0.2 课程 《LangChain 实战课》 0.3 开源项目 AutoGPT:https://github.com/Significant-Gravitas/AutoGPT AgentBench:https://github.com/THUDM/AgentBench (测试 Agent 性能) ChatALL:https://github.com/sunner/ChatALL (对多个大模型进行整合输出) 1 LangChain 安装和使用1.1 LangChain 安装123pip install langchain ...
REUSEADDR 和REUSEPORT 对TCP连接的控制
Created2024-02-04|网络协议
参考资料REUSEADDR 与 REUSEPORT 到底做了什么? REUSEADDRSO_REUSEADDR 提供了一套复用地址的规则。对于 AF_INET 套接字,这意味着一个套接字可以绑定,除非有一个活动的监听套接字绑定到该地址。 当监听套接字使用特定端口绑定到 INADDR_ANY 时,就不可能为任何本地地址重新绑定到该端口。 对服务端,在创建socket后,对soket设置reuseaddr属性,可以实现同时复用ip+port 1234开启 REUSEADDR,并且调用 listen 使套接字称为监听状态,两个使用相同 port 进行bind,结果如下: server1 :127.0.0.1:30001, bind 成功 server2 :0.0.0.0:30001, bind 成功 如果ip+port完全相同则报错。 当作为服务端重启时,主动断开连接,会进入TIME_WAIT状态,此时启动时会报错,Address already in use,如果开启REUSEADDR,则可以正常快速重启。 REUSEPORT对于TCP套接字而言,这个选项通过每个监听线程使用不 ...
HTTP2 vs HTTP3详解
Created2024-02-04|网络协议
1 HTTP2 特性概览1.1 头部压缩在HTTP/1中使用头部字段“Content-Encoding”指定Body的编码方式,比如用gzip压缩来节约带宽,但是报文的头部却被无视,没有针对优化手段。有时候,比如GET请求,Body很小,就几十字节,但头部字段却多达上百字节。 在HTTP/2中使用头部压缩手段对头部进行优化,使用的是“HPACK”算法,在客户端和服务器两端建立“字典”,用索引号表示重复的字符串,还釆用哈夫曼编码来压缩整数和字符串,可以达到50%~90%的高压缩率。 “HPACK”算法是专门为压缩HTTP头部定制的算法,与gzip、zlib等压缩算法不同,它是一个“有状态”的算法,需要客户端和服务器各自维护一份“索引表”,也可以说是“字典”(这有点类似brotli),压缩和解压缩就是查表和更新表的操作。为了方便管理和压缩,HTTP/2废除了原有的起始行概念,把起始行里面的请求方法、URI、状态码等统一转换成了头字段的形式,并且给这些“不是头字段的头字段”起了个特别的名字——“伪头字段”(pseudo-header fields)。为了与“真头 ...
1…345…7
avatar
梦之痕
Articles
63
Tags
47
Categories
16
Follow Me
Announcement
个人笔记迁移中ing....
Recent Post
大模型 RAG 的应用和开发2025-04-29
06 - WASM 插件开发2025-02-12
记录访问 HTTPS 网站报错问题2024-09-28
AI 大模型微调2024-09-03
Untitled2024-08-29
Categories
  • AI大模型1
  • Go & Python6
  • Java & Lua7
  • Linux 内核1
  • 人工智能&大数据4
  • 信息安全3
  • 后端&架构8
  • 工具使用3
Tags
Java DPDK Maven 微服务架构 Python 流量控制 系统优化 Git 程序设计 LVS HTTP3 大模型微调 wasm 四层负载均衡 系统架构设计师 Go 网络 iterm2 杂文 OpenResty MySQL 深度学习 虚拟化 云原生 数据库 Istio Nginx Flink Kubernetes 算法题解 Redis HTTP2 LangChain VPP 软考高级 Linux内核 Calico Tongsuo RAG Helm
Archives
  • April 20251
  • February 20251
  • September 20242
  • August 20244
  • July 20244
  • June 20244
  • May 20242
  • April 20243
Info
Article :
63
UV :
PV :
Last Update :
©2020 - 2025 By 梦之痕
Framework Hexo|Theme Butterfly