个人简介

Echo Blog


江湖无名 安心练剑
  • 规则引擎-00-入门 聊一聊
    chat Q: 详细介绍一下 java 规则引擎 Java规则引擎是一种软件设计模式,它允许开发者将业务决策从应用程序代码中分离出来,并通过一组可配置的规则来实现业务逻辑。 这样做的好处是提高了业务逻辑的可维护性和可扩展性,因为规则可以不修改代码的情况下动态地更改。 下面将详细介绍Java规则引擎的概念、特点、使用场景以及一个流行的Java规则引擎库——Easy Rules。 概念...
    2020-05-26 08:05:35 | Engine
  • 配置增量加载设计方案
    背景 我们经常需要去实现各种配置的加载,有时候需要处理一些变化。 最简单的策略就是定期全量加载,不过如果配置较多,可能会产生 GC,对实时链路影响较大。 trade-off 配置的定期加载是【频率】与【耗时】之间的一个权衡。 实际业务中,我们都希望配置变更,立刻生效。但是实现上有些困难。 可行的方案主要有: (1)mq 通知,内存同步更新 (2)存储到 redis 等共享的三...
    2020-05-26 08:05:35 | Design
  • java 表达式引擎概览-06表达式引擎引擎页面样式优化
    目标 让页面样式更加现代化。 STEP7: 样式调整 需求 下面的页面样式比较原始,帮我的 css 样式进行调整美化,让其看起来更加现代化+扁平化。 要求按钮尽量加上 icon,使用 emoji 也行,表达对应的含义。比如新增/删除/重置 按钮的颜色,新增类型用绿色系,删除用红色系,重置警告橙色系等等。 原始的页面代码: <!D...
    2020-05-26 07:11:16 | Engine
  • java 表达式引擎概览-05-google Aviator 表达式引擎布尔条件验证与规则引擎
    最佳实践 https://www.yuque.com/boyan-avfmj/aviatorscript/ou23gy STEP1: Aviator 执行表达式引擎==》规则引擎 最简单的例子 因为布尔值只是对应的 boolean,每一个对应一个条件。 所以最后的结果只是一个类似于 (c1 && c2) || (c3 || c4) 的表达式。 public sta...
    2020-05-26 07:11:16 | Engine
  • java 表达式引擎概览-04-google 表达式引擎最佳实践
    最佳实践 https://www.yuque.com/boyan-avfmj/aviatorscript/ou23gy 建议最少加上这2个 static { // 默认方法执行 60S? AviatorEvaluator.getInstance().useLRUExpressionCache(20000); AviatorEvaluator.setOption(...
    2020-05-26 07:11:16 | Engine
  • java 表达式引擎概览-03-google 表达式引擎 Aviator 5.x 文档
    起源 Aviator 起源于 2010 年左右,当时我还在淘宝中间件,读了龙书,了解了 ASM ,开始读 clojure 编译器的源码。 刚好同时在做 Notify 这个内部消息中间件的一个重要版本实现,其中有一个需求是实现 AMQP 规范里的 header 订阅,允许用户指定一个布尔表达式来决定是否订阅某种类型的消息,需要对布尔表达式字符串进行求值。 当时正处于造轮子的兴奋期,因此就...
    2020-05-26 07:11:16 | Engine
  • java 表达式引擎概览-02-google 表达式引擎 Aviator 入门介绍
    Aviator Aviator 是一个轻量级、高性能的 Java 表达式求值器。 它可以将表达式编译为字节码,并即时执行求值。 快速入门 aviator 代码地址 Jar 依赖 <dependency> <groupId>com.googlecode.aviator</groupId> <artifactId>...
    2020-05-26 07:11:16 | Engine
  • java 表达式引擎概览-01-overview
    背景 希望实现一些类似于 mybatis 的动态 sql,针对语句的判断,比如: test = "name != null and name != ''" 这里就需要一个表达式的引擎,从零实现目前比较耗费时间,就去看看有没有现成的。 mvel 比较老牌了,很强大,但是好久没更新了 参考地址: http://mvel.documentnode.com/ https://git...
    2020-05-26 07:11:16 | Engine