1

认识工作流程引擎

相关概念BPM:Business Process Modeling,业务管理流程,是对实现生活工作中的流程问题进行抽象建模来推导解决方案。BPMN:Business Process Model and Notation,一种流程建模描述语言,是业务流程建模的一种标准注解BPMN2.0:专业组织和团体发布的一套标准或规范,定义业务流程的符号以及模型,确保流程的定义实现可移植性WfMC:Workflow Management Coalition,工作流管理组织主流的框架主流的都是用java开发的JBPM,Activiti等,其他流程引擎中有大部分都是基于这两者开发的。工作流定义使在多个参与者之间按...

阅读全文>>

0

授权码模式(authorization code)获取access_token

1.oauth2获取access_token的几种方式:简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中。密码模式(password):将用户名和密码传过去,直接获取access_token。客户端模式(client credentials):用户向客户端注册,然后客户端以自己的名义向“服务端”获取资源。授权码模式(authorization code):通过客户端的后台服务器,向服务端认证。2.授权码模式(authorization code)过程在浏览器中访问OAuth2 服务器的认证接口:http://localhos...

阅读全文>>

0

Uni-App一套代码多端(iOS、Android、H5、以及各种小程序)运行

了解 Uni-Appuni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。uni-app 是由 DCloud 公司打造的,DCloud公司拥有340万开发者用户,旗下uni-app有5万+案例、600+插件、50+微信/qq群、更高的百度指数,可以放心选择。Vue.js 一套代码,发布到iOS、Android、H5、以及各种小程序为什么要用 Uni-Appuni-app在开发者数量、案例、跨端抹平度、扩展...

阅读全文>>

0

高并发高性能的定时器实现

前言我们经常都会碰到延迟任务,定时任务这种需求。在网络连接的场景中,常常会出现一些超时控制。随着连接数量的增加,这些超时任务的数量往往也是很庞大的。实现对大量任务的超时管理并不是一个容易的事情。几种定时任务的实现java.util.TimerJDK 在 1.3 的时候引入了Timer数据结构用于实现定时任务。Timer的实现思路比较简单,其内部有两个主要属性:TaskQueue:定时任务抽象类TimeTask的列表。TimerThread:用于执行定时任务的线程。    private final TaskQueue que...

阅读全文>>

0

Spring 中 @Component、@Service 等注解如何被解析?

前言@Component和@Service都是工作中常用的注解,Spring如何解析?1.@Component解析流程找入口Spring Framework2.0开始,引入可扩展的XML编程机制,该机制要求XML Schema命名空间需要与Handler建立映射关系。该关系配置在相对于classpath下的/META-INF/spring.handlers中。如上图所示 ContextNamespaceHandler对应context:... 分析的入口。找核心方法浏览ContextNamespaceHandler在parse中有一个很重要的注释// Actually scan for bea...

阅读全文>>

0

MyBatis 执行流程及源码解析

我们在日常工作中广泛使用mybatis作为数据持久层框架, 但是mybatis的执行流程是怎么样的,你了解过吗。本文将从源码角度,带你分析mybatis的工作原理。先看一个简单的例子,以Service调用Mapper接口为例:public interface StudentMapper { @Select("select * from student") public List<Map<String,Object>> query(); }@Service("studentService") public class StudentServiceImpl ...

阅读全文>>

0

撸个Spring Boot中的starter,解密自动化配置

starter背景Spring Boot目前已经变成了后端开发者必备技能之一,其中一个主要原因是Spring Boot中有个非常重要的机制(starter机制)。starter能够抛弃以前繁杂的配置,将其统一集成进starter,使用的时候只需要在maven中引入对应的starter依赖即可,Spring Boot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,以及各种配置信息的烦恼。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。Spring Boot提供了针对日常企业应用研发各种场景的spring...

阅读全文>>

0

Spring Boot搭建 ELK,这才是正确看日志的方式

在看大型网站的中间件技术,对于Elasticsearch有点兴趣,所以将配置流程记录了一下。为什么要用ELK“ELK实际上是三个工具,Elastricsearch + LogStash + Kibana,通过ELK,用来收集日志还有进行日志分析,最后通过可视化UI进行展示。一开始业务量比较小的时候,通过简单的SLF4J+Logger在服务器打印日志,通过grep进行简单查询,但是随着业务量增加,数据量也会不断增加,所以使用ELK可以进行大数量的日志收集和分析”简单画了一下架构图在环境配置中,主要介绍Mac和linux配置,windows系统大致相同,当然,前提是大家都安装了JDK1.8及以上版...

阅读全文>>

0

使用Debezium、Postgres和Kafka进行数据实时采集(CDC)

1. 背景一直在完善自己的微服务架构,其中包含分布式工作流服务的建设,目前采用的是Camunda工作流引擎。使用Camunda工作流,就会涉及到工作流引擎的用户体系如何与现有用户体系集成的问题(Flowable、Activity也类似)。现有设计中,工作流定位偏重于企业内部流程的流转,因此系统中设计了单位、部门、人员以及人事归属与Camunda工作流用户体系对应。功能设计完成,就面临另外一个问题,如何解决现有人事体系数据如何【`实时`】同步至Camunda工作流引擎中。如果现有体系数据与工作流数据在同一个库中,相对比较好解决。而微服务架构中,不同服务的数据通常存放在不同数据库中,那么就需要进行...

阅读全文>>

0

zabbix 5系列之微信实时告警

1. 微信报警: Zabbix除了可以使用邮件报警和钉钉告警之外,还可以通过微信报警,或者只要有api,你能想到的告警方式,zabbix都能实现。越灵活的告警机制越能及时有效地把告警信息推送到负责人,方便及时处理问题。 看这篇文章之前,最好看我的上篇钉钉告警,因为在这篇文章中,媒介的设置,动作的设置等介绍得比较简单,主要是功能实现,在上篇文章中,每个参数都有详细介绍。 zabbix 5系列之钉钉实时告警 1.1 微信企业号注册: 企业号注册地址:https://qy.weixin.qq.com/填写企业注册信息,个人也可以申请,不进行...

阅读全文>>