- 博客(218)
- 资源 (14)
- 收藏
- 关注
原创 golang gmp模型分析
就是告诉那些运行时间超过特定阈值(10ms)的G,该让一让了,怎么知道运行时间过长了呢,P里面有一个schedtick字段,每当调度执行一个新的G,并且不继承上个G的时间片时,就会把它自增1,而这个p.sysmontick中,schedwhen记录的是上一次调度的时间,监控线程如果检测到p.sysmontick.schedtick与p.schedtick不相等,说明这个P又发生了新的调度,就会同步这里的调度次数,并更新这个调度时间。实际上监控线程,调度器,GC等工作过程中都会按需执行netpoll。
2025-04-09 11:30:17
718
转载 golang gc流程分析
我们还是基于上述的三色并发标记法来说, 他是一定要依赖STW的. 因为如果不暂停程序, 程序的逻辑改变对象引用关系, 这种动作如果在标记阶段做了修改,会影响标记结果的正确性。,STW的过程中,CPU不执行用户代码,全部用于垃圾回收,这个过程的影响很大,Golang进行了多次的迭代优化来解决这个问题。A.添加下游对象(nil, B) //A 之前没有下游, 新添加一个下游对象B, B被标记为灰色。正常执行算法逻辑,对象2,3标记为黑色,而对象3,因为对象4已经不会再扫描,而等待被回收清除。
2025-04-08 10:01:59
11
原创 gin 源码分析
这部分并不是 Gin 实现的,而是开篇在 Gin 的介绍里提到的 httprouter 实现的,Gin 使用了 httprouter 来做了这部分的功能。c就像是一根管道,将该次请求相关的所有的函数都串起来了。上文提到,当使用 gin.Default 创建一个 Engine 的时候,会执行 Engine 的 Use 方法导入两个函数,其中的一个是 Recovery 函数的返回值,它又是对其它函数的封装,最后调用到的函数是 CustomRecoveryWithWriter,来看一下这个函数的实现。
2025-04-07 14:31:33
685
原创 Langchain应用-rag优化
RAG,Retrieval-Augmented Generation,中文名检索增强生成,是AI领域非常重要的一种技术方案。其核心作用是给LLM大模型外挂专门的知识库,指导大模型生成更准确的输出。
2025-03-13 13:05:54
590
转载 istio与kubernetes资源关系
Istio的原理是拦截 Kubernetes 中创建 Pod 的事件,然后向 Pod 中注入一个包含 Envoy 的容器,进出 Pod 的流量会被 “劫持” 到 Envoy 进行处理。由于流量被 “劫持” 了,所以 Istio 可以对流量进行分析例如收集请求信息,以及一系列的流量管理操作,也可以验证授权信息。当 Envoy 拦截流量并执行一系列操作之后,如果请求没问题,就会转发流量到业务应用的 Pod 中。
2025-03-01 11:58:37
27
原创 langchain应用-agent
在 LangChain 中,Agent 是一个代理,接收用户的输入,采取相应的行动然后返回行动的结果。Agent 可以看作是一个自带路由消费 Chains 的代理,基于 MRKL 和的基本原理,Agent 可以使用工具和自然语言处理问题。官方也提供了对应的 Agent,包括 OpenAI Functions Agent、Plan-and-execute Agent、的 Agent 等。Agent 的作用是代表用户或其他系统完成任务,例如数据收集、数据处理、决策支持等。
2025-02-19 21:19:31
869
原创 langchain应用-RAG
检索增强生成(Retrieval Augmented Generation),简称 RAG,已经成为当前最火热的LLM应用方案。
2025-02-18 23:40:37
456
原创 kubernetes-cni 框架源码分析
这篇文章主要深入探索 Kubernetes 网络模型,并了解容器、pod 间如何进行通讯。对于网络模型的实现将会在后面的文章介绍。
2025-02-13 23:02:04
929
原创 Kubernetes源码分析-kube-proxy
对于iptables和IPVS模式,kube-proxy的响应时间开销与建立连接相关,而不是与在这些连接上发送的数据包或请求的数量有关。这是因为Linux使用的连接跟踪(conntrack)能够非常有效地将。
2025-02-13 15:23:36
765
原创 kubernetes源码分析-kube-apiserver
基于属性的访问控制(Attribute-based access control - ABAC)定义了访问控制范例,其中通过使用将属性组合在一起的策略来向用户授予访问权限。启用ABAC鉴权器需要额外增加一个。
2025-02-13 14:54:19
406
原创 kubernetes源码分析 kubelet
从官方的架构图中很容易就能找到kubelet执行kubelet -h看到 kubelet 的功能介绍:kubelet 是每个 Node 节点上都运行的主要“节点代理”。使用如下的一个向 apiserver 注册 Node 节点:主机的hostname;覆盖host的参数;或者云提供商指定的逻辑。kubelet 基于PodSpec工作。PodSpec是用YAML或者JSON对象来描述 Pod。Kubelet 接受通过各种机制(主要是 apiserver)提供的一组PodSpec。
2025-02-13 11:14:58
1119
原创 ovn源码分析
北向数据库(NBDB):用户或编排系统(如 Kubernetes)定义虚拟网络的高层配置(如逻辑交换机、路由器、ACL 等),这些配置存储在北向数据库中。南向数据库(SBDB)ovn-northd组件将北向数据库中的高层次配置转化为底层的网络实现配置,并存储在南向数据库中。OVS配置(流表规则、端口配置):每个节点上的从南向数据库读取数据,并将这些数据转化为 OVS 的配置,比如 OVS 端口、流表规则等。示例:将 Logical Switch Port 的配置转换为 OVS 配置。
2024-12-16 11:24:21
1080
转载 Python使用struct处理二进制
有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最重要的三个函数是pack(), unpack(), calcsize()pack(fmt, v1, v2, ...) 按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结
2014-04-21 18:29:43
660
转载 HTTP的编码行为分析
yuanwe6.1 HTTP协议及浏览器编码行为HTTP协议和浏览器是Web国际化的基础,在进入Java服务器端之前,必须先对它们的编码行为有所了解。6.1.1 HTTP协议HTTP协议是B/S体系结构应用程序的基础,只有了解了HTTP协议,才能理解如何在B/S体系结构下实现应用程序的国际化。1.HTTP请求当用户在浏览器的地址栏中输入一个URL并按
2014-04-21 17:27:17
870
转载 snort.conf分析(中文)
原帖:http://blog.youkuaiyun.com/jo_say/article/details/6302367 snort.conf分析此文件包含一个snort配置样例。共分五步骤:1 设置你的网络变量2 配置动态加载库3 配置预处理器4 配置输出插件5 增加任意的运行时配置向导6 自定义规则集step1:设置你的网络变量1 其中针对本地网络给出3
2014-04-21 17:23:59
972
转载 HTTP请求报文详解
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。 请求报文一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 (1)请求行请求行由请求方法字段、URL字段和HTTP协议
2014-04-17 17:59:06
663
转载 html form中回车事件
转载:http://hi.baidu.com/yangzelai/blog/item/df21393aff7b85feb211c7a0.htmlhtml form中回车事件我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,希望输入完关键词之后直接按回车键立即提交表单,而有些复杂表单,
2014-04-17 17:58:10
1007
转载 百度贴吧发帖 python代码片段
#from http://pythoner.org/code/16/#coding: utf-8"""Author: piglei2007@gmail.comVersion: 1.0"""import wximport osimport urllibimport urllib2import cookielibimport simplejsonimport tempfile
2014-04-17 11:50:07
1809
转载 HTTP 报文详解
yua本文根据RFC2616(HTTP/1.1规范),参考http://www.w3.org/Protocols/rfc2068/rfc2068http://www.w3.org/Protocols/rfc2616/rfc2616http://www.ietf.org/rfc/rfc3229.txt通常HTTP消息包括客户机向服务器的请求消息和服
2014-04-16 14:36:22
779
原创 Codeforces Round #241 (Div. 2) B
B. Art Uniontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputA well-known art union called "Kalevich is Aliv
2014-04-14 19:58:59
549
转载 LIBCURL教程
LIBCURL教程(转) 原文地址:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html 译者:JGood(http://blog.youkuaiyun.com/JGood ) 译者注:这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中
2014-04-14 10:31:51
645
转载 超详细的vim+cscope 的使用规则 转载
写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE.但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了,"工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了,我今天教
2014-04-09 14:09:34
660
转载 快速架设一个使用 SSH 的 Git 服务
快速架设一个使用 SSH 的 Git 服务Git 是非常流行的分布式版本控制工具,很早以前就从 Subversion 转到 Git 了。现在每天用的 Xcode 日常开发,测试和应用部署也都是使用 Git,而且除了版本控制功能之外,也可以使用 Git 很方便的进行应用部署(或网站发布)等工作,所以 Git 基本上是每天工作都离不开的一个工具了。之前一直在使用 Github 上付
2014-04-07 21:31:32
479
转载 Linux网络编程:原始套接字的魔力【下】
原文:http://blog.chinaunix.net/uid-23069658-id-3283534.html可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IP
2014-03-27 15:00:38
649
转载 Linux网络编程:原始套接字的魔力【上】
原文:http://blog.chinaunix.net/uid-23069658-id-3280895.html基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进
2014-03-26 14:48:35
596
转载 Ubuntu下安装Django
原文:http://blog.sina.com.cn/s/blog_60b545010101hl0t.html正式开始Django学习历程。要用Django第一步就是要配置好环境啊。我的配置:OS: Ubuntu 12.10Server: Apache 2.2.22Database: MySQL 5.5
2014-03-21 23:49:00
584
原创 autotool总结
申明 :阅读autotool手册同时根据自己认识进行总结,文章内容以手册为主,结合部分其他资料以及自己的总结。第一章 总体概览1.1概述 Autoconf是一个通过产生配置脚本来使源码包能够适配不同类unix系统的工具。 Automake 是为了改善autoconf管理工程时,因为目录过多,依赖链管理过于复杂的问题。使代码管理更加
2014-03-20 22:53:38
2322
翻译 跟我一起写 Makefile (重制版)
申明因为发现网上陈皓的跟我一起写 Makefile>>是Makefile相关很全面的中文资料,但流传的该文档中出现了部分笔误且没有目录。因此本文主要目地是在对该文档重制,排版并在部分位置做了少量调整,对部分资料进行了补充, 以便后面的读者能更方便的阅读。 下载地址:http://pan.baidu.com/s/1kT9K74b 作者 MSN :haoel@hotmail.
2014-03-20 00:12:42
1090
1
转载 课程资源收录
从面向找工作的角度出发,我觉得以下课程有很大帮助:首推Robert Sedgewick,也是我觉得对我帮助最大的老师,讲课特点是能把复杂的算法讲解清楚(典型例子:红黑树,KMP算法)他在Coursera有四门课,循序渐进,也越来越理论,尤其是前三门,非常值得一上。个人认为上完前两门,你的理论基础(当然还要结合刷题的实践)已经可以虐普遍的小公司和大部分的大公司了。上完第三门可以虐一流
2014-03-17 22:46:22
547
原创 HASH表
第一章 基本原理1.1 概述散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。1.2 基本概念1.2.1简介如图1-1,直接寻址存在一个技术问题:如果域U很大,在一台典型计算机的可用内存容量限制
2014-03-16 12:22:53
562
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人