使用 Minio 为阿里云 OSS 提供 AWS S3 兼容 API

Summary

不可否认,现在互联网的一个大「单点」就是对象存储 Amazon S3 了,大量的应用使用了 S3 的 API,这带来了一个问题,就是应用难于迁移。虽然改客户端这层这个方法,但毕竟侵入性太大,对于一个拥有众多服务的系统来说,实现的成本比较高。

还有另外一种方案,就是提供一个 Gateway,提供与 S3 兼容的 API 供原来的客户端使用;中转请求后打入其它类型的对象存储中(本文为阿里云 OSS)。

解决 AWS ELB 偶发的 502 Bad Gateway 错误

问题描述

在使用了 Prometheus 做了 HTTP 协议的监控之后,blackbox_exporter 偶尔会报一些 ProbeDown 的报警,经过检查是 502 Bad Gateway 错误,但此时后端是正常的,只是在 AWS ELB 的监控指标中,看到了 ELB HTTP 5xx 相关错误,因此困扰了一段时间。

HTTP 数据流向如下:

1
[Client] --- [ELB] --- [nginx] --- [App Servers]

排查问题

在 Python 中统计文本字符个数

字符集向来都是一个大问题,即使是 Python 3.x,也最多只是能说感谢 Unicode 字符集,字符串的存取现在没有问题了。

Unicode 字符集的常见编码UTF-8UTF-16UTF-32 等常见格式,另外,GB18030 也可以算其中一种( GB18030,与 UTF-8 类似,是一种变长编码格式,最大的优势就是兼容 GBK/GB2312

但是 Unicode 就能无痛的解决所有问题吗?答案是否定的。