中间件__

本文深入探讨了中间件的基础知识,包括数据结构、线程池、NIO和Netty。提到了面对分库分表时如何引入ES实现读写分离,以及日志采集的ELK解决方案。在基础部分,详细阐述了数组、HashMap、TreeMap和LinkedHashMap的数据结构特性。线程池部分讲解了线程池的创建和工作原理,以及线程池模式如Future模式和生产者-消费者模式。此外,文章还涵盖了RocketMQ的内存管理和文件管理策略,以及Dubbo和RocketMQ的比较和使用场景。
摘要由CSDN通过智能技术生成

常用架构

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
面对分库分表可能join的操作,容易造成内存不够,引入es(数据异构 + 宽表),实现读写分离
在这里插入图片描述

日志采集(ELK,Logstash(日志收集过滤)、Elasticsearch、Kibana(可视化))
在这里插入图片描述

基础

数据结构

数组:rocketmq索引文件与数据文件分离,数据文件顺序写入保证高性能,索引文件是定长的(包含数据文件的偏移位置,长度和tag字段,tag字段不是定长的,为了利用数字快速访问的特点,tag字段存储的tag的hash值保证定长)
HashMap:哈希表(数组)和链表(红黑树)的结合,扩容尾插法
TreeMap(有序):rocketmq中实现一致性hash算法;TreeMap 的 TailMap 是返回大于等于 key 的子树,然后调用子树的 firstKey 获取 TreeMap 中最小的元素,符合一致性哈希算法的命中规则
LinkedHashMap:LRU,LinkedList和HashMap的结合,在HashMap的基础上加了before和after指针保证顺序性(按节点插入顺序默认的,或者按照节点访问顺序),实现LRU
PriorityQueue:数组存储,通过父子节点的关系来计算位置;JUC定时任务调度ScheduledExec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值