张伟真的博客

用心享受生活, 博客逐步迁移中···

工作流系列-学习思路

工作流系列 – activity7学习思路 在工作的这么几年里,经常看到或者身边有同事在接触一个新的技术和引入一个新的框架或者引擎时,不知道这么去学习和深入 导致在遇到问题的时候无从下手根本不知道问题出现在哪里. 借助工作流引擎,记录下学习方法,也给大家一些学习的思路 学习如何入手 不管是新的技术还是新的框,以主流的框架springboot为例,引入工作流,引用例jar包,配置下就能用. 想......

工作流系列 -- activity7 相关表及操作说明

工作流系列 – activity7 相关表及操作说明 Activiti Mysql数据库支持: Activiti的后台是有数据库的支持,7的版本总共25张表,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。 ACT_RE_*: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。 ACT_RU_*:......

线程池使用不规范导致的生产问题

线程池使用不规范导致的生产问题 一 现象 线上环境卡顿,k8s探针接口无响应,导致服务假死 二 紧急处理方案 在nacos上把有问题的节点紧急下线,切走流量,保留k8s有问题节点,通过jstack pid 导出jvm线程池现状 三 问题分析 系统实现线程池有400个core线程数,任务队列 new ArrayBlockingQueue(2000); 处于waiting状态的线程数刚好40......

Reactor 模式的理解

理解 Reactor 模式的 3 个重要概念:Publisher、Subscriber和Subscription 在Reactor中,有三个重要的概念:Publisher、Subscriber和Subscription。 Publisher:Publisher是一个接口,在Reactor中用于表示数据源。它可以产生数据流,将数据推送给订阅者。Publisher接口定义了subscribe......

性能测试常见故障和解决思路

性能测试常见故障和解决思路 一. 性能问题分析流程 1、查看服务器的CPU、内存,负载等情况,包括应用服务器和数据库服务器 2、查看数据库健康状态,数据库死锁,连接池不释放 3、查看项目日志(查看无报错现象) 4、查看ivm的gc等情况 二. 内存溢出 (一)堆内存溢出 现象: (1)压测执行一段时间后,系统处理能力下降。这时用JIConsole、VisuaVM等工具连上服务器查看GC情况,......

文件上传方案

文件上传设计方案 诉求: 外网下载,不能暴露内外文件存储地址和桶 现状 设计方案一 方案说明: 1、除了上传接口变化(大文件前端需要考虑分片上传,分配大小配置或通过接口提供),其他下载、预览均保持现状,改动量较小,影响最小 2、上传文件接口需要按照规则上传到指定的目录中,需要梳理清楚存储规则,同时平台接口也需要支持把文件写到指定的目录中 3、脱离XDM操作文件,但关系不能丢,如果丢失回......

高并发场景下的 HttpClient 优化方案

高并发场景下的 HttpClient 优化方案 HttpClient优化思路: 池化 长连接 httpclient和httpget复用 合理的配置参数(最大并发请求数,各种超时时间,重试次数) 异步 源码 1. 背景 有个业务,会调用其他部门提供的一个基于http的服务,日调用量在千万级别。使用了httpclient来完成业务。之前因为qps上不去,就看了一下业务代码,并做了一些优化,记录在......

工作流驳回场景设计实现方案

选择提交与选择驳回场景澄清 前言 每个节点都可配置可以提交的节点、可以驳回的节点,单选或多选; 每个节点根据配置,可以有四种行为: 1.默认提交 2.默认驳回 3.选择节点提交,单选或多选,从配置的可提交节点中选择 4.选择节点驳回,单选或多选,从配置的可驳回节点中选择 串签可选驳回 配置从5驳回到1、3节点,且配置为单选驳回 那么5节点有三种行为: 1.默认提交 2.默认驳回 3.选择......

记一次线上服务oom排查记录-踩坑历程

记一次线上服务oom排查记录-踩坑历程 现象背景: 发版后突现服务起来后内存OOM,或者启动后几分钟后OOM,只打了 java.lang.OutOfMemoryError: Java heap space 内存爆炸了,线上大量请求异常。 oom之前没出现其他异常日志; 运行后发现异常 1org.apache.catalina.connector.ClientAbortException: j......

微服务下解决子服务本地开发服务调用问题

微服务下解决子服务本地开发服务调用问题 一. 问题及需求 问题: 微服务场景下,随着子服务越来越多,日常开发,开发人员需要本地启动多个必要的一整套服务,来支撑业务子服务的开发调试 以及与前端的联调. 这对开发人员电脑的配置要求高,并且服务各种原因本地的各种重启很耗费时间,非常不便利. 需求: 本地只需要启动自己的业务模块的子服务,其他自己不关心的服务可以使用公共的服务,若涉及多个子服务的本......