Loading...
kafka如何保证不重复消费又不丢失数据参考文章:kafka 如何保证不重复消费又不丢失数据?kafka消息丢失发送时丢失用Producer发消息至Broker的时候,有可能会丢消息带有callBack的api进行发送,如果发送成功回调方法会收到成功,如果失败,在业务上做重试。设置retries参数,发送失败自动重试Broker收到消息后丢失broker收到消息,还没同步给其他broker就...
MVCC原理详解参考文章: 看一遍就理解:MVCC原理详解什么是MVCC?MVCC,即Multi-Version Concurrency Control (多版本并发控制)。它是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。通俗的讲,数据库中同时存在多个版本的数据,并不是整个数据库的多个版本,而是某一条记录的多个版本同时存在,在某个事务对其进行...
两个单链表是否相交两个有环或者无环的单链表是否相交判断一个单链表是否有环如何判断一个单链表是否有环?有两种方式:hashSet可以从头结点开始遍历,每遍历一个节点,判断set中有没有该节点,如果没有就放入set中,如果有就说明链表有环,然后直接返回,如果遍历完set中都没有重复的节点,说明链表无环。双指针定义两个指针,一个fast快指针,每次走两步,一个slow指针,每次走一步,如果链表有环...
简单排序二分法与异或运算排序选择排序假设有一个长度为N的数组,选择排序的过程就是,从0~N-1中选出最小值,与0位置交换,再从1~N-1中选出最小值与1位置交换,再从2~N-1中选出最小值,与2位置交换,以此类推直到N-2~N-1结束。代码实现public static void sort(int[] arr) { if (arr == null || arr.length ...
高性能进程缓存caffeine简介缓存是一个很好的增加查询速度的解决方案,也就是用空间换时间,通常本机缓存可选方案有多种:ConcurrentHashMap/HashMap: 利用HashMap作为缓存方案,有点是JDK原生支持,缺点是没有淘汰策略与过期机制,需要自己实现。GuavaCache: Google实现的一套本地缓存方案,有超时机制,使用简单。caffeine: 在设计上参考了G...
Redis列表list底层原理原文地址: https://zhuanlan.zhihu.com/p/102422311在版本3.2之前,Redis列表list使用两种数据结构作为底层实现:压缩列表ziplist双向链表linkedlist因为双向链表占用的内存比压缩列表要多, 所以当创建新的列表键时, 列表会优先考虑使用压缩列表, 并且在有需要的时候, 才从压缩列表实现转换到双向链表实现。压...
FastDFS结合FastDHT实现文件去重FastDFS去重实现存储文件时,为了节省存储空间,需要实现文件去重,即同一份文件只在服务器上存储一份。一种实现是文件上传后先落地到应用服务器上,计算MD5并存储到数据库中,然后决定是否上传存储服务器。这样做的缺点是应用服务器端需要做并发控制,实现相对来说比较复杂。FastDFS本身支持文件的排重处理机制,但需要FastDHT作为文件hash的索引...
Elasticsearch-ELK(二)Logstash开源的流数据处理、转换(解析)和发送引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种数据源。Logstash是ELK Stash的重要组成部分。工作原理Logstash的数据处理过程主要包括: Inputs、Filters、Outputs三部分,如图:Inputs: 用于从数据源获取数据,常见的插件如beats、file...
Elasticsearch-ELK(一)什么是ELK?E: Elasticsearch-数据存储、分析L: LogStash-日志采集K: Kibana-日志展示为什么用ELK普通日志的缺点:开发人员不能登录生产服务器查看日志一个应用可能分布于多台服务器,难以查找同一台服务器可能部署多个应用,日志分散难以管理会产生大量磁盘IO,可能会占用大量磁盘空间,严重时可能会造成节点宕机查询速度慢,不支...
Elasticsearch(八)模糊搜索前缀搜索匹配以搜索关键词开头的索引,不计算相关度评分,和filter比,没有bitcache。前缀搜索性能差,应该尽量把前缀长度设置的更长。PUT my_index { "mappings": { "properties": { "text": { &q...