- 博客(24)
- 收藏
- 关注
原创 最强Mock工具TestableMock使用
最近研究了下阿里出品的Mock工具TestableMock,感觉在Mock这块儿,它是真的比现有的Mock工具强悍太多了。但我绝得还得补充上一句,开发者还要关心能够很方便地Mock出依赖的第三方返回不同结果的情况。这是一个很常见的业务场景,依赖第三方的返回结果来决定业务的走向。这个调用,在测试的时候要换成那个假的Mock方法。官网说:开发者真正关心的只有一件事,"
2024-04-26 18:20:31
475
原创 自然语言结构化处理工具-Apache UIMA Ruta使用(四)与项目结合
在前面的文章中,介绍了如何在Eclipse的WorkBench中如何编写调试及调试脚本,通常情况下,我们都需要把它跟我们的代码整合起来,部署成为服务的,这里我们介绍下这种整合如何实现。另外还要注意,新建RUTA项目后生成的或是新建的XML文件,里面是有一些基于绝对路径的引用,暂时还没有做到只传如一个地址就能加载成功,比如。总体来说,用RUTA来进行文本处理还是很轻量化,不需要特别专业的NLP知识的,比较推荐大家来使用。这个文件中的这三处路径,需要在部署之后进行路径的调整,暂时未找到解决方案,需要注意。
2024-03-14 03:09:35
534
原创 自然语言结构化处理工具-Apache UIMA Ruta使用(三)项目实战
项目要求,对医生书写的门诊病历及住院病程记录进行挖掘,找出符合条件的出现一定症状的患者,统计每日人数,所给的规则是这样的:同时还含有补充条件:常见的门诊病历是下面这样的:主诉:患者XXX,男,69岁,因“反复气促、发热、咳嗽咳痰12天,加重1天”于2023-05-31 17 :40收入本区,伴有紫癜。首记患者基本信息:患者男,69岁。现病史:患者家属代诉患者于12前无明显诱因出现气促、发热,具体热型不详,伴有咳嗽咳痰,无恶心,无呕吐,
2024-03-14 01:01:59
1128
原创 JAVA使用itextPdf将数据填入PDF模版文件的方式打印PDF文件
对于前端来讲,再重新排版布局,可就太折磨人了,而且像这种需求,我们还会经常接到,所以就考虑,有没有一种方式,在已经有打印模版的情况下,如何能快速地实现这个需求,经过查找,发现使用itexPdf可以往PDF模版中放入数据,word文件可以很轻易地转换为pdf文件,所以经过一番探索,自己写了一个PDF打印工具类。能把大部分的横线 和选择项勾选出来,上图点击左侧的管理表单控件,能把识别到的表单项识别出来。这里把它的名称改一改,这里可以改字体大小,字体颜色,控件的位置,是否换行等,可以自己摸索。
2024-03-04 19:03:43
1973
原创 Mysql清除#sql开头的临时表
系统预警提示磁盘空间不足:排查发现数据库中存在#sql开头的文件,而且各个都不小,每个都有几十G的大小然后发现我这个是属于第二种,就是只有idb文件的这种情况。然后比较糟糕的是,我并不能确定,我这个临时文件之前的表结构是什么。
2023-12-26 11:22:31
356
2
原创 自然语言结构化处理工具-Apache UIMA Ruta使用(二)Ruta 规则简介
在中我们已经搭建好了Ruta的Workbench,并且在只是新建了一个空的规则脚本的情况下,就能运行一个规则脚本,说明这个组件已经帮我们处理的很多内容,在这篇文章中,我们将继续了解Ruta的规则。
2023-12-11 15:26:35
1117
原创 自然语言结构化处理工具-Apache UIMA Ruta使用(一)基于Eclipse的WorkBench安装
Apache UIMA (Unstructured Information Management Architecture),从英文能看出来,它是一个用于分析非结构化内容(比如文本、视频和音频)的组件架构和软件框架实现,用于对非结构化数据进行分析处理用的。而Ruta(Rule-based Text Annotation) 则是UIMA下面一个专门用于文本处理的组件,它是基于规则脚本的,可以很方便地用它 来抽取文本信息中的信息这里是存放规则脚本的地方。
2023-12-07 00:36:38
1525
原创 Drools启动报Unable to build index of kmodule.xml
Unable to build index of kmodule.xml
2022-11-16 14:59:25
694
原创 NIFI源码学习-(六)NIFI与KETTLE区别
kettle和NIFI都是大数据工具,不过前者是CS架构,只能在本地客户端开发好job之后,把包部署出去,后者却能在BS架构下通过浏览器页面随时调整流程。但是这些都是只是表面。在网上也有对于二者的比较,说的到点的能说到二者对于实时性数据的支持上差异比较大,kettle几乎不支持实时性。本文详细说下这种差异导致的不同使用场景和内部原因。一、适用场景kettle:需要通过定时任务的方式,从不同的数据源进行ETL作业。此时数据多是已经产生了的。NIFI:需要与别的系统通过实时调用服务的方式,将数据
2022-05-25 17:39:03
4606
原创 NIFI源码学习-(五、3)NIFI集群的FlowFile负载均衡实现-FlowFile传递
上节说到,NIFI会在注册中心,维护这样一个数据结构:
2022-05-23 20:36:48
674
原创 NIFI源码学习-(五、2)NIFI集群的FlowFile负载均衡实现-注册中心
上节说到,NIFI在集群模式的时候,会对NIFI的任务流进行负载均衡,将处理器要处理的流文件分担到集群的各个节点来处理提升处理效率。本节来学习下NIFI负载均衡队列的实现。一、源码分析梳理下新建连接时候的流程,与启动处理器相似。控制器层:面板层:DAO层:FlowcController层这里构建了一个队列工厂,没有负载均衡的时候,新建一个 StandardFlowFileQueue 实例。当处于集群模式的时候,会新建一个SocketLoadBalancedFl..
2022-05-11 22:03:57
698
原创 NIFI源码学习-(五、1)NIFI的集群部署实现-Two-phase Commit(2PC)协议
NIFI是可以部署成集群的,在多台机器上分布式部署提高数据吞吐能力。本文第五章,通过源码,来梳理NIFI的分布式如何实现。在上一节 NIFI的 WAL 日志部分有提到,NIFI的数据,分为两部分,一个是在界面上可操作的配置信息部分,比如添加的处理器,新增的处理器组,两个处理器之间新增的连接,处理器的启停,另外一个就是flowFile部分,比如Web接口接到XML之后,拆分成了很多条。所以这部分也分为两部分来说。一、界面配置同步还是以处理器的启动为例,在本系列的第一篇文章中,就已经讲到了启动处理器
2022-05-09 20:38:23
1234
原创 NIFI源码学习-(四、3 )WAL细节
上篇文章理清楚了NIFI WAL机制实现的大致流程,但是想一想的话,还只是实现了在操作数据之前先写日志,但是每次每次修改都写日志,都得持久化到文件中,那效率这块儿是如何保证的呢?带着这个疑问,继续跟着上篇文章暂时搁置的 update 方法来一探究竟。进入到 SequentialAccessWriteAheadLog 成员变量 journal在checkpoint的时候,会对它进行更新,同时把 streamPool 也传了进去。接着看update方法,实现选择 LengthDelimit.
2022-04-22 19:36:16
380
原创 NIFI源码学习-(四、2)-WriteAheadFlowFileRepository
带着上篇文章的疑问,我们深入WAL实现的内部,我们看下记录日志的时候都有哪些操作。跟着这个updateRepository方法,我们可以进入WAL的具体实现。public interface FlowFileRepository extends Closeable { /** * 初始内容仓库,通过claimManager 可以将流文件的content部分写入内容仓库 */ void initialize(ResourceClaimManager cla.
2022-04-21 18:44:02
397
原创 NIFI源码学习-(三)ProcessSession
在调用处理器的 onTrigger 方法的时候,传入了两个参数,ProcessContext context, final ProcessSession session进入到ProcessContext 的代码:注释写的比较清楚,为处理器和NIFI框架提供了一个桥梁,实际使用中,主要用来在处理器中获取页面上为处理器设置的各个属性。我们主要来关注 session 变量。从第一张图中可以看出,每次处理器执行,都会重新生成一个session,多线程时候每个线程都会生成一个。ProcessSes
2022-04-14 18:43:46
822
原创 NIFI源码学习-(一)处理器启动
用了挺长时间的NIFI了,今天结合1.11.4版本的源码把对NIFI一些实现上的理解 整理一下当在界面上点击右键 start 一个处理器,会向这个地址发送一个请求: http://localhost:8080/nifi-api/processors/092f4a2b-0180-1000-3e18-f52febec01b8/run-status 处理这个请求的控制器位置如下:暂时抛开其他细节,747行这里基本上是把从URL 和body中的参数传.
2022-04-12 22:10:18
1612
原创 GIT合并两个不同的仓库的代码
一、背景不同的团队开发同一套系统,不同的团队使用的不同的git仓库,现在需要同步别的团队的代码到我们团队,说下我的操作。二、操作这里假设我们自己的仓库为A,别人的仓库为B,需要将B的dev20211217分支合并到A的master分支1)分别拉取A,B仓库的代码到本地两个不同的文件夹 2)IDEA打开A项目,以master为基础新建分支mergeTest,并切换过去 3)在另外的窗口打开B项目,将项目切换到dev20211217分支 4)从资源管理器进到A项目的目录下边,删除项目相关的
2021-12-17 20:15:06
1425
原创 调用MQ发生错误, MQJE001: 完成代码为“2”,原因为“2495”
最终定位原因,包中的一个引用发生了变化,本该是import com.ewell.mq.queue.MessageEntity;import com.ibm.mq.MQEnvironment;import com.ibm.mq.MQException;import com.ibm.mq.MQGetMessageOptions;import com.ibm.mq.MQMessage;import com.ibm.mq.MQPutMessageOptions;import com.ibm.mq.
2021-07-29 20:15:28
2427
原创 SpringBoot-Log4j2组件引起阻塞hung住问题排查一例
一、问题现象基于SpringBoot的jar包运行的时间会比较长,在运行过程中,进程hung在那里,不再有日志输出,数据库也并没有一直在执行的SQL任务。二、问题排查使用Jstack导出java的线程信息如下:2021-02-22 18:46:38Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.121-b13 mixed mode):"Attach Listener" #99 daemon prio=9 os_prio=.
2021-02-26 12:44:50
3070
3
原创 基于JAVA HAPI包以树形结构实现可配置式 HL7 V2消息接收与解析
一、背景HL7 卫生信息交换标准(Health Level 7)
2020-11-27 18:35:28
14222
27
原创 Docker容器占用服务器大量硬盘空间优化一例
Docker容器占用服务器大量硬盘空间优化一例目录先上干货背景初始解决方案问题所在总结目录先上干货当你的Docker容器空间不足时,不用急着更改Docker服务或者Docker容器的默认设置,尝试去扩大或缩小默认给docker容器分配的硬盘空间当你的Docker容器空间不足时,不用急着更改Docker服务或者Docker容器的默认设置,尝试去扩大或缩小默认给docker容器分配的硬盘空间...
2019-01-28 14:03:19
3002
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人