mengsky 发布的文章

Service Mesh - CNCF新玩具Linkerd

Service Mesh 服务网格这个概念出来不到一年,和K8S相辅相成,他侧重于微服务之间的通信基础架构。基于此实现微服务的高可用、路由、熔断、负载均衡,说白了就是一个大号的nginx里面配了一堆规则,但是目前国内还没有看过哪家公司大规模使用。目前来看Service Mesh都是一些尝试性的实验很多功能还是不完善,限流功能太鸡肋不能做到精确限流做不到针对某些服务限流,降级熔断功能?不存在的。Linkerd 目前最新版本1.3.3官方宣称修复内存泄露,用了比较重的Java框架来实现,测试下来4G内存空载都会炸,话题结束。

Continue Reading...

kubernetes nginx graceful scale & update

What is graceful scalekubernetes应用slb+多个Pod部署时,某些Pod容器终止时不丢弃请求,用户无感知。以HTTP为例,切断容器入向流量,等待应用接受的请求全部执行完毕,再关闭容器进程。注意,官方文档preStop阶段nginx -quit根本不清真,自己ab一下就会发现问题。How参考kubernetes1.8的文档 https://kubernetes.io/docs/concepts/workloads/pods/pod/ 似乎kubernetes关闭容器时并不会事先切走流量,可以通过实验证实,假设现有1个部署,包含两个nginx容器,通过slb负...

Continue Reading...

OpenResty实现自定义粒度的文件缓存

nginx默认的proxy_cache模块支持自定的proxy_cache_key,通过OpenResty对内部变量cache_key赋值可以实现更复杂的缓存规则。proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=files:10m inactive=2h max_size=100g; server { listen 80; server_name name; location /files { set $cache_key ''; con...

Continue Reading...

Java RSA/ECB/NoPadding in C# Python

某客户端中抠出来的代码,实现如下其中e(公钥指数)与n(模)硬编码在坑爹雷的某个客户端中。public static PublicKey getPublicKey(String paramString1, String paramString2) { RSAPublicKeySpec localRSAPublicKeySpec = new RSAPublicKeySpec(new BigInteger(paramString1, 16), new BigInteger(paramString2, 16)); System.out.println(bytes2hex...

Continue Reading...