avatar
Articles
65
Tags
48
Categories
17

梦之痕

梦之痕

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)。为了与“真头 ...
部署Nginx搭建HTTPS服务器
Created2024-02-04|后端&架构
1 安装Nginx本次安装的nginx版本为1.15.9,基于CentOS7.7系统默认自带的OpenSSL 1.0.2k-fips 1.1 下载源码12345# 下载[root@baihl baihl]# wget http://nginx.org/download/nginx-1.15.9.tar.gz#解压[root@baihl baihl]# tar -xvf nginx-1.15.9.tar.gz 1.2 编译安装1234567891011#进入解压后的nginx源码目录[root@baihl baihl]# cd nginx-1.15.9/#配置参数,配置参数中增加--with-http_ssl_module,为了支持ssl./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module#编译[root@baihl baihl]# make#安装[root@baihl baihl]# make install 1.3 验证安装完成之后,则可以在刚才指定 ...
LVS 四层负载均衡
Created2024-02-04|后端&架构
OSI七层和TCP/IP四层模型 四层和七层负载均衡的定义四层:所谓四层就是基于IP+端口的负载均衡七层:所谓七层就是基于应用层(URL等)信息的负载均衡 七层负载均衡时,数据包在经过TCP/IP内核协议栈后会进入用户空间,然后根据端口号交给不同的用户程序进行处理,如下图: 四层负载均衡不会进入用户空间,在内核空间处理完就转发出去。 四层和七层负载均衡对比 四层负载均衡 七层负载均衡 在大型站点使用,接入层最前端 中小站点 结合四层+七层使用 只使用七层负载均衡 优缺点 四层比七层可以承载更大的并发量,大型站点使用 七层可以实现更为复杂的负载均衡控制,比如:基于URL、基于Session、动静分离等 七层会占用大量的CPU事件,更耗费性能,所以承载的并发量小 LVS介绍LVS的组成 LVS相关术语 DS Director Server 目标服务器,即负载均衡器 RS Real Server 真实服务器,即后端服务器 VIP 直接面对用户的IP地址,通常为公网IP地址 DIP Director Server IP 主要用于和内部主机通信的I ...
深入理解Nginx:模块开发与架构解析
Created2024-02-04|后端&架构
0 参考资料书中示例代码 Nginx 源码注释:https://github.com/chronolaw/annotated_nginx 2 如何编写HTTP模块2.7 Nginx提供的高级数据结构12345- ngx_queue_t 双向链表- ngx_array_t 动态数组- ngx_list_t 单向链表- ngx_rbtree_t 红黑树- ngx_radix_tree_t 基数树 第3部分 深入Nginx8 Nginx 基础架构8.2.1 Nginx的模块化设计ngx_module_t接口及其对核心、事件、HTTP、mail等4类模块ctx上下文成员的具体化: 官方Nginx共有五大类模块:核心模块、配置模块、事件模块、HTTP模块、mail模块。这五类模块中,配置模块与核心模块是与Nginx框架密切相关的,是其他模块的基础。而事件模块是HTTP模块和mial模块的基础。HTTP模块和mail模块的“地位”相似,都更关注于应用层面。在事件模块中,ngx_event_core_module事件模块是其他有事件模块的基础;在HTTP模块中,ngx_module_core_m ...
02 - 深度学习算法(必修)
Created2024-02-01|人工智能&大数据
0 参考资料书籍推荐 统计学习方法 (第2版) 动手学深度学习(PyTorch版) 课程推荐 专为程序员设计的高等数学 程序员的数学基础课 专为程序员设计的统计课 专为程序员设计的线性代数(课程代码) 《深度学习必修课》 深度学习中运用到的数学知识是很多,但没必要陷入去研究数学,重在理解,够用即可。 Markdown数学公式、符号 conda工具常用命令: conda activate env_name # 切换至 env_name 环境 conda deactivate # 退出环境 conda info -e # 显示所有已经创建的环境 或者 使用 conda env list conda list # 查看所有已经安装的包 conda install package_name # 在当前环境中安装包 conda remove package # 删除当前环境中的包 conda create -n env_name package_name # 创建名为 env_name 的新环境, ...
iterm2 + oh-my-zsh 终端配置完整教程
Created2024-01-13|工具使用
0 参考资料https://zhuanlan.zhihu.com/p/550022490 iterm2奇技淫巧:https://zhuanlan.zhihu.com/p/522534821iterm2用法技巧:https://lhajh.github.io/mac/2018/04/25/Iterm2-usage-and-skills.html 2 安装oh-my-zshoh-my-zsh更强大的命令行工具,解放双手,比系统自带bash更加酷炫、高效,可以实现更强大的命令补全,命令高亮等一系列酷炫功能。同时支持各种自定义选项,并支持扩展。 1sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" 2.1 安装配色库1git clone https://github.com/mbadolato/iTerm2-Color-Schemes.git 在schemes文件夹中找到 Solarized Dark Higher Contrast.iter ...
Maven依赖管理项目构建工具
Created2024-01-12|工具使用
一、Maven简介1、为什么学习Maven1.1、Maven是一个依赖管理工具①jar 包的规模 随着我们使用越来越多的框架,或者框架封装程度越来越高,项目中使用的jar包也越来越多。项目中,一个模块里面用到上百个jar包是非常正常的。 比如下面的例子,我们只用到 SpringBoot、SpringCloud 框架中的三个功能: Nacos 服务注册发现 Web 框架环境 视图模板技术 Thymeleaf 最终却导入了 106 个 jar 包: org.springframework.security:spring-security-rsa:jar:1.0.9.RELEASE:compilecom.netflix.ribbon: ribbon:jar:2.3.0:compileorg.springframework.boot:spring-boot-starter-thymeleaf:jar:2.3.6.RELEASE:compilecommons-configuration:commons-configuration:jar:1.8:compileorg.apache.logg ...
Flink 基础教程
Created2024-01-04|人工智能&大数据
0 参考资料0.1 学习资料 2022 Flink 学习路线总结 学习经验 0.2 推荐书籍 《Flink大数据分析实战》 Flink入门与实战 Flink基础教程 Flink原理、实战与性能优化 1 初识 Flink1.1 大数据开发总体架构 总体架构图 数据来源层 在大数据领域,数据的来源往往是关系型数据库、日志文件(用户在Web网站和手机App中浏览相关内容时,服务器端会生成大量的日志文件)、其他非结构化数据等。要想对这些大量的数据进行离线或实时分析,需要使用数据传输工具将其导入Hadoop平台或其他大数据集群中。 数据传输层在大数据领域,数据的来源往往是关系型数据库、日志文件(用户在Web网站和手机App中浏览相关内容时,服务器端会生成大量的日志文件)、其他非结构化数据等。要想对这些大量的数据进行离线或实时分析,需要使用数据传输工具将其导入Hadoop平台或其他大数据集群中。 数据存储层数据可以存储于分布式文件系统HDFS中,也可以存储于分布式数据库HBase中,而HBase的底层实际上还是将数据存储于HDFS中。此外,为了满足对大量数据的快速检索与统计,可以使 ...
Git 使用手册
Created2024-01-02|工具使用
0 参考资料 一文让你了解如何为 Git 设置代理 1 Git 基本使用1.1 配置 Git使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用git config命令进行配置: 12345678910git config --global user.name “BaihlUp”git config --global user.email “2677443264.com”git config --global credential.helper store #保存登陆信息,以后不用每次都输入密码cat ~/.git-credentials #登陆票证信息git config --global push.default "current" #设置每次默认push的分支为当前分支如果使用ssh则:ssh-keygen -t rsa -C "邮箱"[root@baihl testWaf]# git push origin devUsername for 'https:/ ...
1…4567
avatar
梦之痕
Articles
65
Tags
48
Categories
17
Follow Me
Announcement
个人笔记迁移中ing....
Recent Post
eBPF核心技术与实战2025-07-25
10 - 大模型RAG进阶实战营2025-05-28
大模型 RAG 的应用和开发2025-04-29
06 - WASM 插件开发2025-02-12
记录访问 HTTPS 网站报错问题2024-09-28
Categories
  • AI大模型2
  • Go & Python6
  • Java & Lua7
  • Linux 内核1
  • 人工智能&大数据4
  • 信息安全3
  • 后端&架构8
  • 工具使用3
Tags
MySQL 云原生 系统优化 系统架构设计师 Maven 杂文 Git 深度学习 程序设计 算法 Flink 设计模式 HTTP3 HTTP2 Tongsuo ebpf OpenResty wasm 大模型微调 流量控制 Nginx 国密 Istio Linux内核 LVS 算法题解 数据库 Kubernetes 微服务架构 DPDK Calico LangChain Redis 铜锁 TLCP Java Python RAG Helm VPP
Archives
  • July 20251
  • May 20251
  • April 20251
  • February 20251
  • September 20242
  • August 20244
  • July 20244
  • June 20244
Info
Article :
65
UV :
PV :
Last Update :
©2020 - 2025 By 梦之痕
Framework Hexo|Theme Butterfly