保存成功
订阅成功
保存失败,请重试
提交成功
Chat分类
全部·后端·架构·前端·免费专区免费专区·互联网·运维·人工智能·职场·测试·移动开发

最新文章

新鲜出炉的 Chat 文章,为作者鼓个掌吧
查看更多 >
KubeSphere 私有化 DevOps 实战 2.0
通过本场 Chat 介绍如何在公司或者个人、团队中如何实现私有化 DevOps 实战,本文将从零开始带你一步步实现从虚拟机环境搭建、网络处理、KubeSphere 集群搭建、Git 私有化、代码检查、Docker Hub 私有化、到微服务、单体应用使用流水线部署、部署脚本等。还会提供如何在内网环境中如何提供外网访问解决方案。 之前发布过《Kubernetes 持续集成 Spring Cloud》,本文将以最新的方案来实现 DevOps,是对上一篇 Chat 的升级优化版,本文所提到 DevOps 相关内容都已经在实际生产环境部署。 以下是搭建流程和涉及相关技术或工具: 1. VMware 虚拟机创建,资源分配,网络配置 2. Docker 环境配置 3. KubeSphere 集群搭建,开启DevOps等功能 4. GitLab 私有化搭建、数据备份 5. 在 KubeSphere 部署 Harbor 实现 Docker 私库 6. 编辑单体应用(Spring Boot)部署脚本 7. 编辑 Jenkinsfile 实现流水线部署应用 8. 编辑微服务部署脚本 9. 以图形化方式实现流水线部署微服务应用,以脚手架Pig为例 10. 搭建 FRP 服务对外提供应用访问 11. 如何在 KubeSphere 中部署其他软件/工具
1小时前Whale
·
工程师
ES 数据复制流程
本篇文章介绍在 ES 写入流程中,主副分片的数据是如何复制同步的,以此来保证数据的一致性呢?在学习本节内容前,建议先观看我之前写的《ES 写入流程源码分析》篇章。 本场 Chat 主要内容: 1. 介绍 ES 数据复制的核心概念 2. ES 7 前后对于数据复制流程的实现差异 3. 数据复制流程分析
3天前怡红楼总裁
·
Java资深研发工程师
前端开发:权限设计从 0 到 1
前端开发工作中,权限设计是绕不开的话题。对于一个前端工作一到两年的同学亦或是需要前端进阶的开发者,权限设计尤为重要。 本次 Chat 将从主流开发需求中提炼公共的、经典的设计点一一讨论。 本场 Chat 中你将获得如下知识: 1. 权限数据如何存储。 2. 获得权限数据如何处理。 3. 菜单、页面、页面元素权限控制。 4. 安全的权限处理应该是怎样的。 适合人群: 1. 前端进阶 2. 一到两年开发者
3天前-小马哥
·
前端搬运工、资深前端
并发编程解惑之锁的应用和底层实现
在锁的应用这方面,Synchronized和 ReentrantLock都可用作同步,被称为同步锁。在使用前要明确一个基本概念,同步锁要加在哪里?当然是加在共享资源上,文件系统,数据库系统等自身都提供了完善的同步锁机制,不需要我们加锁。确切来说我们是把同步锁加在访问共享资源的代码上,而且访问共享对象的不同线程,加的同步锁必须是同一把锁,不然无法起到同步(排队操作共享对象)的作用,同步锁本身也一定是多个线程间的共享对象。 Java中锁的类型可继续细分为:同步锁(可以保证代码是被串行执行的),无锁CAS(通过版本号和重试保证线程安全),公平锁,非公平锁,可重入锁,不可重入锁等。 在锁的底层实现这方面,Java中核心的锁如ReentrantLock,Semaphore,CountDownLatch, ReetrantReadWriteLock,FutureTask等都是基于AQS构建的,主要区别就是原子状态state的获取和释放的条件不同而已,文中会详细解读AQS的机制和源码。 并发编程解惑系列会从线程、锁、容器、队列四个篇章解读并发编程,该篇是本系列的锁篇。 本篇 Chat 主要内容: 1.深入分析内置同步锁Synchronized 2.深入分析可重入锁 ReentrantLock 3.高效并发:JAVA锁优化 4.锁的底层实现:AQS抽象队列同步器
3天前码客
·
Java开发
MySQL Percona工具:pt-table-sync 修复 MySQL 不一致数据
提高 MySQL 能力,运用 MySQL 工具。 MySQL 的主从数据同步固然重要,但是出现主从不一致的情况,重新部署主从省事简单,但是也只能算是笨鸟后飞的方法了。其实我们做到笨鸟先飞,那就是将不一致的数据进行修复。在一个业务系统中,数据量级总归不可能是几条,不是简单对比后就能轻松完成修复的,使用专业的工具就可以做到事半功倍。pt-table-sync 这个工具就是我们的杀手锏。 再提高一点点,这次我们聊聊数据库 Percona 工具: - 简介 - 工作原理 - 安装部署 - 选项参数说明 - 实例实战:pt-table-sync 修复 MySQL 不一致数据 - 行知合一:不但要修复数据,而且要明白数据修复的工作流程
13天前ranbo
·
高级数据库工程师

