![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
经验总结
文章平均质量分 70
记录点滴1076
这个作者很懒,什么都没留下…
展开
-
多租户限流
多租户限流原创 2023-01-12 15:24:56 · 500 阅读 · 1 评论 -
业务报警维度记录
做项目肯定要针对核心项目做告警,及时发现。特此记录下项目告警的维度 告警来源 告警规则 建议配置 等级 是否配置 基础设施 CPU利用率 > 70% (多核百分比) WARING原创 2022-01-11 22:34:02 · 369 阅读 · 1 评论 -
redisson链接数被打满
1.背景:redis集群: 腾讯云redis单节点云缓存服务-32G:8 分片/4GB/1 副本客户端: redisson-3.15.0 集群模式现象: redis服务端8万连接数打满,重启服务后连接数依然逐渐被打满, 打满后后续请求全部连接失败业务监控抛出大量异常2.问题解决 2.1 怀疑是网络问题:联系运维查询反馈网络没问题, 2.2 怀疑是代码问题:系统运行一段时间,最近没有相关发布代码,重启服务,过了一段时间依旧打满 2.3 从日志中看...原创 2021-12-01 18:40:28 · 2119 阅读 · 0 评论 -
业务服务建模经验
概述此处的“服务”主要指业务服务,中间件服务的设计大体一致,但是侧重点会稍有不同。我们将从以下几点描述一个规范的业务服务设计需要包含的内容: 业务场景分析; 业务领域分析; 业务领域建模; 系统间交互链路设计; 系统内处理流程设计; 系统内关键算法设计; 系统接口设计; 系统数据表设计; 系统非功能设计:高可用性、高性能、安全性、伸缩性、弹性、可扩展性、可测试性、可观测性等; 服务设计原则原则一:端到端业务原创 2021-11-29 16:43:41 · 239 阅读 · 0 评论 -
TIDB问题记录
①不支持分区,删除数据是个大坑。 解决方案:set @@session.tidb_batch_delete=1;②插入数据太大也会报错 解决方案:set @@session.tidb_batch_insert=1;但是需要注意的是set @@session.tidb_batch_insert=1;set @@session.tidb_batch_delete=1; 虽然一次插入、删除的记录变多了,但是它会破坏事务。底层的原理是将这批大数据切分成一小段一小段,每一...原创 2021-11-29 16:35:30 · 1675 阅读 · 0 评论 -
低代码平台建设经验总结
文章目录前言 一、低代码平台简介 二、架构设计 1.架构图 2.内容详解 3.有趣的问题 总结前言在某卖菜公司做低代码平台开发接近2年,收获了很多,踩了很多坑,现在做个年终总结和经验设计分享。欢迎指正一、低代码平台简介网上开源的低代码平台大家自行搜索,我们服务和其他公司的不一样,我们主要是服务于公司内部要求,其核心功能主要包括1.快速创建微型项目,降本增效2.构建业务模型为上游提供服务3.接入业务系统需求4.提供统一的数据管控...原创 2021-11-24 15:45:39 · 2570 阅读 · 1 评论 -
批量任务后端如何平滑处理
上游系统批量提交任务场景下,如果做流量整形,监控,数据一致性,时效性等落地方案原创 2021-11-20 10:58:59 · 1191 阅读 · 0 评论 -
消息消费者降级告警应用
背景:因为项目需要异步接受各方的mq消息进行发起流程/完成任务等操作。但是发起流程因为业务逻辑较重,在并发tps很高的时候容易导致mysql竞争激烈(分库分表逻辑需要优化),进而导致消费速率跟不上生产速率,导致mq消息积压。所以要针对这种情况进行监控-告警-降级方案:详细介绍1.消费速率怎么统计2.获取rabbitmq队列积压数量3.是否进入同步队列算法4.定时任务轮询存在的问题,以及如何优化5.数据库的数据消费速率设置多少合适...原创 2021-11-13 16:29:19 · 5737 阅读 · 0 评论 -
流程业务监控设计一览
初衷:为了流程开放平台的高可用,可监控,快速报警,人员快速响应问题解决,更重要的就是用户体验,因为你app的响应时间很大程度影响用户喜好,所以我们项目对监控内容作了详细划分监控工具:cat打点,granafa监控配置,运维监控报警平台监控分类一.系统层监控这一块基本不用业务开发设计,目前的cat,zabbx等都提供基础监控:gc,redis,mysql,io,带宽等等二.业务监控1.接口响应时间监控,报警频率不需要每次超过阙值就报警,一般超过阙值的频率10/s就需要报警2....原创 2021-03-28 23:09:09 · 594 阅读 · 0 评论 -
activti实际使用
目录: activiti6内容解析 流程中心如何建设 一.内容解析 1.快速入门网址:https://blog.csdn.net/qq877507054/article/details/60143099 2.核心步骤: 画流程图->生成bpmn文件(ACT_GE_BYTEARRY) 部署流程图->生成流程定义(每次修改流程图部署都会产生新版本ACT_RE_PROCDEF)...原创 2021-03-21 21:39:08 · 444 阅读 · 1 评论 -
Activiti6.0节点驳回,自由跳转核心代码
//获取流程定义Process process = repositoryService.getBpmnModel(processDefinitionId).getMainProcess();//获取目标节点定义FlowNode targetNode = (FlowNode) process.getFlowElement(flowElementId);List<Execution> executionList = runtimeService.createExecutionQuery(..原创 2021-03-08 15:29:49 · 752 阅读 · 0 评论 -
activiti6节点跳转设计
简介:工作流开发过程中,因为国内的需求变态原因,会有流程图节点任意跳转的需求一.普通的流程跳转设计因为普通流程只需要根据连线进行节点跳转就行直接贴代码: //获取流程定义 Process process = repositoryService.getBpmnModel(processDefinitionId).getMainProcess(); //获取目标节点定义 FlowNode targetNode = (FlowNode)原创 2020-12-08 13:34:39 · 982 阅读 · 2 评论 -
activiti6.0获取流程节点信息返回,并获取网关上的变量
响应实体类:package com.ddmc.workflow.response.activiti;import lombok.Data;import lombok.Getter;import lombok.Setter;import java.io.Serializable;import java.util.ArrayList;import java.util.List;import java.util.Set;@Datapublic class BpmnModelResp原创 2020-07-01 17:21:28 · 1587 阅读 · 0 评论 -
activit6.0使用经验
最近在做公司B端业务,要用到工作流,上一篇文章记录了技术调研的结果,现在开始记录使用时的架构设计和常见的问题:一:架构体系:我们考虑到扩展性,易用性,隔离性,动态性,把表单和审批人设置的功能都拆成了单独的服务所以我们的工作流审批模块主要包括:1.原生的activiti6引擎:负责流程流转2.外置表单服务:流程部署后根据流程实例设置所有节点的表单,流程启动时通过外置表单引导用户填写信息3.用户节点服务:流程部署后根据流程实例设置所有的节点的用户组,在任务节点开始通过监听器到用户服务获取该节原创 2020-06-16 14:40:37 · 373 阅读 · 0 评论 -
activiti6.0工作流功能总结
工作流知识: 我们主要使用场景一个是OA,一个是ESB接口流程编排 一.选型:activiti6.0 原因:1.比较稳定 2.集成springboot 3.相比于flowable缺少一些高级功能目前用不到,也更加复杂,但是activiti6可以升级为flowable,而且学习文档比较多 二.接口和表: RepositoryServic...原创 2020-06-03 11:44:48 · 986 阅读 · 1 评论 -
记录透传日志功能设计代码(升级版本)
使用方法: 在controller上增加 注解@AutoLog 支持多个实体,类属性上增加@AutoLogField注解:(为什么只支持controller因为是基于HandlerInterceptor做的,如果要支持service也可以,需增加MethodInterceptor)原理:配置相关注解以后,第一次请求时会自动把相关字段存字典表,设置了缓存,减少请求次数,如果后续请求参数增加属性需要入库需要执行插入sql插入mysql举例:RequestVo增加了一个字段 nam...原创 2020-05-27 19:30:19 · 272 阅读 · 0 评论 -
幂等注解实现
业务需求:有些前端,或者第三方的接口请求要实现幂等操作,考虑到节省开发时间,做了一个可配置的幂等注解先说明基本的实现原理和优缺点,后面直接贴代码:原理:1.通过自定义注解配置幂等参数:唯一主键,过期时间;2.通过HandleInterceptor拦截请求方法和注解参数,进行校验3.根据唯一主键,主键的值,过期时间,请求url来生成唯一token存redis。后续重复请求判断redis是否已经存在key。如果redis存在则说明已经执行过了(不管执行失败还是成功都算)优点:.原创 2020-05-18 19:08:38 · 895 阅读 · 0 评论 -
linux服务器 cpu性能问题知识点,常用查询和解决方法
一,基础知识:1.平均负载:单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数{所谓可运行状态的进程,是指正在使用 CPU 或者正在等待 CPU 的进程,就是我们常用 ps 命令看到的,处于 R 状态的进 程。不可中断状态的进程则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps ...原创 2020-03-09 23:11:01 · 310 阅读 · 0 评论 -
并发编程艺术.pdf研读后知识整理
标题:之前看过的并发编程艺术这个pdf的知识点整理,可能有点乱我们在乎的知识不是格式哈哈内容:一:1. volatile的使用优化(解决共享变量伪共享):Java7及以下使用多余字节追加到64字节 ,使用追加到64字节的方式来填满高速缓冲区的缓存行,避免头节点和尾节点加载到同一个缓存 行,使头、尾节点在修改时不会互相锁定 ...原创 2020-02-25 17:58:39 · 446 阅读 · 0 评论 -
Spring和springboot的整体流程
最近面试遇到了高频题目,spring和boot的启动和初始化的过程,这边简单总结下(理解大于死记硬背)大体流程:(1)Spring装载bean过程(beanname,y依赖关系都是保存在了concurrentHashMap):tomcat启动创建servlet,创建servletContext ,ServletContext是一个web应用的上下文,是一个全局信息的存储空间,代表...原创 2020-02-24 22:35:24 · 413 阅读 · 0 评论 -
java 中断线程的方法
一.非阻塞的操作直接on&&!Thread.currentThread().isInterrupted()可以解决,on可以改成更多的其他自定义操作二.阻塞的操作 通过抛出异常然后Thread.currentThread().interrupt();进行中止三.如果线程在I/O操作进行时被阻塞: 调用阻塞该线程的套接字的close()方法。在这种情形下,如...原创 2020-02-23 16:58:52 · 124 阅读 · 0 评论 -
常用的锁优化思路
一.减少锁的时间不需要同步执行的代码,能不放在同步快里面执行就不要放在同步快内,可以让锁尽快释放;二.减少锁的粒度它的思想是将物理上的一个锁,拆成逻辑上的多个锁,增加并行度,从而降低锁竞争。它的思想也是用空间来换时间;java中很多数据结构都是采用这种方法提高并发操作的效率:1.ConcurrentHashMapjava中的ConcurrentHas...原创 2020-02-18 22:11:11 · 171 阅读 · 0 评论 -
上家公司的结算系统架构图梳理
马上要离开这家公司,给自己参与的一个结算项目梳理下流程:项目简介:为加盟店,商城订单,供应商和公司进行各种交易费用,税费,抽成而服务的结算平台:主要包括结算,对账,支付,往来等功能架构图如下:...原创 2020-02-16 19:58:02 · 1835 阅读 · 0 评论 -
guava的eventBus和disruptor比较
EventBus:基于观察者模式实现的,本文基于同步模式来操作;这里只介绍下几个常用操作的代码实现:register:注册观察者实现:主要就是以把观察者观察的类key,同类观察者的set集合为value构成一个ConcurrenHashMap代码如下: private final ConcurrentMap<Class<?>, CopyOnWriteArray...原创 2020-01-09 16:22:07 · 2377 阅读 · 0 评论 -
redis分布式缓存使用的一些问题
分享下使用分布式缓存和本地缓存的一些设计和问题:1.什么样的数据,场景需要用到缓存?数据:访问频率高,修改频率低,比如我们系统的供应商信息,商品标签等等场景:高并发,时效性强,比如用户下单,批量结算等2.用什么数据结构保存缓存呢? 简单的数据类型直接String,如果是复杂对象hash3.如何发现哪些key是热点key?热点key肯定会有超高访问导致带宽不够的问...原创 2019-12-30 10:35:46 · 205 阅读 · 0 评论