技术

最终一致性和强最终一致性的区别

T796
0
最近学习了一些 CRDT(Conflict-free replicated data type,无冲突可复制数据类型)相关的知识,其中,提到,CRDT 满足强最终一致性,这是

使用 Easegress 实现 Telegram 翻译机器人

T3723
0
Easegress 2.0 版本大幅增强了流量编排功能,使用户无需编写任何代码,就可以通过编排多个 API 来实现一个超级 API。本文通过一个 Telegram 翻译机器人演示了这个功能。这个机器人可以自动将收到的消息翻译为中文、日文和英文,并且,除了文字消息,还支持翻译语音和图片消息。

无侵入式生产环境全链路压力测试

T3367
0
随着硬件性能的提升,网络带宽的增加和数据量的急剧增长,传统的单机应用已无法满足现代企业的需求,取而代之的是基于分布式的软件系统。这些软件系统在提供强大计算能力的同时,也引入了复杂性。本文介绍了一种新型的基于云原生架构的生产环境全链路压力测试技术—— Shadow Service,它通过实现业务一致性、数据一致性、资源一致性和各种隔离性,保证了测试结果的准确性和生产系统的安全。同时,我们也通过一个简化后的订单支付场景介绍了 Shadow Service 的具体使用方法。

使用 Easegress 和 WebAssembly 做秒杀

T3411
0
“秒杀”是一种经常被各家电商采用的,在短时间内提供超高折扣的促销方式。参与秒杀的商品数量一般很少,但巨大的折扣带来的流量请求激增往往会导致响应缓慢、拒绝服务,甚至宕机。 本文介绍了如何利用 Easegress 的 WasmHost 过滤器来保护秒杀中的后端服务。

无锁多线程那些事

T9687
0
无锁多线程相关概念和技术,包括原子操作、内存模型、内存顺序、CAS等。

首次抓到编译器 Bug

T1335
0
写代码这么多年,多次怀疑碰到了编译器 Bug,但最终却总是自己的责任,这次终于抓到了一个真正的编译器 Bug,记录一下。 最近公司的一个项目的编译

C++ 中的全局常量

T1616
0
前些天偶然注意到项目的头文件里定义了大量全局常量,也就是类似 const int foo = 5 这种。这些常量,有些是简单的数值型,但大部分是 CComBSTR、std

一个有趣的Bug

T374
0
今早一到公司,就看到隔壁组一堆人在讨论一个 Bug,足足半个多小时没有结果。人散了以后,一位同事找我帮忙看一下,发现是因为一个函数被递归调用导

检测 Lua 脚本中的死循环

T1127
0
论坛上有人问,所以把以前做的东西拿出来秀一下。 Lua 是一门小巧精致的语言,特别适用于嵌入其它的程序为它们提供脚本支持。不过脚本通常是用户编写的,