严选 Chat

优质作者完成的Chat,文章已发布,即刻可读
查看更多 >
MySQL Percona工具:pt-table-sync 修复 MySQL 不一致数据
提高 MySQL 能力,运用 MySQL 工具。 MySQL 的主从数据同步固然重要,但是出现主从不一致的情况,重新部署主从省事简单,但是也只能算是笨鸟后飞的方法了。其实我们做到笨鸟先飞,那就是将不一致的数据进行修复。在一个业务系统中,数据量级总归不可能是几条,不是简单对比后就能轻松完成修复的,使用专业的工具就可以做到事半功倍。pt-table-sync 这个工具就是我们的杀手锏。 再提高一点点,这次我们聊聊数据库 Percona 工具: - 简介 - 工作原理 - 安装部署 - 选项参数说明 - 实例实战:pt-table-sync 修复 MySQL 不一致数据 - 行知合一:不但要修复数据,而且要明白数据修复的工作流程
ranbo
·
高级数据库工程师
严选
·
47 订阅
MySQL 实用工具:pt-ioprofile 解析 MySQL 的 I/O 情况
提高 MySQL 能力,运用 MySQL 工具。 我们要分析业务系统的能力,必然要获取操作系统的 CPU、内存、I/O、网络等情况,通过这些监控项,结合业务应用并发访问,再兼顾MySQL数据库的性能指标来做综合分析,才能得出一个可靠的性能分析报告。MySQL 的运行状态我们很容易可以获取,但是他在底层的 I/O 调用情况该如何解析呢?这次我们用 pt-ioprofile 工具来帮我们实现。 再提高一点点,这次我们聊聊影响数据库的实用工具: - 我们该如何思考 - 用何种工具采集什么样的数据 - 谈一谈底层 I/O 指标 - pt-ioprofile 工具介绍 - 实战:使用 pt-ioprofile 解析 MySQL 的 I/O 情况
ranbo
·
高级数据库工程师
MySQL
·
58 订阅
MySQL 实用工具:性能调优之 MySQLTuner
提升 MySQL 性能,运用 MySQL 工具。 MySQL 性能优化一直是人们头疼而又向往的一件事,把数据库优化好,不但能提升业务系统的性能,而且也能提高自己的技术水平。想必大家都看过很多 MySQL 性能优化的书籍和文章,但是千篇一律的优化方案真的适合自己的系统吗?前辈给我们的优化参数真的适合自己的数据库运行吗?这次我们使用一个性能调优工具为你自己的系统提供精准的优化,他就是:MySQLTuner。 再提升一点点,这次我们聊聊影响数据库的实用工具: - 数据库状况不好(常见性能问题) - 如何医治(对数据库性能问题的思考) - 有病投对医(MySQLTuner 介绍) - 行医准备不能少(MySQLTuner 安装部署) - 抓方取药(MySQLTuner 全面检查与优化)
ranbo
·
高级数据库工程师
MySQL
·
72 订阅
MySQL 实用工具:性能调优之 Tuning-Primer
提升 MySQL 性能,运用 MySQL 工具。 你有没有遇到过业务平台力不从心?数据库返回结果竟慢的不能忍受?通常我们大大小小的业务场景几乎都在使用数据库,随着业务的不断壮大,原有的系统运行没有那么顺畅了,感觉就是没有那么快了!到底哪个环节有问题?我可以肯定的告诉你,整体性能的下降,问题不止一个,数据库出现性能问题就是其一。MySQL 数据库调优工作是复杂繁琐的,但是我们有实用工具:Tuning-Primer。 再提升一点点,这次我们聊聊影响数据库的实用工具: - 这是一个 old man - 这个工具应该如何使用 - 他能帮我们调优哪些内容 - 实例讲解我是如何运用该工具的
ranbo
·
高级数据库工程师
MySQL
·
59 订阅
MySQL 实用工具:性能监控工具(3)
提高 MySQL 能力,运用 MySQL 工具。 如果有 MySQL 监控利器,还怕数据库出现性能问题?想必你也遇到过很多 MySQL的问题,尤其是性能问题,你肯定有自己的一套问题定位排查分析方法。最循规蹈矩的是在天MySQL 的客户端逐步分析定位问题,但是我认为在数据库出现问题之前的阶段非常重要,如果我们能及时监控到数据库的性能状态,是不是就可以提前规避一些问题了。 MySQL 的工具有很多,这次介绍一个功能十分强大的开源工具 Innotop。 再提高一点点,这次我们聊聊影响数据库的实用工具: - Innotop 监控利器的由来 - Innotop 支持的功能 - Innotop 可监控的指标 - Innotop 安装部署 - Innotop 快速上手及使用说明 - Innotop 常用实例
ranbo
·
高级数据库工程师
MySQL
·
70 订阅
MySQL 故障诊断:快速定位 MySQL 的 IO 瓶颈
提高 MySQL 能力,排查 MySQL 问题。 在业务场景中,有没有遇到过业务系统点击无反应,排查应用日志无返回结果,排查后发现数据库基并没有执行过特殊的操作,但是服务器的 I/O 异常,没错,你遇到了 MySQL 数据库的 I/O 瓶颈,正是 I/O 瓶颈导致了系统的缓慢运行,让我们来快速定位 MySQL 的 I/O 瓶颈。 再稳定一点点,这次我们聊聊数据库 IO 瓶颈: - 简述 MySQL 的 I/O 瓶颈现象 - 列举引起 I/O 瓶颈的原因 - 聊一聊 I/O 指标 - 介绍几个常用的 I/O 分析工具 - 我有帮手送你一张直观的火焰图 - 用绘图工具画一个 I/O 瓶颈图 - 我是如何快速定位 I/O 问题 - MySQL 性能瓶颈分析工具 profiling - 常用 MySQL 的 I/O 瓶颈优化策略
ranbo
·
高级数据库工程师
MySQL
·
106 订阅
MySQL 故障诊断:MySQL 占用 CPU 过高问题定位及优化
提高 MySQL 能力,排查 MySQL 问题。 突然收到监控系统报数据库服务器 CPU 使用率过高,达到 100% 甚至超 100%,怎么办?这个报警紧急度非常高,轻则应用连接处理过慢,应用报错,重则数据库宕机,不能提供服务,更有甚者服务器都出现问题。当遇到 MySQL 占用 CPU 过高时,我们如何从容应对呢?这次我们一起来快速定位问题及优化。 再稳定一点点,这次我们聊聊数据库 CPU 占用过高情况: - MySQL 占用 CPU 过高常见现象 - MySQL 占用 CPU 过高常见原因 - 我如何快速定位分析问题 SQL - 优化一下也不难 - 其他常用优化方法
ranbo
·
高级数据库工程师
MySQL
·
113 订阅
Java 集合与数据结构详解
不论是在平时写代码时用的各种 List 或者 HashMap 集合,还是在面试里必定被问到的各类集合实现原理及其特征,都能发现集合是每一位乐天堂fun88都该掌握的知识,说到集合就必须要说到相关的队列、栈等数据结构的知识,这篇文章就来捋一捋 Java 中集合与相关数据结构的实现过程原理。 本 Chat 内容: 1. 由浅入深:集合框架介绍 2. 各类集合:List、Map、Set 3. 集合遍历:为什么要用迭代器 4. 集合扩展:泛型与通配符 5. 数据结构:栈、队列、数组、链表与红黑树 6. 排序算法:冒泡、选择、插入 7. 百年老题:HashMap 源码分析
贾斯汀
·
Javafun88手机版工程师,嵌入式耕耘者
Java
·
149 订阅
MySQL 故障诊断:如何排查行锁超时问题
提高 MySQL 能力,排查 MySQL 问题。 想必大家都遇到过数据库锁,你是否曾经被开发人员抱怨过,为什么页面没反应,为什么任务还没有执行完,为什么执行这么慢,为什么……为什么……哔哩哔哩的被追问很久。遇到这些问题,不要慌,不要怂,首先想到的是,SQL 肯定没有执行完,要么就是 SQL 效率低,执行慢;要么就是出现了行锁超时问题,这次我们进一步看看如何排查行锁超时问题。 再稳定一点点,这次我们聊聊数据库故障诊断: - 行锁超时一点也不神秘 - 什么场景会产生行锁超时 - 开心的亲手创造点麻烦 - 我做的就是让 MySQL 替你完成分析
ranbo
·
高级数据库工程师
MySQL
·
93 订阅
一文掌握 Java 线程池核心原理及基于 Spring Boot 的最佳实践
日常开发中我们经常使用线程池去提升程序的性能。通过池化的思想进行线程复用、管理,可以降低系统资源消耗、提升系统响应速度、减少系统处理耗时。 熟悉服务器端开发的同学都知道,Web 服务器在接收客户端请求时,通常不会采取来一个请求就新建一个线程处理的方式。虽然这种方式实现起来简单易懂,但是如果并发的请求数非常多,并且每个请求的实际处理耗时又非常短,那么就会导致频繁地创建和销毁线程,这将大大降低系统的性能。因为线程切换是有成本的,CPU 需要保存当前执行线程的上下文,并且后期还要恢复执行线程的上下文,即所谓的“上下文切换开销”。 线程池则为多线程创建的开销和资源不足问题提供了解决方案。通过多任务下线程的重用,将线程创建的开销摊薄到了多任务上,取得了高并发环境下系统性能上的提升。 在本场 Chat 中将会讲到如下内容: - Java 中线程池的基本概念和原理以及使用案例 - Java 中的线程池调优,参数配置详解 - 使用 Spring 内置的各种线程工具类创建线程池 - 在 Spring Boot 采用优雅的方式使用线程池 - 线程池的监控与管理以及线上动态调优实践 **适合人群**:Java 前后端开发人员。想深入理解、掌握线程池的使用、配置,在项目中需要自定义线程池的开发人员。
行梭渔人
·
攻城狮||程序猿
Java
·
Spring Boot
·
169 订阅
Spring Boot Validation 参数校验及统一异常处理最佳实践
在后端开发中,我们常常需要对接口的请求参数进行“参数合法性性”校验。比如我们要进行入参的判空、格式检查等来避免程序出现异常。首先想到的实现方式是采用 if(){...} else{...} 方式逐个对参数进行判断,这种方式功能上没有问题,能够达到目的。但是在入参很多的场景下,代码中将会充斥着大量的 if else 判断,降低了代码的美观性和可读性,显然不够优雅。那么有没有更好的方式来做这件事呢? 回答上述问题前我们再来看看另一个问题。 在后端开发中,还有个常见的问题。就是在程序中,我们不可避免地需要处理各种异常。代码中常常会看到大量的 try {...} catch {...} finally {...}。这同样造成了代码冗余,降低了可读性。那么有没有更优雅的方式来处理程序中的异常呢? 好了,带着上述问题,我们来引出本文的主要内容。在本场 Chat 中,将会讲述下列内容: - Bean Validation 概述及其具体实现介绍 - Spring Boot 中 Validation 的使用入门 - RequestBody/RequestParam/PathVariable 参数校验 - 分组校验、嵌套类校验、集合元素校验 - 自定义注解式规则校验、编程式校验 - 在 Service 接口中使用参数校验 - 后端接口统一数据格式响应 - 后端接口统一异常处理 **适合人群:** 本文篇幅较长,适合日常开发中使用 Spring Boot、Spring Cloud 微服务架构,需要经常面向 API 接口编程的开发人员。
行梭渔人
·
攻城狮||程序猿
Spring Boot
·
223 订阅
循序渐进学 Netty 之 Java IO 体系、线程模型大总结
本教程的题目是《循序渐进学Netty》,就是说要从最基础的知识开始讲起,一步一步、由浅入深引导大家进行 Netty 的学习。在正式学习 Netty 之前,我们有必要回顾一下 Linux IO 模型、线程模型以及 Java 中 I/O 相关的知识,温故而知新。 在本场 Chat 中,将会讲到如下内容: - 传统 Java I/O 及其编程案例 - Java NIO 及其编程案例 - Java 网络编程 - NIO的理论基础及Linux的五种I/O模型 - Reactor线程模型 - 小结 **适合人群** :想温习 Java I/O 知识、学习 Netty 提升技术内功、对网络编程感兴趣的开发人员。
行梭渔人
·
攻城狮||程序猿
Netty
·
233 订阅
Java 三大框架之 MyBatis 详解
MyBatis 本是 Apache 的一个开源项目 iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。2013 年 11 月迁移到 Github。 iBATIS 一词来源于“Internet”和“Abatis”的组合,是一个基于 Java 的持久层框架。iBATIS 提供的持久层框架包括 SQL Maps和Data Access Objects(DAOs)(来自百度百科) MyBatis 用途有: - MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 - MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 - MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java 对象)映射成数据库中的记录 本 Chat 内容: 1. MyBatis 入门 2. 基础环境搭建 3. 配置文件讲解 4. 常规 CRUD 使用 5. # 与 $ 的区别和 @param 用法 6. 动态 SQL 的使用 7. 了解日志 8. 结果集嵌套与查询嵌套 9. MyBatis 的缓存 10. 懒加载 注:本文较适合对 MySQL 和 Java 有一定基础的读者
贾斯汀
·
Javafun88手机版工程师,嵌入式耕耘者
MyBatis
·
234 订阅
乐天堂fun88如何实现睡后收入
睡后收入,网络流行词,字面意思为能躺着就把钱挣了的方法 ,就是被动收入,不需要花费多少时间和精力照看,就可以自动获得的收入,它更是获得财务自由和提前退休的必要前提。“睡后收入”不需要照看,但是可不代表不劳而获,其实在获得“被动收入”之前,往往需要时间的劳动和积累。 乐天堂fun88在 996 文化盛行的今天 ,生存空间被进一步压缩。没有了晋升、没有了涨薪、似乎 35 岁大厂劝退也渐渐不是一句玩笑话。那么普通乐天堂fun88如何更好的利用自己乐天堂fun88特有的技能在休息时间也能获取收入 ,这是我们的追求 ,也是我们每一位乐天堂fun88都需要掌握的 ,也是完全可行的。 通过本 Chat 你将获得以下收益: 1. 全盘分析乐天堂fun88的睡后收入有哪些(哪些可以做 ,哪些不能做 ,哪些值得做)? 2. 我在睡后收入的实践道路做了哪些努力和尝试? 3. 如何实现睡后收入的从 0 到 1 再到 1000 的? 4. 如何平衡工作与睡后收入的投入时间? 5. 一份适合你自己的实践建议。
michael
·
阿里云acp认证工程师
赚钱
·
481 订阅
MySQL 地基基础:数据字典
拥有 MySQL 能力,打好 MySQL 地基。 想要用好 MySQL,我们需要不断的学习。MySQL 和其他数据库一样,都需要存储元数据,这些云数据存储在数据字典中,数据字典的存在非常重要,而其在 MySQL 发展历程中也是不断的演变与升级。 再多学一点点,这次我们聊聊数据库数据字典: - 数据字典是什么 - 数据字典的作用 - MySQL information_schema 详解(崭露头角) - MySQL performance_schema 详解(成长升级) - MySQL sys 详解(演变进化)
ranbo
·
高级数据库工程师
MySQL
·
183 订阅
回家 3 天,我做了一辆远程遥控小车
弟弟天天吵着要妈妈买玩具,于是我就想着干脆自己做一辆手机 APP 遥控小车给他玩(这难道不是所有大哥哥都应该为弟弟做的事吗!) 硬件包含: 1. 车子底盘(随意买) 2. Esp12f(8266) 3. L298N 电机驱动模块 4. 18650 电池 5. 电机(我这里只用了 2 个) 涉及的内容: 1. PWM(脉冲宽度调制) 2. 8266 连接阿里云 MQTT 服务器 3. MQTT 协议讲解 4. Java 多线程 5. App 的 MQTT 链接 App 用 Android Studio 写的,总体还是比较容易上手的,看完不会你顺着网线过来锤我(狗头),这不给弟弟妹妹来一份吗?
贾斯汀
·
Javafun88手机版工程师,嵌入式耕耘者
MQTT
·
191 订阅
MySQL 安装部署:我是如何“秒级”部署 MySQL 集群
拥有 MySQL 能力,快速 MySQL 部署。 MySQL 集群安装部署看似简单其实里面的道道有一些,常规安装你可能需要照顾的方面比较多,当然这样可以学到很多东西,但是你又想不想快速部署一套集群环境?一个得了的助手(工具)必不可少,这次我分享一个我是如何秒级部署 MySQL 集群。 再多学一点点,这次我们聊聊 MySQL 集群安装部署。 本场 Chat 内容涉及如下: - 揭秘得力助手 - 他能做为你做什么 - 拿下(安装)这个助手 - 快速部署 MySQL 单点 - 快速部署 MySQL 主从 - 快速部署 MySQL MGR - 如何管理你的助手
ranbo
·
高级数据库工程师
MySQL
·
262 订阅
如何用 Python 从零到一实现《今日头条》发文章机器人
今日头条可谓是开启了新闻阅读的新大门,强大的推荐系统已经让它吸引了成千上万的用户。同时也吸引了更多的创作者选择发布头条文章来成为一个自媒体创业者。而自媒体创业者要绞尽脑汁的写文章,想创意,做排版是一个非常耗时耗力的过程。作为乐天堂fun88的我们,可以充分利用技术的优势,从众多的自媒体创业者中脱颖而出。 在本场 Chat 中,会讲到如下内容: - 如何抽丝剥茧分析头条文章发布系统的奥妙 - 如何用 Python 爬取内网系统文章并存储 - 如何用 Python 实现头条文章系统自动登录 - 如何用 Python 实现头条文章的批量发布 - 如何部署机器人每天定时发布头条文章吸粉 **适合人群**:想要从事自媒体创业的乐天堂fun88,对爬虫、机器人感兴趣的人
way
·
算法工程师
Python
·
215 订阅
MySQL 地基基础:事务和锁的面纱
拥有 MySQL 能力,打好 MySQL 地基。 随着业务的快速发展,业务高并发,性能要提高,但是如何保证业务的稳定性及数据的可靠性呢?MySQL事务和锁帮你实现。本次我们聊聊MySQL事务和锁,结合并发控制,深入学习事务隔离级别。 再多学一点点,这次我们聊聊数据库事务和锁: - 什么是事务,为什么需要事务 - 用日常细说事务的特性 - MySQL 并发控制技术 - 面试再也不怕被问到的 MVCC - 简单易懂的实例帮你理解 MySQL 事务隔离级别 - MySQL 锁机制(机智) - 聊几个经典死锁案例 - 小技巧——事务保存点帮你读档重闯关 - 小技巧——一个死锁的具体分析方法 - 小技巧——换种思路提高事务能力
ranbo
·
高级数据库工程师
MySQL
·
234 订阅
责任链模式+脚本引擎实战
责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。 责任链常见应用场景有: - 同一请求需要处理多个对象,但具体需要处理哪些请求在运行时动态决定 - 例如 OA 系统中的流程审批,不同流程对应不同的处理对象 对于责任链的实现形式,常见的有: - 节点控制模式:每个节点自由控制是否继续往下传递链的进度,类似于 Netty 中的责任链模式 - 外部调用方式:通过外部调用的方式对链的各个节点调用进行控制,从而实现链的各个节点之间的切换 因此通过责任链模式我们将对系统中各个处理对象**划分边界**,各个对象就是一个处理阶段,通过**自由组合**不同阶段能够快速响应业务需求变化。 上面提到自由组合处理对象,传统的方式就是在代码中实现规定好各个处理对象的顺序,这种方式不能做到对需求的即时响应。因此我们使用阿里开源的 QLExpress 脚本引擎,能够实现动态替换、快速组装各个处理对象。同时基于 QLExpress 的强大,对于处理对象的配置,业务人员也能够简便而不失灵活的进行配置。 在这篇 Chat 中,将会根据实际的业务场景进行提炼,实现一套通用责任链模式进行业务解耦,配合脚本引擎快速响应业务。
Limynl
·
Java高级工程师
设计模式
·
255 订阅
查看全部文章