摘要:
1.什么是幂等性 幂等是一个数学与计算机学概念,在数学中某一元运算为幂等时,其作用在任一元素两次后会和其作用一次的结果相同 在计算机中编程中,一个幂等操作的特点是 其任意多次执行所产生的影响均与一次执行的影响相同 幂等函数或幂等方法是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影 阅读全文
摘要:
Kafka 是什么?主要应用场景有哪些? Kafka 是一个分布式流式处理平台。 流平台具有三个关键功能: 消息队列:发布和订阅消息流,这个功能类似于消息队列,这也是 Kafka 也被归类为消息队列的原因。 容错的持久方式存储记录消息流:Kafka 会把消息持久化到磁盘,有效避免了消息丢失的风险。 阅读全文
摘要:
什么是消息队列? 可以把消息队列看作是一个存放消息的容器,当我们需要使用消息的时候,直接从容器中取出消息供自己使用即可。由于队列 Queue 是一种先进先出的数据结构,所以消费消息时也是按照顺序来消费的。 参与消息传递的双方称为 生产者 和 消费者 ,生产者负责发送消息,消费者负责处理消息。消息队列 阅读全文
摘要:
脑裂:指由于网络分区或者硬件故障等原因,导致 Redis 集群中的节点互相失去连接,出现多个主节点为客户提供写服务,这种情况下可能会导致数据丢失;场景一 在哨兵进行选举,故障转移的过程中,原主节点恢复和客户端的通信,这时客户端依旧可以向原主节点正常通信,这就是脑裂产生的第一个场景。 场景二 网络分区 阅读全文
摘要:
1.过滤敏感词 帖子发布之前,需要经过敏感词过滤步骤,这里需要编写一个敏感词过滤器 前缀树: 名称:Trie、字典树、查找树 特点:查找效率高,消耗内存大 应用:字符串检索、词频统计、字符串排序 (1)定义前缀树 为方便处理,定义一个敏感词文件,resources目录下新建一个sensitive-w 阅读全文
摘要:
https://www.jb51.net/article/259791.htm 阅读全文
摘要:
当数据库出现一些读写性能瓶颈时,优先使用增加索引、优化索引结构、读写分离、使用从库等常规优化手段解决,分库分表是最终的优化手段,且在分库分表前要先考虑业务未来三到五年的数据增长需求,防止经常分库分表改变结构带来的代价。 垂直分表 垂直分库 垂直分库,主要还是想让多个服务器共同分担请求压力。 一般叫【 阅读全文
摘要:
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 一、设计模式的分类 总体设计模式分为三大类: 创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型 阅读全文
摘要:
final 是 Java 中的一个关键字,简而言之,final 的作用意味着“这是无法改变的”。 final 关键字一共有三种用法,它可以用来修饰变量、方法或者类。 (1)final 修饰变量 作用:这个变量一旦被赋值就不能被修改了,也就是说只能被赋值一次,如果我们尝试对一个已经赋值过 final 阅读全文
摘要:
1.内存溢出(Out Of Memory,简称OOM) 应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存,此时程序就运行不了。 (1)堆溢出这种场景最为常见,报错信息:java.lang.OutOfMemoryError: Java heap space 阅读全文