自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 收藏
  • 关注

原创 jdk动态代理的简单原理

首先看看代理模式的基本类图:此图来源于:https://juejin.im/post/5c1ca8df6fb9a049b347f55c我们最主要的目的是调用RealSubject的request方法,但是在实际过程中,我们可能需要在这个方法之前前后做一些别的逻辑处理,为了不做代码侵入或者有些时候我们根本没有办法修改RealSubject的源码,这个时候采用代理模式就非常有效,通过创建一个代理类...

2020-03-25 21:41:21 241

原创 tomcat处理请求的过程

第一步:Acceptor接收NIO请求//在Acceptor那种的run方法中,有这么一段代码用于接收客户端请求,endpoint.ServerSocketAccept()方法回在这里阻塞//没错接到一个连接都创建一个新的SocketU socket = null;try {// Accept the next incoming connection from the server//...

2020-03-17 21:14:15 424

原创 Spring结合tomcat 404的三种原因

前不久看SpringWeb源码的时候,做了一个简单的零xml的web项目,但是启动后就是提示404,网上找了很久还是没有找到原因,最后终于发现了与网上大多数说法不太一样的两个原因下边看看一段代码, 看这段代码我们知道,如果不用springboot,那么这段代码是springweb项目的关键,当然前提是我们实现的零xml,如果你要提供web.xml配置文件,那就另说了第一种注意到addMapp...

2020-03-17 16:34:24 1035

原创 屏控程序

屏控程序疫情期间对于没有工作的人而言,太难了,闲着吧,写一个屏幕控制程序,据我知道,之前的远程控制都是界面传输的,像qq的远程控制等,都是截图然后传输到自己的屏幕,但是我的需求是我自己有两台电脑,我想通过一个键盘鼠标控制他们,但是又不想在我的电脑上出现另一个电脑的画面*远程过程调用使用thrift实现输出传输** 使用Robot实现鼠标键盘事件的模拟** 通过鼠标移除屏幕实现切屏功能...

2020-03-07 18:45:48 704

原创 利用SpringBoot自定义一个MQ

前几天面试,面试官说只用springBoot实现一个mq,同时提供生产和消费restful 风格接口,正好疫情期间,在家也没什么事,就简单的模拟kafka实现了一个,通过学者利用SpringBoot自定义了一个starter,作为模块间通信项目连接...

2020-02-22 11:49:26 466

原创 spring mybatis 零配置及原理

首先我们看看依赖 compile group: 'org.mybatis', name: 'mybatis', version: '3.5.4' compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.17' compile group: 'com.mchange', name: 'c3p0',...

2020-02-11 22:22:30 288

原创 Spring中Aware的原理

