个人简介

Echo Blog


江湖无名 安心练剑
  • 配置增量加载设计方案
    背景 我们经常需要去实现各种配置的加载,有时候需要处理一些变化。 最简单的策略就是定期全量加载,不过如果配置较多,可能会产生 GC,对实时链路影响较大。 trade-off 配置的定期加载是【频率】与【耗时】之间的一个权衡。 实际业务中,我们都希望配置变更,立刻生效。但是实现上有些困难。 可行的方案主要有: (1)mq 通知,内存同步更新 (2)存储到 redis 等共享的三...
    2020-05-26 08:05:35 | Design
  • java 表达式引擎概览-07-google aviator regex 正则表达式提取
    目标 google aviator regex 正则表达式提取 官方文档 AviatorScript 中正则表达式也是一等公民,作为基本类型来支持, / 括起来的正则表达式就是一个 java.util.Pattern 实例,例如 /\d+/ 表示 1 个或者多个数字,正则表达式语法和 java 完全相同,但是对于需要转义的字符不需要连续的反斜杠 \\ ,只要一个 \ 即可,比如我...
    2020-05-26 07:11:16 | Engine
  • 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