羊羽'Blog

从Push Flag角度改善TCP的延时 [译]

当通过TCP进行通讯时,TCP协议会尝试通过将数据分块传输来优化性能。在进行文件和其他大数据传输时,这种方式的优化效果很好。 TCP实现这种优化的基础是TCP报文头里的Push Flag(PSH位)。 TCP报文头 发送端用PSH位来标记当前报文为一个数据块的结尾(例如:应用层协议头或应用层协议体被发送完时)。这个标记用来告知接受端的TCP协议层:立即将受到的数据通知给上层等待数据的应...

Zookeeper从入门到删库跑路

导语 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统...

发布Jar包到maven中央仓库

什么是maven中央仓库 maven是java世界最流行的构建工具,构建内容囊括了一个java项目的整个生命周期。 其中最重要的功能就是依赖管理,maven通过一个类似云的ftp站点统一管理所有java 的jar文件,同时给每个文件的每个版本一个统一的唯一坐标。 开发人员通过检索配置这些坐标,选择自己需要的构件搭建自己的项目环境。因此,通过一个叫做pom的描述文件,我们就可以在任何平台搭建...

国际标准时间格式ISO8601

日期表示法 年由4位数字组成YYYY,或者带正负号的四或五位数字表示±YYYYY。以公历公元1年为0001年,以公元前1年为0000年,公元前2年为-0001年,其他以此类推。 应用其他纪年法要换算成公历,但如果发送和接受信息的双方有共同一致同意的其他纪年法,可以自行应用。 月、日用两位数字表示:MM、DD。 只使用数字为基本格式。使用短横线”-“间隔开年、月、日为扩展格式。 ISO...

Mysql之用户认证授权管理

概述 Mysql的认证采用账号密码方式,其中账号由两个部分组成:Host和User;Host为允许登录的客户端Ip,User为当前登录的用户名。 授权没有采用典型的RBAC(基于角色的访问控制),而是每个用户关联一个资源权限列表。 认证信息存放在mysql.user表中,其中还包含了用户的全局权限。 授权信息主要存放在mysql.*_priv系列表中,提供了数据库,表,行等各个粒度的...

Github Packages和Github Actions实践之CI&CD

概述 Github在被微软收购后,不忘初心,且更大力度的造福开发者们,推出了免费私有仓库等大更新。近期又开放了packages和actions两个大招,经笔者试用后感觉这两个功能配合起来简直无敌。 GitHub Packages 是一个和每一个代码仓库关联的软件包仓库。通俗来说就是代码仓库中存放的是源码,软件包仓库中存放的是编译输出后的可以被各个语言生态的依赖管理工具直接依赖的lib。类...