本算法工具集,是于本人兴趣使然(一年工作经验小老弟请大家多多关照),所以打算开坑,由于本人过于贪心所以坑只能慢慢填,基本每日都会更新树算法部分,最后会整理成工具集,目前准备制作方向有:
项目 | 方向 | 介绍 |
---|---|---|
BinaryTree | 二叉工具树 | 二叉树算法功能 |
Stack | 特殊工具栈 | 单调栈等特殊算法 |
SimpleTrie | 前缀工具树 | 简单前缀树算法 |
ConfigurationConsistency | 公共模块 | ES、Redis等一键注入方法封装简化使用,后期也考虑使用有代码生成器、逆向工程一件生产模板 |
Common | 增加的所有工具类 | 具体的使用工具会放在此项目(使用其他的核心算法) |
PrefixQueryTree | 前缀查询树(前缀检索树、实体识别树) | 以时间换空间的方式实现快速检索,时间复杂度控制在和你查询的实体字段相同长度 |
MSSynchronization | 主从同步(前缀查询树) | 以保证高可用和数据一致性为前提设计的功能模块,以一键配置的方式启动,马上将前缀树变成只写功能,将读功能屏蔽,作为Master节点 |
Sentinel | 哨兵(前缀查询树) | 用哨兵去作为给前缀树进行添加元素的节点好处就是保证最终一致性,不需要考虑分布式系统的问题 |
前缀查询树(字典树) 特定需求下查询速度远超开源检索工具,innodb下B+树或者ES中倒排索引无法与之比拟.
1.采用了内嵌式数据库Sqlite管理数据。
2.减少了对ES、Redis等中间件依赖,减少了系统复杂度。
3.对于数据恢复数据同步,可以采用
①主从复制的方式(分布式系统启用,可以保证强一致性或最终一致性)
②哨兵服务监视传达命令进行数据同步。(可以保证最终一致性)
4.保证数据不丢失使用,日志先行机制,分层机制,对日志进行分层管理。