jeesuite-libs分布式架构开发套件。包括缓存(一二级缓存、自动缓存管理)、队列、分布式定时任务、文件服务(七牛、阿里云OSS、fastDFS)、日志、搜索、代码生成、API网关、配置中心、统一认证平台、分布式锁、分布式事务、集成dubbo、spring boot支持、统一监控等。所有release版都经过严格测试并在生产环境稳定运行4年+。
一些框架使用起来比较复杂(譬如各种配置,各种资源管理,容错等),针对这种情况我们做了大量二次封装旨在简化使用难度。
一些框架高度抽象貌似能满足所有应用场景,但是实际上大部分情况我们只用到了他10%的功能,结果她却只解决了我们90%的问题,针对这种情况我们就放弃使用而是参考他的设计自己实现一套简化版本
服务中小企业、减低架构成本、整体方案开箱即用。
只做增强不修改依赖框架本身,可自由升级版本。
持续更新、所有release版本经过严格测试和线上验证。
贴近业务场景、只做有用的功能。
高度灵活、每个模块可以独立使用。
基于配置支持单机、哨兵、分片、集群模式自由切换
更加简单的操作API封装
一级缓存支持(ehcache & guava cache)、分布式场景多节点自动通知
多组缓存配置同时支持 (一个应用多个redis server)
分布式模式开关
基于spring封装简化配置和调用方式
基于配置新旧两版Consumer API兼容支持
支持二阶段处理,即:fetch线程同步处理和process线程异步处理
消费成功业务处理失败自动重试或自定义重试支持
process线程池采用LinkedTransferQueue
,支持线程回收和队列大小限制,确保系统崩溃等不会有数据丢失。
支持特殊场景发送有状态的消息(如:同一个用户的消息全部由某一个消费节点处理)
兼容遗留kafka系统、支持发送和接收无封装的消息
代码生成、自动CRUD、可无缝对接mybaits增强框架Mapper
基于properties配置多数据源支持,无需修改XML
读写分离,事务内操作强制读主库
基于注解自动缓存管理(所有查询方法结果自动缓存、自动更新,事务回滚缓存同步回滚机制)
自动缓存实现基于jeesuite-cache
和spring-data-redis
分页组件
简单分库路由(不支持join等跨库操作)
支持分布式保证单节点执行(按节点平均分配job)
支持failvoer,自动切换故障节点
支持多节点下并行计算
支持无注册中心单机模式
支持自定义重试策略
支持配置持久化(启动加载、变更保存)
支持控制台任务监控、开停、动态修改调度时间策略、手动触发执行
自动resonse封装(xml、json)
i18n
request、response日志记录
自动友好错误
校验框架
七牛文件服务支持
阿里云OSS文件服务支持
fastDFS文件系统支持
支持spring集成
配置式切换服务提供商
一些常用工具类
分布式锁
分布式全局ID生成器
excel导入导出
springboot集成支持
主要内容:一、写在前面,二、active-standby高可用架构,三、Master-Slave架构的分布式计算系统,四、弹性计算资源调度机制,五、分布式系统高容错机制,六、阶段性总结一、写在前面 商家数据平台第一个阶段的架构演进过程中,通过离线与实时计算链路的拆分,离线计算的增量计算优化,实时计算的滑动时间窗口计算引擎,分库分表 + 读写分离,等各种技术手段,支撑住了百亿量级的数据量的存储与计算。 我们先来回看一下当时的那个架构图,然后继续聊聊这套架构在面对高并发、高可用、高性能等各种技术挑战
在前面的章节里,我们已经学习了如何使用不同的打分公式,也了解了使用这些打分公式的好处。我们也学习了何如使用不同的倒排表结构来改变索引数据的方式。此外,我们也学习了自如应用近实时搜索和数据实时获取(real-time GET),了解了检索器(searcher)重启(reopen)背后的意义。我们也探讨了多语言数据的处理,也学习了配置事务日志来实现业务需求。最后,我们学习段合并(segments me
实践 在本篇实现一个app 插件demo,在demo页面可以显示服务器端时间。 插件入口 在该文件中定义插件名,描述,以及插件前端和后端入口,配置。 export default function (kibana) { return new kibana.Plugin({ require: ['elasticsearch'], name: 'demo', uiExpor
通过查看kibana源码,发现很多组件都迁移成react组件,并且官网的文档也在推荐使用react来开发插件。建议大家在选型之前和官网文档保持一致,采用react写相应的插件。 实现 参考教程《app插件案例》 参考 Angular to React Migration
I have the world’s largest collection of seashells. I keep it scattered around the beaches of the world… perhaps you’ve seen it. — Steven Wright 某些系统(尤其像 Mafia)在去中心化的分布式架构环境下运行良好。 使用 Puppet 的一个最常见的方法是
本文主体参考/转自『技术创新年终盘点|赵韵东:核心银行系统分布式架构转型』,版权归原作者所有。 集中式架构的挑战 核心银行系统是银行信息化建设的核心,是银行为客户提供金融服务、创造银行经营价值、履行社会责任的基石。过去我国大型银行的核心银行系统大多基于主机技术,采用集中式架构建设。主机强大的计算能力与高稳定性,支撑了本世纪初各家大型银行信息系统由省域集中到全国集中的升级,促进了银行业务的创新和发展