之前一直不太知道Aware这个东西有什么用,看了看官网,别人的博客,今天算是有点眉目了,在此做一个笔记在Spring中有一个接口,但是这个接口中没有一个方法,那么它有什么用呢,通过注释知道,这个接口起到的是一个标记作用,或者说的高大一些,做到面向接口编程,具体需要实现的工作还是需要子类来实现/** * A marker superinterface indicating that a bea...

2020-02-09 15:14:01 2060

原创 zookeeper实现分布式队列

zookeeper实现分布式队列利用zookeeper的有序节点和节点一旦被删除,其他连接就不能重复删除的特性实现一个非常简单的分布式队列,说实话,我觉得用zookeeper实习分布式队列并不合适,而且我这里实现的也是最简单的,效率也不高实现细节,利用create -s /queue/q_创建有序节点,这样数据就放到队列了,当然这一步是使用zookeeper的客户端Curator实现的,然后取...

2020-01-22 13:20:12 476

原创 zookeeper实现分布式锁

多线程下保证资源的安全性是一个很重要的事情,在单机上,我们可以通过synchronized, Lock等机制实现线程同步,但是在分布式情况下,又该怎么实现同步机制呢,我们可以利用redis单线程的机制实现分布式锁,但是这里我们利用zookeeper实现分布式锁。其实原理和之前master节点选举大致相同, 每个服务向zookeeper获取锁,如果获得到锁就当当前节点数据保存到/lock节点中,其...

2020-01-21 20:40:41 183

原创 zookeeper实现负载均衡

先看看这张图,业务服务在/web节点下注册临时节点,如server1服务对应/web/web1临时节点,然后监控/web节点的孩子节点事件,使用一个集合保存这些点数据,当新增和移除时,分别在记录这些节点数据,下边我们实现一个加权随机负载均衡的模拟实现1.定义节点数据,保护节点路径,服务ip,服务端口,权重/** * @ClassName NodeData * @Author mjlft...

2020-01-21 17:10:22 1308

原创 zookeeper实现消息订阅

消息订阅应用非常广泛,像spring config中,当配置发生改变时其他需要第一时间发现并且更新自己的配置信息;其实像之前说到的master选举也是一样,在我看来也是消息订阅的一种特例,当主节点宕机时,其他节点需要立即感应,并且同时立马进行主节点竞选其实这一篇与master竞选原理一致,都是监听一个节点的状态,master节点选举主要监听的是主节点的移除事件,而消息订阅需要更具不同的场景进行不...

2020-01-21 11:45:17 1037

原创 zookeeper实现master选举

zookeeper的使用创建非常多,在大数据中经常用来实现master选举,在分布式系统中实现分布式锁,也可以用来实现符在均衡,分布式队列,分布式命名服务,下边就来说说使用zookeeper实现master选举1.定义一个节点数据类:/** * @ClassName NodeData * @Author mjlft * @Date 2020/1/20 21:58 * @Version ...

2020-01-20 23:35:55 218

原创 spring cloud zuul 与 sentinel 结合使用

本来大型服务处理请求超时,限流,降级熔断工作用hystrix,但是这个这个项目不再更新了,虽说它现在提供的版本不会影响到大多数开发者的使用,但是长远考虑,被更换是一件必然的事,而且现在像resilience4j, Sentinel这样的替代品出现,今天我们就看看使用zuul 与 Sentinel整合,实现降级与超时处理,其实网上有很多这样的教程,这里我只是做一个自己的笔记而已1.必须的依赖 ...

2020-01-18 22:33:41 2995

原创 spring cloud 注册服务状态UNKNOW(1)

出现这个状态的原因是spring cloud在检测注册服务健康状态时出现了问题,网上提供的方法都是开启健康状态检测,或者是配置的位置不对,但这都只是针对配置而言的,下边是我的方法:查看依赖,检测健康状态需要提供一个/health接口,这个是有spring boot的spring-boot-actuator提供的服务,但是在spring-boot中使用,我们引入平时使用的这个依赖就会出现问题,...

2020-01-18 11:44:48 351

原创 Springboot 自定义starter

之前说了SpringBoot的自动配置原理,现在说说一个简单的自定义spring-boot-stater,这个starter的功能很简单,就是没200毫秒在控制台输出当前时间,要注意的是这个spring-boot-stater是一个独立的模块,与我们自己的spring-boot项目只需要用一个注解接口生效,取消这个注解,那么这个功能也就没了,功能描述完了,接下来我们看看代码实现:首先定义一个配置...

2020-01-14 23:16:16 153

原创 spring 事件监听原理

首先我们看看在Spring如何实现自定义事件监听,首先定义事件:public class MyEvent extends ApplicationEvent { public MyEvent(Object source) { super(source); }}然后定义一个事件监听器,注意监听器需要交给容器管理,所以需要标注@Component注解@Componentp...

2020-01-14 17:59:39 1698

原创 SpringBoot自动配置

SpringBoot提供了自动配置功能,这样可以让我们更加专注的做我们关注的业务逻辑,而不必过多的去考虑哪些在使用Spring的时候需要考虑的各种配置,例如我们在使用spring webmvc的时候,提供下边这样一段代码,然而,这段代码对于所有使用Spring webMvc而言,基本属于通用,也就是我们添加一个有关webmvc的模块就需要提供这样一段代码,所以springboot有一次做了封装,提...

2020-01-14 12:05:11 603

原创 Spring webmvc 请求处理流程

Spring webmvc 请求处理流程这是网上找的一张图片,现在大家也都认为这个流程是没有问题的,但是我这几天跟了一遍源码,发现这个图片并不完全,里边简化了很多东西,而且这个图只是其中一种情况,还有一种情况没有描述,下边是我的处理流程其实大体流程是没有问题的, 下边我主要描述区别1.我添加了filter部分,不过这部分可以说是servelt的,所以大家的图中没有画出来也没有什么问题2...

2020-01-08 16:16:22 408

原创 java.lang.IllegalArgumentException: Content-Type cannot contain wildcard type '*'

Spring webMVC 使用FastJsonHttpMessageConverter时出现如下异常该怎么处理? java.lang.IllegalArgumentException: Content-Type cannot contain wildcard type '*' at org.springframework.util.Assert.isTrue(Assert.java:118)...

2020-01-08 11:38:50 9917 2

原创 Spring webMvc环境准备问题

网上找到spring webmvc的资料都是管理请求流程,没有整应用环境初始化流程,这几天正在看Spring webmvc的源码,所以就想知道使用spring webmvc的时候, 整个环境是怎么初始化的,下边我会采用问答的方式解决我在这个过程中关注的一些问题先来看看请求处理流程:1.其实这个流程大家基本都知道,可是我想知道的是既然是Spring webmvc,那么applicationCo...

2020-01-06 18:17:02 239

原创 intellij编译Spring遇到的问题

编译过程:问题:工具版本?ieda: intellij 2019.1.3 【使用intellij2019.3.1编译会出现问题】gradle: 4.10 【gradle版本过高或过低都可能有问题】jdk: 1.8.0_181 【jdk版本至少是1.8,但是某些版本可能存在问题】spring: 5.20问题:spring编译顺序?首先编译spring-oxm,然后再编写Spring-c...

2020-01-04 22:22:44 802

原创 spring DenpendOn循环依赖判断原理

循环依赖存在一下几种情况:​ @DenpendOn 循环依赖​ 构造器参数循环依赖​ @Autowire这样的属性依赖今天主要说说@DenpendOn循环依赖的判断,spring首先解析出@DependOn所提供的直接依赖,然后通过嵌套查询的方式判断是否存在依赖循环,下边我们通过问答的方式来分析判断原理问题:spring在什么时候解析@DependOn,存储这些直接依赖的需要解析注...

2020-01-01 11:30:34 1697

原创 spring属性装配

在spring中,我们都用过@Autowire, @Resource, @Inject, @Value这几个注解,可是我们都知道这些注解标注的属性值是怎么装配到bean中的么?问题:首先我们看看这几个注解的不同?@Value:将配置文件中,或者环境中的值装配到bean属性上@Autowire与@Inject都是都是由AutowiredAnnotationBeanPostProcessor进行...

2019-12-31 18:57:28 293 1

原创 Spring BeanFactoryPostProcess 后置处理器

Spring BeanFactoryPostProcess 后置处理器在Spring 中有两大后置处理器,BeanFactoryPostProcessor, BeanPostProcessor, 从Spring源码中我们知道,在初始ApplicationContext的时候就添加了一个BeanFactoryPostProcessor到容器了,那就是【ConfigurationClassPostP...

2019-12-27 11:31:43 434

原创 Spring 的beanDefinition

Spring 的beanDefinition对于学习Spring而言,BeanDefinition是非常重要的,而且在Spring内部提供多种类型BeanDefinition,下边是Spring官网对BeanDefinition的描述Within the container itself, these bean definitions are represented as BeanDefin...

2019-12-25 15:29:27 229

原创 Spring bean生命周期回调原理

Spring 中生命周期回调原理Spring 官方文档描述:根据Spring 生命周期回调描述描述,实现生命周期回调有三种方式:1.注解方式:@PostConstruct/@PreDestroy2. 实现接口:InitializingBean3. xml配置文件中指定@Componentpublic class AddBean implements FactoryBean<O...

2019-12-24 21:01:52 614

原创 qt 第一程序

抽风了想联系一下c++, 然后根据教程实现如下界面需求:需求描述:1.要求通过最上边的三个复选框调整文本框中文件字体属性,包括添加下划线、斜体、粗体2.通过第二栏中的单选框调整文本框中字体颜色,默认为黑色, 调整分别为黑色、红色、蓝色3.点击最下边三个按钮可以关闭窗体实现需求:1.创建工程1.1 在文件->新建文件或项目左边栏选择 application, 右边栏选择Qt W...

2019-06-02 18:58:42 141

原创 springboot多模块resources共享问题

spring boot 中maven多模块依赖配置文件共享问题,当我们在使用多模块是,可能需要配置一些参数,比如我们将与数据交互操作进行抽取形成了一个独立的模块,当其他模块需要依赖这个模块时,如果不做配置共享处理,那么在依赖模块中也需要和被依赖模块做相同的配置,这样显然非常麻烦而且不合理,我们希望做到同一套配置在依赖模块中也生效,无需重复做相同的配置举例数据库操作模块 : db --> ...

2019-04-19 23:08:44 9820

原创 jenkins从安装到构建maven项目

jenkins从安装到构建maven项目1.jenkins简介​ 参考:https://blog.csdn.net/houyefeng/article/details/509127562.jenkins安装​ 2.1 jenkins使用过程中需要java​ 2.2 jenkins 需要使用maven​ 2.3 jenkins 需要使用git​ 2.4 jenkins安装​ htt...

2019-04-16 19:29:34 680

原创 Storm 简单记录

Storm 简单记录DRPC(Distributed Remote Procedure Call) 分布式远程调用过程DRPC是通过一个DRPC服务端(DRPC server)来实现分布式RPC功能的,DRPC server负责接收RPC的请求,接收到请求后将其发送给Storm中运行Topology,等待接收Topology发送的处理结果,最后将结果返回给请求客户端客户端通过向DRPC服务...

2019-03-26 23:14:05 155

原创 storm集群搭建小记

storm 安装记录伪分布式安装​ 1.下载storm包:https://www.apache.org/dyn/closer.lua/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz​ 2.解压strom包: tar -xvf apache-storm-1.2.2.tar.gz​ 3.在storm根目录下创建logs日志目录​ 4.启动...

2019-03-23 20:26:41 136

原创 spark 核心笔记记录

spark 核心笔记记录文章目录spark 核心笔记记录一、spark简介1.spark是什么:2.spark的运行模式:3.spark与MR的区别4.spark核心RDD5.RDD的宽窄依赖![在这里插入图片描述](https://img-blog.csdnimg.cn/20190304233905435.png?x-oss-process=image/watermark,type_ZmFuZ...

2019-03-04 23:46:51 403

原创 DataX KafkaWriter 插件文档

DataX KafkaWriter 插件文档最近学习使用datax工具, 发现阿里官方提供并没有kafkawriter插件,于是边自己写了一个;该插件主要借鉴:datax插件开发宝典然后在此基础上改造源码:https://gitee.com/mjlfto/dataX/tree/master/kafkawriter1 快速介绍KakfaWriter提供向kafka中指定topic写数据。...

2019-02-20 17:42:27 8421 6

转载 flume mysql 导入数据到 hdfs

#声明source, channel, sinka1.sources=sqlSourcea1.channels=c1a1.sinks=s1#声明source类型a1.sources.sqlSource.type=org.keedio.flume.source.SQLSourcea1.sources.sqlSource.hibernate.connection.url=jdbc:mys...

2019-02-01 15:18:45 1185

转载 Hbase094XReader & Hbase11XReader

Hbase094XReader &amp; Hbase11XReader 插件文档1 快速介绍HbaseReader 插件实现了从 Hbase中读取数据。在底层实现上,HbaseReader 通过 HBase 的 Java 客户端连接远程 HBase 服务,并通过 Scan 方式读取你指定 rowkey 范围内的数据,并将读取的数据使用 DataX 自定义的数据类型拼装为抽象的数据集,并传递...

2019-01-31 10:01:11 674

转载 DataX FtpWriter

DataX FtpWriter 说明1 快速介绍FtpWriter提供了向远程FTP文件写入CSV格式的一个或者多个文件,在底层实现上,FtpWriter将DataX传输协议下的数据转换为csv格式,并使用FTP相关的网络协议写出到远程FTP服务器。写入FTP文件内容存放的是一张逻辑意义上的二维表,例如CSV格式的文本信息。2 功能与限制FtpWriter实现了从DataX协议转为FT...

2019-01-31 09:49:10 3083

转载 DataX FtpReader

DataX FtpReader 说明1 快速介绍FtpReader提供了读取远程FTP文件系统数据存储的能力。在底层实现上,FtpReader获取远程FTP文件数据,并转换为DataX传输协议传递给Writer。本地文件内容存放的是一张逻辑意义上的二维表,例如CSV格式的文本信息。2 功能与限制FtpReader实现了从远程FTP文件读取数据并转为DataX协议的功能,远程FTP文件本...

2019-01-31 09:47:41 4527

转载 hdfswriter

DataX HdfsWriter 插件文档1 快速介绍HdfsWriter提供向HDFS文件系统指定路径中写入TEXTFile文件和ORCFile文件,文件内容可与hive中表关联。2 功能与限制(1)、目前HdfsWriter仅支持textfile和orcfile两种格式的文件,且文件内容存放的必须是一张逻辑意义上的二维表;(2)、由于HDFS是文件系统,不存在schema的概念,...

2019-01-29 14:08:56 1424

转载 hdfsreader

DataX HdfsReader 插件文档1 快速介绍HdfsReader提供了读取分布式文件系统数据存储的能力。在底层实现上,HdfsReader获取分布式文件系统上文件的数据,并转换为DataX传输协议传递给Writer。目前HdfsReader支持的文件格式有textfile(text)、orcfile(orc)、rcfile(rc)、sequence file(seq)和普通逻辑二...

2019-01-29 14:07:50 1204

转载 mysqlWriter

Datax mysqlWriter 内容来自:https://github.com/alibaba/DataX/blob/master/mysqlwriter/doc/mysqlwriter.md1 快速介绍MysqlWriter 插件实现了写入数据到 Mysql 主库的目的表的功能。在底层实现上, MysqlWriter 通过 JDBC 连接远程 Mysql 数据库,并执行相应的 inser...

2019-01-29 11:25:18 665

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除