- 博客(53)
- 资源 (21)
- 收藏
- 关注
原创 Datax、Datax-web 安装部署
用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。在D:\DataX\datax\job目录下,手动新建json脚本,json示例如下图。
2023-08-23 17:38:58
1250
转载 Datax是什么
9、split()方法通过adjustChannelNumber()方法调整channel个数,同时执行reader和writer最细粒度的切分,需要注意的是,writer的切分结果要参照reader的切分结果,达到切分后数目相等,才能满足1:1的通道模型。DataX作为一个服务于大数据的ETL工具,除了提供数据快照搬迁功能之外,还提供了丰富数据转换的功能,让数据在传输过程中可以轻松完成数据脱敏,补全,过滤等数据转换功能,另外还提供了自动groovy函数,让用户自定义转换函数。
2023-08-23 16:38:57
1120
原创 记一次Kafka重复消费解决过程
而且kafka消息拉取参数max-poll-records设置了500,意味着一次会批量拉取500条消息到本地处理,而max.poll.interval.ms参数默认是5分钟,当500条消息处理时长超过5分钟后,就会认为消费者死掉了,触发再均衡,导致同一个消息被重复消费。,一次拉取数据的最大数据量,默认为52428800B,也就是50M,但是如果设置的值过小,甚至小于每条消息的值,实际上也是能消费成功的。,若是不满足fetch.min.bytes时,等待消费端请求的最长等待时间,默认是500ms。
2023-08-11 18:01:09
1208
原创 Java 线程池配置及使用
当线程数小于corePoolSize最大线程数时,会创建一个新的线程并执行任务,执行完任务之后,不会立即销毁,阻塞在队列等待执行其他任务。当大于线程数时,不会在创建线程。当等待线程队列放不下的时候,会创建临时线程,并且会通过存活时长来销毁临时线程。
2023-05-16 17:28:32
253
原创 SFTP文件上传工具类
<dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.53</version> </dependency>package com.wit.tsp.member.util;import com.jc..
2022-04-20 18:51:16
568
原创 华为云对象存储OBS-通过临时URL访问OBS
官方API文档:通过临时URL访问OBS_对象存储服务 OBS_Java_临时授权访问_华为云开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。OBS客户端支持通过访问密钥、请求方法类型、请求参数等信息生成一个在Query参数中携带鉴权信息的URL,可将该URL提供给其他用户进行临时访问。在生成URL时,您需要指定URL的有效期来限制https://support.huaweiclo
2022-04-18 18:16:33
5018
原创 Excel导入数据空格通过trim()无法去除的解决办法
操作:将excel数据通过java导入到数据库问题:201809258FDDSS 在数据库中存入这样的字符串,使用SELECT * from abc where title="201809258FDDSS "怎么搜都搜不出来。最后没办法用SELECT * from abc where title like "201809258FDDSS%" 才把它搜出来。Mysql解决步骤:想法是不是excel有制表位,是不是\n或是\tSELECT * from abc where title="20
2021-12-29 17:35:46
2200
原创 Java获取两个日期之间所有间隔时间
/** * 获取两个日期之间的所有日期集合 * * @param minDate * @param maxDate * @return * @throws Exception */ public static List<String> getDaysBetween(Long minDate, Long maxDate) throws Exception { ArrayList<String&g..
2021-11-25 14:40:23
874
原创 Excel模板下载及数据导入
<dependency> <groupId>cn.afterturn</groupId> <artifactId>easypoi-spring-boot-starter</artifactId> <version>4.2.0</version> </dependency>模板下载: @Ap...
2021-11-13 10:32:05
758
原创 RSA加密、解密
安卓底层加密方式与Java底层方式不一致,所以使用 Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding", BouncyCastleProvider.PROVIDER_NAME);/** * RSA公钥加密 * * @param str 加密字符串 * @param publicKey 公钥 * @return 密文 * @throws Exception 加密过程中的异常信息 .
2021-10-23 09:38:47
456
原创 【MySQL】数据库事务本质刨析2-MVCC
一、MVCC - 多版本并发控制MySQL中的隔离级别不单单是通过加锁实现的,实际上读已提交和可重复读两种隔离级别,在实现上还需要一个辅助,这个辅助就是MVCC(多版本并发控制)。最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞,引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了InnoDB的并发度。InnoDB是在undolog中实现的,通过undolog可以找回数据的历史版本。找回的数据历史版本可以提供给用户读(按照隔离级别的定义,有些读请求只能看到比
2021-09-07 14:14:12
134
原创 【MySQL】数据库事务本质刨析1-隔离级别
一、什么是事务传统理解mysql中的一次操作过程(sql 执行)是一次事务; 那么多个线程,同时操作mysql中的数据(同一条数据,一个范围内的数据)就叫做并发事务; 数据库层面使用不同的事务隔离级别来进行并发事务的控制,不同的隔离级别是因为数据库中内部锁机制的使用方式不同,例如有的是在select 完成之后立马释放锁,有的是在整个事务commit之后释放锁。二、关于ACID原子性:事务可以简单理解为一次数据库操作,也是执行sql的过程,要么完整执行,要么干脆不执行,整个执行结果要么全部成功,
2021-09-07 10:42:10
172
转载 【MySQL】回表查询、索引覆盖
本文实验基于MqlSQL5.6-InnoDB.一、什么是回表查询首先从InnoDB的索引实现说起,InnoDB又两大类索引:聚集索引 普通索引InnoDB聚集索引的叶子节点存储行记录,因此,InnoDB必须要有,且只有一个聚集索引:如果表定义了PK, 则PK就是聚集索引; 如果表没有定义PK, 则第一个NOT NULL unique列是聚集索引; 否找,InnoDB会创建一个隐藏的row-id作为聚集索引;所以,PK查询非常快,直接定位行记录。InnoDB普通索...
2021-09-06 14:25:22
118
原创 rabbitmq消费速度跟不上生产速度
“这会导致消息队列溢出吗?”是 . 随着队列长度的增加,RabbitMQ将进入“流控制”状态,以防止过多的内存消耗 . 它还将开始将消息持久化到磁盘,而不是将它们保存在内存中 .那么我怎样才能加快消费者的吞吐量,以便消费者能够赶上 生产环境 者并避免队列中的消息溢出有2个选择: 添加更多消费者 . 请记住,如果选择此选项,您的数据库现在将被多个并发进程操纵 . 确保DB能承受额外的压力 . 增加消费渠道的QOS值 . 这将从队列中提取更多消息并在消费者上缓...
2021-04-16 09:31:46
2724
原创 Mysql 常用sql
-- 修改表字符集alter table t_follow_upinfo convert to charset utf8mb4;-- 修改字段类型ALTER TABLE table modify column number int;-- 修改字段注释ALTER TABLE table MODIFY COLUMN number int NOT NULL COMMENT '小老师次数';-- 新增字段alter table tstudent_attendclas...
2021-04-13 14:51:28
109
原创 Feign 自定义 ErrorDecoder (捕获 Feign 服务端异常)
问题描述:Feign 客户端捕获不到服务端抛出的异常解决:微服务之间接口互相调用,Feign客户端需要捕获服务的抛出的异常,并且返回统一错误格式。@Configurationpublic class FeignErrorDecoder implements ErrorDecoder { @Override public Exception decode(String methodKey, Response response) { String ms.
2021-04-10 14:00:46
5540
2
原创 Java Json序列化全局配置
1、解决 Java对象字段类型为long时,序列化成json传递到前端会出现丢失经度的问题。2、解决 json反序列化为Java对象时,如果多了其他属性,会抛出异常的问题。3、解决 日期格式默认转毫秒的问题。@EnableWebMvc@Configurationpublic class WebConfig extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(
2021-04-09 11:39:39
1019
原创 springBoot集成极光 app消息推送
极光推送一直以来提供了“广播”、“标签(tag)”、“别名(alias)”和“registration_id”等多种推送方式,这几种推送方式正确使用场景如下:如果您希望一条推送能发给您 App 下的全量用户,建议您使用“广播”;参考:怎么样广播推送? 如果您希望一条推送能批量推送给具有相同属性的一群用户,建议您使用“标签(tag)”推送;参考:怎么样向指定的一群用户推送消息? 如果您希望一条推送只针对指定的某一个用户推送,则您可以选择“别名(alias)”或者“registration_id”推送.
2021-04-07 17:31:09
1720
原创 Java 校验日期交叉
/** * 这里共有2个时间段(b1-----e1)【b2-----e2】,4个时间点; * 相当于两条线段(b代表起点,e代表端点,b<=e),4个端点。 * <p> * 可分3种情况: * 1.包含(两条) * (b1---【b2-----e2】--e1) if(b1<=b2 && e1>=e2) * 【b2---(b1-----e1)--e2】 if(b1>=b2&&e1<=e2) * <p>.
2021-04-06 15:28:30
574
原创 使用lambda时的警告解决
reports lambdas which can be replaced with method references报告可以用方法引用替换的lambda1、获取对象的属性值警告截图:解决截图:把lambda表达式x->x.getFplrId()改成相应的“实体类::获取实体类的属性”,如Cfptz::getFplrId2、使用自定义的函数警告截图:解决截图:3、使用集合的函数警告截图解决截图:4、Integer类型判空..
2020-12-15 10:48:06
1427
原创 RabbitMQ遇到的坑
1、mq的消息体积最好控制在4MB以下,因为rabbitmq服务端的最大帧是128k,虽然消息大小支持mb,是因为底层做了拆包组包的操作,而频繁的拆包,组包导致mq出现性能异常,消费者的tcp连接出现断开的现象。2、消费者处理消息时异常,如果没有捕获异常,且mq设置了自动确认消息时,会因为消费者没有正常发送ack反馈,导致消费进入死循环,最终内存泄漏。...
2020-09-26 17:24:36
811
原创 将list集合按指定长度进行切分
将list集合按指定长度进行切分。导包:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency>List<Integer> numList = Lists.newArrayList(1, 2, 3, 4, 5.
2020-08-18 14:02:03
1682
1
原创 Java 远程执行shell脚本
package com.dyjw.information.schoolgateway.common;import ch.ethz.ssh2.ChannelCondition;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import java.io.IOException;import java.nio.charset.Charset;/** * ClassName: SSHClient * Function: .
2020-07-27 13:10:02
322
原创 java通过url获得json数据并解析
public static void main(String[] args) { try { long s = System.currentTimeMillis(); String url = "https://cmsresources.oss-cn-chengdu.aliyuncs.com/ff4bac131b1d47e69a4b40914c07b4c3.json"; String jsonText = readAll(url); JSONObject jsonO.
2020-07-23 14:23:47
1076
4
原创 阿里云OSS同区域不同bucket文件复制
// Endpoint以北京为例,其它Region请按实际情况填写。public final static String ENDPOINT = "oss-cn-beijing.aliyuncs.com";//accessKeypublic final static String ACCESS_KEY_ID = "xxxxxxxx";//accessKey secretpublic final static String ACCESS_KEY_SECRET = "xxxx";//源bucket.
2020-07-09 13:50:47
2674
原创 RabbitMQ消费端异常进入死循环-处理
RabbitMQ实现消费端异常处理前言思考:因为在开发项目时,RabbitMQ的消费端出现了异常(工具类操作文件时,未找到文件路径)。由于在此之前并未对该异常进行预判,导致异常出现后,消费端仍然对MQ的消息进行消费,但是出现异常后无法对MQ进行回复,所以造成后果消费端一直消费该条信息,进入死循环!从而引发了自己的思考:1. 开发时难免会出现异常,这种异常如果事先未预判,那么在程序运行中,消费端该怎么避免以上出现的死循环;2. 如果事先预判到异常,对其进行了抛出或捕获,消费端又该如何表现?异常
2020-07-04 14:11:51
8586
1
原创 java 平分比例,且和为1
3个人平分,每人0.333333..., 现需要平分后的结果是0.33,0.33,0.34BigDecimal sum = BigDecimal.ZERO;BigDecimal avg = BigDecimal.ONE.divide(BigDecimal.valueOf(3), 2, RoundingMode.FLOOR);for (int index = 0; index < 3; index++) { if (index == 3 - 1) { System..
2020-06-19 14:57:07
767
原创 MySql不走索引的问题
关联字段字符集不一样会导致表关联时做隐式转换,无法用到关联字段上的索引。-- 修改表字符集alter table t_follow_upinfo convert to charset utf8mb4;
2020-04-20 11:44:57
397
原创 Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
记一次使用微服务,大数据量导出Excel经过网关时的坑,导出时间在6分钟左右。正常直接访问服务,不经过网关导出是没有问题的(只是等待时间比较久),一旦经过网关就会报错:org.apache.catalina.connector.ClientAbortException: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。 at org.apache...
2020-01-13 17:27:42
5641
原创 【mysql】 数据库字符集和排序规则修改
--- 修改数据库字符集和排序规则 alter database xc character set utf8 collate utf8_general_ci;--- 查看数据库的字符集 select * from information_schema.schemata where schema_name = 'db_name';--- 修改表默认的字符集alter table ...
2019-10-15 14:27:04
3290
1
原创 java8 Stream 常用操作
1、多个属性判断,获取两个List对象的交集List<RetentionReport> collect = AMonthList.stream() .filter(item -> BMonthList.stream() .map(e -> e.getStudentId() + e.getCampusId() + e.ge...
2019-09-30 15:13:26
242
原创 docker 常用操作命令
启动/停止/重启 docker sudo systemctl start dockersudo systemctl stop dockersudo systemctl restart dockerdocker 开机自启动systemctl enable docker查看docker镜像docker images删除docker中的容器docker rm 容器id删除...
2019-08-16 15:13:52
110
原创 Centos7 安装Docker
Docker官方建议将Docker运行在Linux系统上,当然也可以在其他平台运行,本片博客只介绍在linux系统上的安装方法。Docker运行在CentOS7.X 版本以上,本文使用 CentOS 7.5 版本。Docker需要安装在64位平台。Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS ...
2019-08-16 15:08:05
133
原创 Order By高级使用
1、Order By 时通过case when 进行判断后排序需求:当F_EnvirState=0时排第二;F_EnvirState=1时排第一。SELECT F_ENVIRGRANTDATE F_ENVIRSTATE FROM T_Envir_EnvironmentalLogo ORDER BY ...
2019-08-01 11:33:22
369
原创 面试题总结
1、JVM类加载机制jvm类加载机制分为5个部分:加载、验证、准备、解析、初始化。加载:这个阶段会生成代表这个类的java.lang.Class对象,用于方法区这个类的各种数据的入口。验证:确保当前Class文件的字节流包含信息是否符合虚拟机的规则,且不会危害到虚拟机本身。准备:在方法区中为该类的变量分配所使用的内存空间。解析:虚拟机将常量中的符号引用替换为直接应用的过程。...
2019-07-05 13:35:17
116
原创 SQL性能优化
一、SQL语句中IN包含的值不应过多MySql对于IN做了相应的优化,即将IN中的常量全部存储在一个数组中,而且这个数组是排好序的。但是如果数值过多,产生的消耗也是比较大的。再例如:select id from t where num in(1,2,3)对于连续的数值,能用between就不用in;再或者使用连接来替换。二、select语句务必指明字段名称select * 增加很多...
2019-07-03 13:35:37
237
原创 什么是守护线程
当JVM中不存在任何一个正在运行的非守护线程时,则JVM进程即会退出。守护线程拥有自动结束自己生命周期的特性,而非守护线程不具备这个特点。JVM中的垃圾回收线程就是典型的守护线程。通常来说,守护线程经常被用来执行一些后台任务,但是,你又希望在程序退出时,或JVM退出时,线程能够自动,此时,就可以选择守护线程。...
2019-07-02 15:23:58
110
nginx-http-flv-module搭建rtmp服务
2022-06-06
数据库结构和数据对比工具.zip
2020-06-01
TranslationPlugin-2.6.2.zip
2019-12-16
easyuiPoi导出Excel工具类封装(支持合并单元格)
2019-09-20
数据库函数、存储过程破解工具.zip
2019-09-11
locale.hpi
2019-08-16
mybatis-generator自动生成代码.zip
2019-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人