摘要: ACK——消息确认机制 在实际使用RocketMQ的时候我们并不能保证每次发送的消息都刚好能被消费者一次性正常消费成功,可能会存在需要多次消费才能成功或者一直消费失败的情况,那作为发送者该做如何处理呢? 为了保证数据不被丢失,RabbitMQ支持消息确认机制,即ack。发送者为了保证消息肯定消费成功 阅读全文
posted @ 2021-01-04 10:47 胜天、半子 阅读(2838) 评论(0) 推荐(0) 编辑
摘要: # 1. MQ介绍 ##1.1 为什么要用MQ 消息队列是一种“先进先出”的数据结构 其应用场景主要包含以下3个方面 * 应用解耦 系统的耦合性越高,容错性就越低。以电商应用为例,用户创建订单后,如果耦合调用库存系统、物流系统、支付系统,任何一个子系统出了故障或者因为升级等原因暂时不可用,都会造成下 阅读全文
posted @ 2020-12-20 10:49 胜天、半子 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 一.核心军规(5) 1.尽量不在数据库做运算 ①尽量不在数据库做运算 ②复杂运算移到程序端CPU ③尽可能简单应用MySQL 2.控制单表数据量 ①一年内的单表数据量预估 ,纯INT不超过1000W,含CHAR不超过500W ②合理分表不超载 Ⅰ做mysql集群,例如:利用mysql cluster 阅读全文
posted @ 2020-12-18 10:34 胜天、半子 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 1、B+Tree索引 1、B+Tree首先是有序结构,为了不至于树的高度太高,影响查找效率,在叶子节点上存储的不是单个数据,提高了查找效率; 为了更好的支持范围查询,B+树在叶子节点冗余了非叶子节点数据,为了支持翻页,叶子节点之间通过指针相连; 2、B+树算法: 通过继承了B树的特征,通过非叶子节点 阅读全文
posted @ 2020-12-17 17:08 胜天、半子 阅读(2770) 评论(0) 推荐(0) 编辑
摘要: 一.什么是索引 存储引擎用于快速找到记录的一种数据结构 二.索引的原理 通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据 三.索引的功能 加速查找 四.索引的分类 1.普通索引index :加速 阅读全文
posted @ 2020-12-17 17:03 胜天、半子 阅读(71) 评论(0) 推荐(0) 编辑
摘要: SQL语句中IN包含的值不应过多,不能超过200个,200个以内查询优化器计算成本时比较精准,超过200个是估算的成本,另外建议能用between就不要用in,这样就可以使用range索引了。 SELECT语句务必指明字段名称:SELECT * 增加很多不必要的消耗(cpu、io、内存、网络带宽); 阅读全文
posted @ 2020-12-17 16:32 胜天、半子 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 1.equals()方法和hashCode()方法是什么? equals()和hashCode()都是是Java中万物之源Object类中的方法; equals方法用于比较两个对象是否相同,Object类中equals方法的实现是比较引用地址来判断的对象是否是同一个对象,通过覆盖该方法可以实现自定义 阅读全文
posted @ 2020-12-15 13:58 胜天、半子 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 并发编程基础概念 计算机组成原理 1.现代计算机硬件原理图 冯·诺依曼计算机的特点 1. 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成2. 指令(程序)和数据以二进制不加区别地存储在存储器中3. 程序自动运行 运算器和控制器封装到一起,加上寄存器组和cpu内部总线构成中央处理器(C 阅读全文
posted @ 2020-12-07 21:10 胜天、半子 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 若Lambda体中的内容有方法已经实现了,我们可以使用“方法引用”,可以理解为方法引用是lambda表达式的另外一种表达形式 主要有三种语法格式: 对象 :: 实例方法名 类 :: 静态方法名 类 :: 实例方法名 被引用的方法的参数和返回值必须和要实现的抽象方法的参数和返回值一致 1.静态方法引用 阅读全文
posted @ 2020-12-07 19:29 胜天、半子 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 对于在作用域里定义的变量,作用域同时决定了它的“可见性”以及“存在时间”。在JAVA里,作用域是由花括号的位置决定的。JAVA用一对大括号作为语句块的范围,称为作用域,在作用域里定义的变量,只有在该作用域结束之前才可使用。 在JAVA中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。 * 阅读全文
posted @ 2020-12-07 13:46 胜天、半子 阅读(214) 评论(0) 推荐(0) 编辑