1. 幂等性设计1.1 引入目的生产者重复生产消息.生产者进行retry会产生重试时,会重复产生消息.有了幂等性之后,在进行retry重试时,只会生成一个消息. 1.2 幂等性实现1.2.1 PID 和 Sequence Number为了实现Producer的幂等性,Kafka引入了Producer ID(即PID)和Sequence Number. PID.每个新的Producer在初始化的时候会被分配一个唯一的PID,这个PID对用户是不可见的.Sequence Numbler.(对于每个P…
Kafka 提供了一个消息交付可靠性保障以及精确处理一次语义的实现.通常来说消息队列都提供多种消息语义保证 最多一次 (at most once): 消息可能会丢失,但绝不会被重复发送. 至少一次 (at least once): 消息不会丢失,但有可能被重复发送. 精确一次 (exactly once): 消息不会丢失,也不会被重复发送. 默认情况下社区维护的 python-kafka 包会使用 ack1 但是 retry 0 的设置,也就是说 python-kafka 不会对发送失败的消息进…
微信小程序0.11.122100版本新功能解析   新版本就不再吐槽了,整的自己跟个愤青似的.人老了,喷不动了,把机会留给年轻人吧.下午随着新版本开放,微信居然破天荒的开放了开发者论坛.我很是担心官方能不能承受住开发者的愤怒. 还好,小龙兄很聪明,发帖要审核.我就在帖子里反馈了下bug,顺便劝了下腾讯,做不好小程序还是去卖皮肤吧.10秒钟后帖子就被封了. 群里有同学问,你不是说要大家支持小程序么,毕竟是国人这么多年唯一有点儿希望比肩iOS和Android生态的平台.当然要支持.但该喷的还是得喷,…
MySQL 8.0 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 注意:从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级,并且不支持从 MySQL 8.0 降级到 MySQL 5.7(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本).唯一受支持的替代方案是在升级之前对数据进行备份. MySQL 8.0是全球最受欢迎的开源数据库的一个…
网格即插即用(GPnP) 网格即插即用帮助管理员来维护集群,以前增加或删除节点需要的一些手动操作的步骤现在可以由GPnP来自动实现. GPnP不是一个单独的概念,它依赖于以下特性:在一个XML配置文件中储存集群信息:集群时间同步(CTSS):网格命名服务(GNS):单一客户端访问名称(SCAN):服务器池(Server Pools). GPnP为公网和私网连接.ASM spfile.CSS投票盘定义了元数据网络接口,profile.XML文件通过wallet保护以避免被修改.如果你需要手动修改p…
多生产者多消费者问题 以生产馒头 消费馒头为例. class Resource { private String name; private int count = 1; private boolean flag = false; public synchronized void set(String name) { if (flag) { try { this.wait(); } catch (Exception e) { // TODO: handle exception } } this.…
jdk 9 新特性 1.集合加强 jdk9 为所有集合(List/Set/Map)都增加了 of 和 copyOf 方法,用来创建不可变集合,即一旦创建就无法再执行添加.删除.替换.排序等操作,否则将报错: java.lang.UnsupportedOperationException 异常. 一般在特定场景下使用. List strs = List.of("Hello", "World");       List strsCopy = List. copyOf(s…
这个特性很赞,直接给例子吧,假如我要设计一个类,CachedFetcher内部可能使用std::map也可能使用std::unordered_map,也可能是其它的map,怎么设计呢?没有C++11变长模板之前这很费劲.. 因为map的模板参数可不是只有key,value两个啊,还有一些有默认参数的template参数...     template<typename _Key, typename _Value, template<class _Kty, class _Ty, typename…
3.1.9崭新的Template特性 Variadic Template 可变参数模板 void print() { } template <typename T, typename… Types> void print (const T& firstArg, const Types&… args) { std::cout<<firstArg<<std::endl; print(args); } 如上,如果传人1或多个实参,上述的function tem…
1 语法 Lambdas并不是新概念,在其它语言中已经烂大街了.直接进入主题,先看语法: [ captures ] ( params ) specifiers exception attr -> ret { body } (1) [ captures ] ( params ) -> ret { body } (2) [ captures ] ( params ) { body } (3) [ captures ] { body } (4) captures:捕获参数.详细格式见下图. 格式 意…