- 博客(131)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 关于三十而立
今天刷短视频 又看到了关于三十而立的论述 说的是人生目标/方向要确立 并对这个目标/方向不遗余力。我想目前是网络编程及设计架构。
2022-08-09 17:24:09
235
1
翻译 C++ concurrentqueue资料
##特征- 让人震惊的[快速性能] [基准]。- 单头实现。把它放在你的项目中。- 完全线程安全的无锁队列。同时使用任意数量的线程。- C ++ 11实现 - 在可能的情况下(c11中的move语义)移动元素(而不是复制)。- 模板化,不需要专门处理指针 - 内存管理为您。- 元素类型或最大数量不受人为限制。- 内存可以预先分配一次,也可以根据需要动态分配。- 完全
2017-12-28 14:12:59
5825
1
原创 bbr cbuic
bbr有了bbr,其实大部分优化都没啥意思了,长时间传输tcp的问题就是时间长了会降速然后回升不了,老顽疾。就跟那天那个wifa组网的bug一样,大家都知道慢了,但是多少年也搞不懂我们用wget等去下载一些非常偏门的,遥远的星球上的资料的时候,经常遇到一开始1m几百K,最后慢慢到1K 2K的速度,就是tcp的锅啦,就是bbr解决的问题啦bbr解决的是一个tcp连接长时间跑之后,由于
2017-12-28 14:07:30
560
转载 nginx location语法使用及一些全局变量
语法规则: location [=|~|~*|^~] /uri/ { … }Location 指令,是用来为匹配的 URI 进行配置,URI 即语法中的”/uri/”,可以是字符串或正则表达式。但如果要使用正则表达式,则必须指定前缀。 URI 是指/dir/file.php不包括各种参数。/ 通用匹配,任何请求都会匹配到= 开头表示精确匹配~ 开头表示区分大
2017-12-18 14:08:39
2162
原创 补丁文件概述
git log e768cb61c335d8edafdc2cf17b4553cb490e49e4 --stat -p当看一个提交的具体信息时候 -p参数是看diff 会出现下面的diff文件描述diff --git a/CHANGES b/CHANGESindex 065ab60..5f00fba 100644--- a/CHANGES+++ b/CHANGES@@ -6,6 +6,
2017-12-06 17:21:39
493
原创 02 基础知识
一、 注释 JavaScript 注释分两种 跟c风格有点相似: - 单行注释:// - 多行注释:/**/ 提示:单行注释不能折行,可以嵌套;多行注释可以折行,不能嵌套;二、 语句 一段脚本就是一系列计算机能够一步一步执行的指令。每一条单独的指令或步骤就被称为一条语句。语句以分号(;)结尾,多个语句可以写在一行内。var a = 10; // 这
2017-11-29 23:02:12
377
1
转载 1 JavaScript前言
之所以要学习JavaScript是因为各大主流网站的html嵌入脚本看不懂 规则也不清楚 so 学JavaScript也是必须的了 本仓库主要是涉及JavaScript基础知识的讲解,md文件格式,建议下载一个markdown编辑器用于演示内容,推荐使用:Typora。一、JavaScript 概述JavaScript是一种轻量级的脚本语言。所谓“脚本语言”,指的是它不具备开发操作系统的能力,
2017-11-29 22:13:51
1617
原创 tcpdump常用命令
抓get请求 tcpdump -i eth3 -nnvvAs 0 'tcp[((tcp[12:1] & 0xf0) >> 2):4]=0x47455420' |grep -C15 "huochepiao_share.dat" tcpdump -i eth0 -nnvvAs 0 '(tcp[((tcp[12:1] & 0xf0) >> 2):4]=0x47455420) and (src
2017-11-28 17:03:36
509
原创 ATS常用命令脚本化
先上代码#!/bin/bash export PATH=/opt/ats/bin:$PATHHONG () { echo -e "\033[0;31;1m$*\033[0m"}LV () { echo -e "\033[0;32;1m$*\033[0m"}if [ ! -x /opt/ats/bin/traffic_line ] th
2017-11-28 14:48:35
885
原创 常用的shell日志统计脚本
egrep "2017:15:" access.log | awk '{print $6}'| sort | uniq -c | sort -rn | headsort -u 去重 保证唯一性uniq 去除连续性的重复sort + uniq -c 是黄金搭档sort -n 按照整数排序 非常重要!参考 http://man.linuxde.net/uniq参考 http:/
2017-11-20 22:47:23
3856
原创 ats异步案例分析
现在以do_http_server_open为例 HttpSM::do_http_server_open(bool raw)netProcessor.connect_re(this,&t_state.current.server->addr.sa, &opt);获取状态机中的锁(this即httpSM的mutex最终源于netvc netvc的mutex源于(acceptLoo
2017-11-13 17:58:16
696
原创 linux dd命令
dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 convert and copy a file 使用方式: dd [option]如果你想要在线看 manual, 可以试试:dd --help 或 info dd输入
2017-11-11 11:01:53
292
原创 linux ss命令
ss用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。可能你不会有切身的感受,
2017-11-09 17:03:39
1495
原创 系统调优backlog与tcp_max_syn_backlog和somaxconn
man listen看man怎么说的 The behavior of the backlog argument on TCP sockets changed with Linux 2.2. Now it specifies the queue length for completely established sockets waitingto be accepted, instead
2017-11-09 15:45:53
7136
2
原创 apache traffic server各版本信息
4.0.x新特性在storage.config中标注磁盘此功能的目的是允许将内容分配给特定磁盘。比如,使用storage.config标注,在hosting.config和volumes.config规则里,你可以强制使某些URL去响应的SSD硬盘。HTTP事务缓冲控制为了避免潜在的内存消耗问题,当buffer的使用超过束缚则事物可被设成扼杀节流。这也可以用作每个事务的
2017-11-09 10:43:56
2487
原创 p2p打洞机制
tcp打洞首先我们明确现在我们有的设备:1、客户端A,网关NAT-A2、客户端B,网关NAT-B3、服务器S这些设备明确之后,就可以介绍TCP打洞的过程:1、首先服务器S开启两个服务监听,一个主连接端口,和一个协助打洞端口2、A通过主连接端口连接服务器S,B通过主连接端口连接服务器S,这个是正常的服务器通信3、当A需要和B进行直接连接时,首先A去连接服务器S
2017-11-03 15:56:52
2153
4
转载 ATS自定义日志中的各字段解读
refer http://blog.csdn.net/tao_627/article/details/45844287线上日志格式定义如下 % % % [%] % \"%\" % \"%\" %:% % \"%\" %"/>实例如下:1432194201.810 8945 200 200 [15:43:21] 211.143.88.220 "GET http://
2017-10-27 14:15:19
536
原创 socket那几个结构体那些事儿
struct sockaddr_in srvaddr; srvaddr.sin_family = AF_INET; srvaddr.sin_port = htons(8001); srvaddr.sin_addr.s_addr = inet_addr("127.0.0.1");熟悉吧sockaddr_in 是socket编程时 遇到
2017-10-27 10:59:47
668
转载 find常用操作总结
find [-path] -options [-print -exec -ok] -print是标准输出可以不加-exec对匹配的文件执行该参数所给出的shell命令 形式为command {} \;,注意{}与\;之间有空格 -ok与exec作用相同 区别是在执行命令之前 会给出提示 让用户确认是否执行 最常用的find . -name "*.txt" //查找当前目录下
2017-10-26 17:01:05
174
原创 grep常用操作
最最常用的一个 egrep "target" * -nR egrep 'l\{2,\}' 2.txtgrep -xf a.txt b.txt //查询a与b共同存在的行grep -vxf b.txt a.txt //查询a的行不在b文件中面的,就是a比b多出来的行grep -v '^h' test.txt //显示非以h开头的 grep -v '^hello' test.t
2017-10-26 16:18:32
323
原创 记录一下socket中常见的TCP设置
TCP_DEFER_ACCEPT 只有当实际收到了数据,才唤醒正在 accept 的进程,可以减少一些无聊的上下文切换。 同时有个超时时间 若time_out之内还没有收到数据,不会继续唤醒进程,而是直接丢弃连接。例如: 设置TCP_DEFER_ACCEPT选项后,服务器受到一个CONNECT请求后,操作系统不会Accept,也不会创建IO句柄。 操作系统应该在若干秒
2017-10-26 11:42:33
555
原创 iovec用法
#include#include#includeint main(){ static char part1[] = "["; static char part2[] = "manchester united"; static int part3 = 97; struct iovec iov[3]; iov[0].iov_base = part1; iov[
2017-10-25 11:00:21
1673
1
原创 markdown编辑器基本用法
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-10-12 15:25:25
402
转载 chrome+cVim手指不要再爽
cVim——Chrome上更强大的vim插件介绍也许很多人在chrome上都用过类似Vimium, ViChrome的插件,这些插件的目的都差不多,就是在浏览器中提供一些类似vim的操作来提高效率。但是大多这类的插件,实现的功能都比较单一化,实现了基本的浏览功能,但是不够强大。比如说 viusal 模式,就基本都不涉及。 机缘巧合下,发现了cVim插件,感觉就像打开了一扇全新的
2017-10-11 13:06:36
6186
5
原创 c语言中的static
静态全局变量,它可以被同一文件中的函数调用,但是不能被不同源文件中的所有函数调用。静态局部变量只能被其作用域内的变量或函数访问在C语言中,也有“private函数”,就是static函数 当你的程序中有很多个源文件的时候,你肯定会让某个源文件只提供一些外界需要的接口,其他的函数可能是为了实现这些接口而编写,这些其他的函数你可能并不希望被外界(非本源文件)所看到,这时候就可以用stati
2017-10-09 17:41:14
155
原创 ATS中常见的字符串操作2
比如把配置文件路径传递给一个状态机TSCont management_contp = TSContCreate(management_update, NULL); char *p = (char *)TSmalloc(config_path.size() + 1); strcpy(p, config_path.c_str());TSContDataSet(management_c
2017-09-27 16:28:03
306
转载 union和struct
#include int main(int argc, char** argv){ union { short i; struct { char a; char b; }str; }uni; uni.i = 0x4241; printf("%c
2017-09-26 10:28:31
200
原创 4 append_transform插件理解
先看一下代码#include #include #include #include "ts/ts.h"#include "ink_defs.h"#define ASSERT_SUCCESS(_x) TSAssert((_x) == TS_SUCCESS)typedef struct { TSVIO output_vio; TSIOBuffer output_buffe
2017-09-20 13:54:40
655
原创 p2p应该可以取代缓存业务吧
今天调试线上插件 预想去腾讯视频 提取出正片的url 找了好几个都没有找到正片urlso 插件里的那些流媒体编解码操作也失去了意义 突然发现现在的部分 比较吊的视频网站基本上都是p2pp2p我们做不了缓存 。。。。。。我问飞哥 将来所有的网站都用p2p那怎么办 他说:干一些其他的啊 转行。。。 我:哈哈哈哈哈哈哈哈哈嗝。。。
2017-09-11 21:02:04
226
原创 ATS中的 正向代理 反向代理
反向代理 :所有的请求经过302重定向后都指向我我就是服务器! 我对所有url请求进行 remap或者其他cgi处理我拿到资源后再返给用户 正向代理:就是透传 所有的url 不会有任何变化我就是浏览器也就是说 remap(反向代理) 和 透传(正向代理)是一对互斥事件 ats中只要打开了remap功能就 必须只 能够过滤remap.conf
2017-09-11 11:50:03
465
原创 dawm_uprising
GitHub - hankai17/dawn_uprising: data_struct testing ...
2017-09-10 13:35:28
258
12
关于字符串数组 做指针输入的问题
2016-04-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人