一、产生的背景

生产过程中,线上的业务规则内嵌在系统的各处代码中,每次策略的调整都需要更新线上系统,进行从需求->设计->编码->测试->上线这种长周期的流程,满足不了业务规则的快速变化以及低成本的更新试错迭代。

因此需要有一种解决方案将商业决策逻辑和应用开发者的技术决策分离开,在系统运行时能去更新管理业务规则。

规则引擎(业务规则管理系统,英文名为BRMS(即Business Rule Management System))正是这样的解决方案。

二、实际业务场景:

一个小例子: 假如我们有个业务场景,当客户的积分位于一个区间A时,我们给予他一个头衔a,当一个客户的积分位于区间B时,我们给予他一个头衔b,当客户的积分位于区间C时,我们给予他一个 头衔c。如果我们使用if-else-then来写,是可以实现的,但是这里存在一个问题:规则定义和代码耦合在一起了。如果我们改变规则,把区间A,B,C 改成D,E,F,又或是将规则增加,从3组变为100组,那么我们改代码实在是太麻烦了。这时候规则引擎就派上用场了,我们希望把规则和代码解耦,形成一个规则引擎,以适应复杂多变的业务场景,或者更加精细化的运营。

规则引擎调研及初步使用 | 京东云技术团队相关推荐

  1. 分布式数据库 Join 查询设计与实现浅析 | 京东云技术团队

    相对于单例数据库的查询操作,分布式数据查询会有很多技术难题. 本文记录 Mysql 分库分表 和 Elasticsearch Join 查询的实现思路,了解分布式场景数据处理的设计方案. 文章从常用的 ...

  2. 京东短网址高可用提升最佳实践 | 京东云技术团队

    作者:京东零售 郝彦军 什么是短网址? 短网址,是在长度上比较短的网址.简单来说就是帮您把冗长的URL地址缩短成8个字符以内的短网址. 当我们在腾讯.新浪发微博时,有时发很长的网址连接,但由于微博只限 ...

  3. 前端微服务无界实践 | 京东云技术团队

    一.前言 随着项目的发展,前端SPA应用的规模不断加大.业务代码耦合.编译慢,导致日常的维护难度日益增加.同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低.因此前端微服务应运而生. 前端 ...

  4. 一种通用的业务监控触发方案设计 | 京东云技术团队

    一.背景 业务监控是指通过技术手段监控业务代码执行的最终结果或者状态是否符合预期,实现业务监控主要分成两步:一.在业务系统中选择节点发送消息触发业务监控:二.系统在接收到mq消息或者定时任务调度时,根 ...

  5. 京东小程序折叠屏适配探索 | 京东云技术团队

    前言 随着近年来手机行业的飞速发展,手机从功能机进入到智能机,手机屏幕占比也随着技术和系统的进步越来越大,特别是Android 10推出以后,折叠屏逐渐成为Android手机发展的趋势. 图 1 An ...

  6. 基于AIGC的京东购物助手的技术方案设想 | 京东云技术团队

    灵感来源 随着AIGC的爆火,ChatGPT,GPT-4的发布,我作为一个算法工作者,深感AI发展的迅猛.最近,OpenAI的插件和联网功能陆续向用户公开,我也在第一时间试用了这些最新的功能.在Ope ...

  7. 烂怂if-else代码优化方案 | 京东云技术团队

    0.问题概述 代码可读性是衡量代码质量的重要标准,可读性也是可维护性.可扩展性的保证,因为代码是连接程序员和机器的中间桥梁,要对双边友好.Quora 上有一个帖子: "What are so ...

  8. 万物云原生下的服务进化 | 京东云技术团队

    导读: 在万物云原生下的环境下,Java的市场份额也因耗资源.启动慢等缺点,导致在云原生环境里被放大而降低,通过这篇文章,读者可以更好地了解如何在云原生环境下通过升级相关版本和使用GraalVM打出原 ...

  9. 京东云专业安全服务介绍 | 京东云技术团队

    根据LogicMonitor发布的未来云服务趋势研究报告显示,到2020年,企业在各类云产品上的支出将高于其在一般IT服务成本六倍以上,与此同时,所有企业的工作量将有83%都在云上实现,各企业将继续加 ...

最新文章

  1. 关于学习Python的一点学习总结(11->字典的应用)
  2. 《卫报》长文解读机器的崛起:人类越来越无法掌控它们
  3. oracle删sequ_oracle删除指定用户下的表与Sequence | 学步园
  4. photoshop基础教程视频-贺叶铭-传智播客-笔记
  5. c++ 使用对象指针
  6. JavaScript事件使用指南
  7. 【django】查询集QuerySet
  8. java 飞行记录器_Java 11功能– Java飞行记录器
  9. mdb批量导入mysql_快速将 access 用的 mdb 文件导入到 mysql 里
  10. JAXB: XML绑定的Java体系结构
  11. httpClient测试
  12. ul 中的li取值问题
  13. 面向对象的基本设计原则
  14. java即时通讯源码 IM即时通讯源码 IM源码 安卓苹果原生APP源码 带音视频无标题】
  15. 普歌+计算机网络--滑动窗口协议
  16. 饿了么高级设计师:界面视觉设计 5 要素
  17. thymeleaf渲染搜索页面(template: “class path resource [templates/serach.html]“)-serach2021-09-23
  18. 硬盘出现“文件或目录损坏且无法读取”的故障,怎么解决?
  19. 工业镜头与普通镜头有什么区别?
  20. 如何设计hash函数

热门文章

  1. Linux中的Shell用SSH自动登录远程服务器后执行命令并自动退出
  2. Windows10 NVIDIA 驱动程序安装
  3. mysql 中建立超级用户 superuser
  4. 蓝桥杯·寒假百校真题大联赛(大学B组)(第1期)python
  5. 与游戏结合的建材网店
  6. 【Effection C++】读书笔记 条款34~条款35
  7. python是什么?能做什么?为什么要学?
  8. Android利用ViewPager实现图片浏览,解决内存问题
  9. android生成coredump,详解coredump--全面
  10. 【转】像特斯拉创始人一样思考