摘要: 最近使用Flink实时告警项目,开始case by case硬编码定义算子,进行实时计算告警是没问题。但是业务场景结合规则引擎动态增删改规则并实时生效计算并告警。Flink并不支持动态添加,修改算子计算规则,开始利用动态类加载机制勉强实现。但是对于Flink这套就不太优雅。下面来介绍下怎么利用Fli 阅读全文
posted @ 2020-09-02 19:49 BarryW 阅读(3520) 评论(7) 推荐(0) 编辑
摘要: 最近一个项目中利用规则引擎,提供用户拖拽式的灵活定义规则。这就要求根据数据库数据动态生成对象处理特定规则的逻辑。如果手写不仅每次都要修改代码,还要每次测试发版,而且无法灵活根据用户定义的规则动态处理逻辑。所以想到将公共逻辑写到父类实现,将特定逻辑根据字符串动态生成子类处理。这就可以一劳永逸解决这个问 阅读全文
posted @ 2020-07-04 00:10 BarryW 阅读(26537) 评论(3) 推荐(6) 编辑
摘要: Flink 认为 Batch 是 Streaming 的一个特例,所以 Flink 底层引擎是一个流式引擎,在上面实现了流处理和批处理。而窗口(window)就是从 Streaming 到 Batch 的一个桥梁。Flink 提供了非常完善的窗口机制,这是我认为的 Flink 最大的亮点之一(其他的 阅读全文
posted @ 2020-06-30 13:56 BarryW 阅读(2954) 评论(1) 推荐(0) 编辑
摘要: 一、为什么引入有限状态机? 最近做一个项目,项目中很多实体(Entity),每个实体都有很多状态(State),各状态会经过不同事件(Event)触发后转换到另一个状态。这些事件包括但不限于:用户页面点击触发,生效时间或失效时间到达,其他依赖实体状态变更等。在状态变更后还会有一系列动作(Action 阅读全文
posted @ 2020-05-09 22:44 BarryW 阅读(11776) 评论(0) 推荐(2) 编辑
摘要: 1. 什么是CQRS CQRS最早来自于Betrand Meyer(Eiffel语言之父,开-闭原则OCP提出者)在 Object-Oriented Software Construction 这本书中提到的一种 命令查询分离 (Command Query Separation,CQS) 的概念。其 阅读全文
posted @ 2020-04-25 14:44 BarryW 阅读(1220) 评论(0) 推荐(0) 编辑
摘要: 消费金融是2017年的一大风口,但随着现金贷监管到来,行业遇阻,进入寒冬期。 而另一边,沉寂一年多的供应链金融,终于有了枯木逢春的迹象。 从去年下半年开始,传统的商业银行、行业龙头、B2B平台、供应链公司、物流公司、信息化服务商等玩家,齐刷刷开始布局供应链金融领域。 2018年,终于到了供应链金融爆 阅读全文
posted @ 2020-03-23 18:27 BarryW 阅读(1200) 评论(0) 推荐(0) 编辑
摘要: 余额宝已经是互联网金融的标杆,满天的“宝”们扎堆进入了面向个人客户的零售金融市场。谁能在零售金融市场复制余额宝?目前尚未发现有希望的选手。实际上,连支付宝自己在淘宝理财上也未能复制余额宝的辉煌战绩。可以说“To C”的零售金融市场大格局已定。 好在零售金融市场之外,还有“To B”的对公金融市场,目 阅读全文
posted @ 2020-03-23 17:57 BarryW 阅读(1108) 评论(0) 推荐(0) 编辑
摘要: 最近想用Scala来重构Java项目。Scala的灵活高效这里就不用说了,Java MVC一套架构确实有它优点。但是开发调试效率确实慢很多。所以准备使用DDD中的命令查询职责分离模式(Command Query Responsibility Segregation,CQRS)重构项目。 首先我们先介 阅读全文
posted @ 2020-03-16 16:15 BarryW 阅读(1908) 评论(0) 推荐(0) 编辑
摘要: 最近一个项目,需要操作近70亿数据进行统计分析。如果存入MySQL,很难读取如此大的数据,即使使用搜索引擎,也是非常慢。经过调研决定借助我们公司大数据平台结合Spark技术完成这么大数据量的统计分析。 为了后期方便开发人员开发,决定写了几个工具类,屏蔽对MySQL及Hive的操作代码,只需要关心业务 阅读全文
posted @ 2020-02-18 10:52 BarryW 阅读(7320) 评论(10) 推荐(2) 编辑
摘要: 前面一篇文章介绍大数据量导出实现: Java实现大批量数据导入导出(100W以上) -(二)导出 这篇文章在Excel列较少时,按以上实际验证能很快实现生成。但如果列较多时用StringTemplate写入时会出现内存溢出。那么我的解决方案如下: 将数据列表分成多份,如果从数据库查询就是分页查询出多 阅读全文
posted @ 2020-02-18 10:10 BarryW 阅读(13545) 评论(21) 推荐(2) 编辑
摘要: 华为,一直是企业界的标杆。很多企业都主张学习华为,学习华为的“狼性”。甚至同样的员工,在其他公司里是“小白兔”,到了华为,就变成了“狼”。 华为员工的1天,工作流程化且紧凑 从8:10开始早餐,8:30投入上午的工作,12:00午饭,13:00-14:00午休,大多数人在晚上20:30下班,领取免费 阅读全文
posted @ 2019-12-08 09:43 BarryW 阅读(1437) 评论(0) 推荐(0) 编辑
摘要: 什么叫保理?很多人都还不知道怎么回答这个问题,而一些人在知道保理不是保险代理而是应收账款的保付代理后,又觉得应收账款管理的风控是否足够严格,究竟如何盈利?整体而言,大家对这个行业感到很陌生,小编在此再为大家对商业保理和银行保理的盈利模式异同点做以下详解。 保理业务盈利模式 商业保理公司的收入来源主要 阅读全文
posted @ 2019-12-07 09:58 BarryW 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 目录 1. 供应链金融保理概述 2. 供应链金融保理业务模式 3. 供应链金融保理领域监管法规和政策 4. 供应链金融保理业务的风险把控 供应链金融保理概述 (一)定义 国外学者关于供应链金融的定义,以霍夫曼在 2005 年提出的定义为代表。霍夫曼认为:供应链金融可以理解为供应链中包括外部组织服务者 阅读全文
posted @ 2019-12-07 09:56 BarryW 阅读(4278) 评论(0) 推荐(0) 编辑
摘要: 我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用spring提供的其他对象或者说有一些不需要交给spring管理,但是需要用到spring里的一些对 阅读全文
posted @ 2019-11-02 22:47 BarryW 阅读(17402) 评论(0) 推荐(0) 编辑
摘要: 一个非侵入的api编译、收集、Rest文档生成工具。工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档。代码就表达了我的思想和灵魂。 Python提出了一个方案,叫docstring,来试图解决这个问题。即编写代码,同时也能写出文档 阅读全文
posted @ 2019-11-02 21:33 BarryW 阅读(4424) 评论(0) 推荐(0) 编辑
摘要: 在接口调用中由于各种原因,可能会重置失败的任务,使用Guava-Retrying可以方便的实现重试功能。 首先,需要引用Guava-Retrying的包 代码示例: 其中TaskCallable是任务的具体实现类,它实现了Callable接口 执行一下main方法,可以看到执行的结果: 下面详细分析 阅读全文
posted @ 2019-11-02 21:01 BarryW 阅读(922) 评论(0) 推荐(0) 编辑
摘要: 现在需求是,根据数据库的明细数据,组装生成多层级的汇总统计报表。例如数据库基础数据如下: 根据给定基础数据导出如下层级汇总表: 考虑大数据量数据组装的效率,可以组装成多叉树结构实现。 结合设计模式中组合模式,实现如下: 输出结果如下: 阅读全文
posted @ 2019-09-20 23:10 BarryW 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 阅读本篇文章前,请先阅读如下文章: 四种事物隔离级别详解 先看下@Transactional可以配制那些参数及以其所代表的意义。 isolation 枚举org.springframework.transaction.annotation.Isolation的值 事务隔离级别 noRollbackF 阅读全文
posted @ 2019-09-18 22:56 BarryW 阅读(1774) 评论(0) 推荐(0) 编辑
摘要: 本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也 阅读全文
posted @ 2019-09-18 22:37 BarryW 阅读(6284) 评论(0) 推荐(0) 编辑
摘要: 1.1 Row Level 行模式 日志中会记录每一行数据被修改的形式,然后在slave端再对相同的数据进行修改 优点:在row level模式下,bin-log中可以不记录执行的sql语句的上下文相关的信息,仅仅只需要记录那一条被修改。所以rowlevel的日志内容会非常清楚的记录下每一行数据修改 阅读全文
posted @ 2019-09-18 18:50 BarryW 阅读(8621) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2021-02-24 15:57 BarryW 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 首先在枚举类中 定义state 和定义的抽象方法。 public enum JavaPlatformState { // 定义state OPEN{ @Override void exit(JavaPlatformMachine pm){super.exit(pm);} @Override void 阅读全文
posted @ 2020-05-09 23:25 BarryW 阅读(3527) 评论(0) 推荐(1) 编辑
摘要: 最近系统需要对不同维度的数据进行差异化计算,也就会使用不同算法。为了以后更加容易扩展,结合Spring框架及策略模式对实现架构做了系统设计。 1. 定义策略接口(Strategy): 2. 实现具体策略 可以继续往后继续实现多个算法,这里就不一一列举。 3. Spring Boot启动时初始化各算法 阅读全文
posted @ 2019-12-07 21:42 BarryW 阅读(2265) 评论(0) 推荐(0) 编辑
摘要: 保理和小贷最本质的区别:两者的概念和业务范围不同。 保理公司是将卖方所产生的应收账款进行受让,向其提供资金融通、买方资信评估、销售账户管理、信用风险担保、账款催收等一系列服务的综合金融服务方式。小额贷款公司是由自然人、企业法人与其他社会组织投资设立,不吸收公众存款,用其自有资金经营小额贷款业务。 保 阅读全文
posted @ 2019-12-07 09:53 BarryW 阅读(1564) 评论(0) 推荐(0) 编辑