一篇带你搞懂 java 集合 集合是java的基础。我们有了集合,在我们开发过程中,事半功倍。我们常用的集合有这几类Array,Map,Set,Queue等,他们每一类在java迭代升级的过程中,也是有不同的升级优化。
BloomFilter怎么用?使用布隆过滤器来判断key是否存在? 今天跟一个同事聊了一个问题,说最近在做推荐,如何判断用户是否看过这个片段呢?想了一下,正好可以使用布隆过滤器来完成这个需求。布隆,可不是LOL的布隆。我们的这个布隆是一个叫布隆的外国人,在1970年提出的一种方案:如果判断这个key不存在,那么就一定不存在,如果key存在,那么有可能不存在。所以不存在的时候,你永远可以详细布隆。布隆过滤器是一个高空间利用率的概率性数据结构,由Burton Bloom于1970年提出,用于测试一个元素是否在集合中。新创建的布隆过滤器是一串被置为0的Bit数组(假设有m位),
【Spring】每个程序员都使用Spring(二)——IOC 一、前言这一段时间,想重新学习一下Spring,想通过博客+思维导图的形式来记录一下Spring。在上一篇博客中,小编向大家介绍了Spring是什么、spring是怎么发展的。用过spring的程序员都知道spring的核心是IOC和AOP。在这篇博客中,小编就向大家分享一下小编理解的IOC。二、什么是IOC?............
【MQ】kafka(四)——kafka消费者如何消费的?如何防止重复消费?如何顺序消费? 前面博客小编向大家分享了 kafka如何保证消息不丢失?,基本是从producer和broker来分析的,producer要支持重试和acks,producer要做好副本和及时刷盘落地。这篇博客呢,就跟大家一起聊一下 kafka 消费者如何消费的?如何避免重复消费?消费流程:一般我们消费测试是不会变的,都使用默认的,也就是第一种,range策略。默认策略,保证基本是均衡的。计算公式 :n = 分区数/消费者数m = 分区数%消费者数前m个消费者,消费n+1个,剩余的消费n个eg:12个par
【MQ】kafka(三)——如何保证消息不丢失?如何解决? 前一篇博客我们介绍了生产者为什么发送消息的吞吐量这么大,其实就是因为,生产者提供了内存缓冲区,把消息打包再发送,从而提高了吞吐量。那么,消息发送过去,到了broker就算是成功了吗?会不会丢失呢?这篇博客,就向大家介绍一下 kafka在什么情况下会出现消息丢失以及解决方案。首先我们还是要看一下,kafka的架构图:因为我们有三个角色:生产者,broker,消费者。消费者是消费消息,一般不会丢失,那么消息丢失就会出现在 生产者和 broker之间。当我们在配置生产者的时候,我们会有一个配置文件,这个配置文
【MQ】kafka(二)——生产者写入为什么这么快?为什么吞吐这么高? 前面一篇博客,小编向大家宏观介绍了kafka是什么,在系统中干什么,以及一些kafka相关的名词介绍。这篇博客呢,小编就向大家介绍一下,生产者怎么把消息发到broker的?以及生产者发送的方法为什么吞吐量这么高?小编遇到的项目中,一般高峰期的时候,速度是7300条/秒,当搞活动的时候,速度会更高。我们先来看一下生产者写入数据的流程,然后再来分析一下生产者的内存模型。这里如果我们开启了acks = -1 的情况下, 要等所有的follower都要拉去日志完毕后,leader才会返回ack。其他问法:
mongodb监听oplog 全量+增量同步 一、前言前一个项目中,涉及到了一次数据迁移,这次迁移需要从mongodb迁移到另一个mongodb实例上,两个源的数据结构是不一样的。涉及到增量和全量数据迁移,整体迁移数据量在5亿左右。本篇即讲理论,也讲实战,往下看↓!二、迁移思路通常的增量和全量迁移,思路基本一致:在开启全量的时候,开始增量监听,记录下增量的主键id当全量执行结束的时候,从新跑一边记录的增量主键id的记录,根据getbyId查询一下最新的记录,再upsert到新库中。思路就是这么样的。三、同步实战全量同步全量的操作
ES index生命周期配置 一、前言PUT _ilm/policy/AAAAAA_policy{ "policy": { "phases": { "hot": { "min_age": "0ms", "actions": { "rollover": { "max_size": "100mb" }, "set_priority": { "priority": 100
mysql explain key_len是如何计算的? 表结构索引情况:explain执行计划key_len是如何计算的?决定key_len值的三个因素:1.字符集2.长度3.是否为空常用的字符编码占用字节数量如下::目前我的数据库字符编码格式用的:UTF8占3个字节。mysql常用字段占用字节数:字段类型占用字节数char(n)nvarchar(n)n + 2tinyint1smallint2int4bigint8date3timestamp4da
mysql日志分析工具之mysqlsla 一、前言当我们使用自己搭建的mysql的时候,如何排查慢日志呢?如何对慢日志进行分析呢?下面介绍两款常用的慢日志分析工具:mysqldumpslowmysqlsla二、mysqldumpslow这是一款mysql自带的慢查询工具,个人使用下来发现,可以满足在很多慢日志中找到有问题的慢的sql,并且可以进行sql排序。属于一种短小精干的工具。得到返回记录集最多的10个SQL。mysqldumpslow -s r -t 10 /var/lib/mysql/test_mysql_slow.
PMP——项目运行环境 一、前言 项目运行环境是项目健康生张的土壤,包含:事业环境因素,组织过程资产,组织系统。二、全局观三、介绍事业环境因素组织内愿景、使命、价值观、企业内部软件 硬件条件组织外法律、法规、标准、规范、市场、经济、自然环境组织过程资产过程、政策和程序模板 手册 指南 流程 政策 程序eg:项目立项要那些步骤验收要满足什么?PMO整理的计划模板,操作手册,管理指南组织知识库知识、经验、教训、数据、信
PMP——项目管理介绍 一、前言 本节带来,项目管理介绍。二、内容2.1 项目 项目是为创造独特的产品、服务或成功而进行的临时性工作。就是三个特点: 独特性,临时性,不确定性。项目VS运营项目运营独一无二重复多次有始有终持续不断成功就成功逐步渐进责权不均衡责权均衡临时组织稳定组织效果向导效率向导不确定性确定
PMP 项目管理师 认识和学习路线规划 一、什么是PMP? 什么是pmp呢?project management professional 项目管理专业人士资格认证。由美国项目管理协会(Project Management Institute,简称PMI)发起的,严格评估项目管理人员知识技能是否具有高品质的资格认证考试。全球206个国家认可 总的来说呢,pmp是一个项目管理认证的考试
缓存刷新类 package com.soybean.message.util;import com.ctrip.framework.apollo.ConfigService;import com.soybean.common.utils.basic.CollectionUtil;import com.soybean.common.utils.basic.JsonUtil;import com.soybean.common.utils.basic.StringUtil;import com.soybean.m
list 根据某个字段分组 java8之前List分组假设有个student类,有id、name、score属性,list集合中存放所有学生信息,现在要根据学生姓名进行分组。public Map<String, List<Student>> groupList(List<Student> students) { Map<String, List<Student>> map = new Hash<>(); for (Student student : stu
java8新特性:对map集合排序,根据key或者value操作排序(升序、降序) package com.drew.test;import java.util.List;import java.util.Map;import com.google.common.collect.ImmutableMap;import com.google.common.collect.Lists;import com.google.common.collect.Maps;/** * @author zero 2019/04/08 */public class Java8future
List<对象> 取其中的某个属性 List<id> public class UserEntity implements Serializable { private Integer id; /** * 用户名 */ private String userName; /** * 用户手机号 */ private String phone;} public static void main(string args[]){ List&l