摘要:
一、不同算法策略特点小结 1、贪心策略 贪心策略一方面是求解过程比较简单的算法,另一方面它又是对能适用问题的条件要求最严格(即适用范围很小)的算法。 贪心策略解决问题是按一定顺序,在只考虑当前局部信息的情况下,就做出一定的决策,最终得出问题的解。 即:通过局部最优决策能得到全局最优决策 2、递推策略 阅读全文
摘要:
Trident Trident在storm之前提供了高层次抽象,抽象掉了事务处理和状态管理的细节,允许topology在数据上执行函数功能、过滤、聚合操作。 Trident topology TridentTopology类替换原有的TopologyBuilder。 TridentTopology 阅读全文
摘要:
storm集群 storm集群为主从集群结构。 主从结构中因为引入了单独故障的风险。 storm集群由一个主节点(nimbus)和一个或者多个从节点(supervisor)组成。 nimbus 负责管理、协调、监控在集群上运行topology。包括发布、任务指派、事件处理失败时重新指派任务。 记录所 阅读全文
摘要:
storm并发控制 storm计算支持在多台机器上水平扩容,通过将计算切分未多个多里的task再集群上并发执行来实现。 在storm中,一个task可以简单的理解为在集群某个节点上运行的一个spout或者bolt实例。 Node:storm集群下的多个服务器。 workers:一个node下的多个J 阅读全文
摘要:
核心概念 topology拓扑组成 storm分布式计算结构称为topology拓扑,由stream(数据流)、spout(数据流生成者)、bolt(运算)组成。 tuple storm的核心数据结构是tuple,tuple中包含了一个或者多个键值对的列表。 Stream由无限制的tuple组成的序 阅读全文
摘要:
消息有字节数组组成 消息Key也是一个字节数组 根据消息key的哈希码进行取模后写入不同分区,保证具有相同key的消息总是被写入到相同分区中 为了提供消息写入效率,支持消息的分批次写入,批次就是一组消息,每个批次的消息输入同一个主体和分区 为了减少网络消耗,批次数据会被压缩 kakfa使用AVRO格 阅读全文
摘要:
UnpooledDataSource每次实时获取connection 核心流程 UnpooledDataSource#getConnection(java.lang.String, java.lang.String) -> UnpooledDataSource#doGetConnection(jav 阅读全文
摘要:
SynchronizedCache核心代码 所有方法增加synchronized。 ScheduledCache核心代码 二级key缓存Map<Object, Object> entriesToAddOnCommit;Set<Object> entriesMissedInCache; getObje 阅读全文
摘要:
核心对象 当Map存储key数量超出初始化设置的size时,标记最老的key,下次put时会自行删除eldest key。 Map<Object, Object> keyMap = new LinkedHashMap(); 为什么使用LinkedHashMap?支持头、尾,快速获取头结点,从Map中 阅读全文
摘要:
核心代码 Deque<Object> keyList = new LinkedList<>(); 为什么使用LinkedList?单向链表。使用LinkedList实现FIFO,支持头、尾节点的单向链表。 添加时,判断数量大于初始化值时,删除头结点。 源码: public class FifoCac 阅读全文