羊羽'Blog

一头扎进代码的汪洋大海...

展开讲讲之Unicode字符集和UTF编码

Unicode 为实现跨平台信息交换、展示设计的统一编码,目的是为世界上所有的字符分配一个唯一的数字编号。 编号有个别名叫【码点】,也就是说码点就是一个数字。 编号的空间或者说容量有17*65536(111.4万),可以容纳一百万个字符。 整个空间按种类、使用频率分为17组,每组2^16个字符(65536) 常用的、稳定的字符都放在了0号平面(BMP),编码为0-65535(两...

分布式任务调度核心原理

有一天,老板找到小明说:“公司都没有一个趁手的分布式任务调度系统,准备自研一个。组织经过慎重考察,决定把这个艰巨但光荣的任务交给你。你抓紧调研下,出个技术方案,尽快落地。要快~” 小明很懵,大大的眼睛盯着老板说:“我就是个curd boy,没做过,我不会呀” 老板说:“我会吗?美国佬会,苏联老大哥也会,可是他们不会白白的送给你!” 于是小明开始吭哧吭哧卷起来了。。。 ...

如何高效编排Dubbo异步请求

概述 在复杂的业务场景下,在处理一个请求时,可能会衍生出大量的向下游的请求。 如上图,处理一个上游请求时,会向下游发散请求10次,将10个下游接口返回的数据进行处理、归并后,完成自身业务逻辑处理并返回上游。 如果是串行的向下游发起10个请求,那整个请求处理的耗时将起码是10个下游响应RT之和,这样整个请求处理的性能会很差,无法满足C端链路上的SLA。 为此,开发同学一般会通过异步、并...

Mac开发提效之巧用make命令

概述 日常开发、测试工作中,大家一定会各个场景遇到一些流程繁琐但固定的动作,比如jar包发布、依赖检查等。 如果大家熟悉一门用起来糙快猛的脚本语言,那上述的很多流程其实都可以用命令脚本固定下来,比如shell、python等。 MacBook给了大家一个*unix开发环境,预装了简单易用、兼容性强的shell脚本引擎。 所以一般情况下都可以使用shell语句解决,大家比较常见的使用方式是写过...

浅析转义字符

TL;DR 转义字符不是天然存在的,它的实现需要各个应用程序自行实现字符串转义解释器来进行解释、替换。 概述 转义字符(Escape Character)是指在ASCII码和Unicode等字符集中的无法被键盘录入的字符、被当作特殊用途而需要转换回它原来的意义的字符。而转义字符的转义是指字符已经被转换了意义。 一直到前段时间我都认为转义字符是公共的、统一的、规范的约定,然而当我深入的...

Java正则表达式要点和案例

概述 正则表达式是文本处理的一大利器。在文本的校验、查找、替换三个场景下有巨大的代码提效效果,本文主要介绍JDK中java.util.regex包提供的对正则表达式的支持。 java.util.regex有三个核心类: Pattern类:Pattern是一个正则表达式的编译表示。 Pattern类是一个比较重的类,它的初始化伴随着正则解析。它是线程安全的,使用过程中注意单例、重用...

工作中好用的命令行工具

tcpdump 工具简介 https://www.tcpdump.org/manpages/tcpdump.1.html https://www.tcpdump.org/manpages/tcpdump.1.html tcpdump是一款被各个linux发行版广泛预装的软件,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截...

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

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

Docker之常用命令

全局选项 –config string Location of client config files (default “/root/.docker”) -D, –debug Enable debug mode -H, –host list Daemon socket(s) to connect to -l...

常用变量名命名单词

概述 书到用时方恨少,每逢命名就挠头。 动词 bind 绑定 resolve 解析,处理 parse 解析 handle 处理 process 处理 display 展示 merge 合并 call 调用 run 调用 refresh 刷新 load 载入,加载,装载 init 初始化 obtain 获取 access 访问,触及 ...