- 博客(248)
- 资源 (7)
- 问答 (2)
- 收藏
- 关注
原创 1千w移动设备以及设备模型分各种方式存储到redis实际占用内存大小
1千w移动设备数据以及设备分存储到redis (以安卓为例:IDFA_MD5、OAID_MD5、ANDROID_ID_MD5 总设备码MD5约3000w)
2023-07-12 10:07:02
694
原创 RestTemplate消息转换器实现详解
本篇以fastjson消息转换器为例,详细的介绍了RestTemplate如何注入一个消息转换器,如何将入参pojo通过消息转换器转换给http请求,以及将http response stream转换为出参pojo。从源码设计的角度去分析消息转换器。...
2022-06-17 20:11:17
3684
原创 common-pool剖析
apache commons-pool是apache基金会的一个开源对象池组件,常用的数据库连接池dpcp和redis的java客户端jedis都是基于commons-pool实现的。单例模式 singleton:全局只有一个对象,供所有线程使用。原型模式 propotype:每次使用对象时都新建,用完之后释放。对象池模式 pool:一个池子,里面 维护 多个对象。调用方从对象池 借取 对象,使用之后 归还 给对象池。弊:利: 2.1 GenericObjectPool【ObjectPool的具体实现
2022-06-17 19:59:41
1538
原创 mysql的text/blob类型性能问题分析
text/blob类型介绍BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储。实际上,它们分别属于两组不同的数据类型家族:TEXT:字符类型是TINYTEXT,SMALLTEXT,TEXT,MEDIUMTEXT,LONGTEXT;BLOB :对应的二进制类型是TINYBLOB,SMALLBLOB,BLOB,MEDIUMBLOB,LONGBLOB。BLOB是SMALLBOLB的同义词,TEXT是SMALLTEXT的同义词。与其他类型不同,MySQL把每个BL
2021-12-26 18:33:58
3166
原创 解决: 您目前无法访问 因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常
这里写自定义目录标题问题:描述:概念解释:解决:网上最多的解决方案实际解决参考问题:访问github失败描述:您目前无法访问 因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常概念解释:HSTS:HSTS 是 HTTP 严格传输安全(HTTP Strict Transport Security) 的缩写。 这是一种网站用来声明他们只能使用安全连接(HTTPS)访问的方法。 如果一个网站声明了 HSTS 策略,浏览器必须拒绝所有的 HTTP 连接并阻止用户接受不
2021-12-02 20:16:00
134685
32
原创 Apache DolphinScheduler征稿-工作线程满载引起的生产环境血案
注:【本文正在参与“拥开源 — Apache DolphinScheduler 有奖征稿活动”】
2021-06-20 20:37:12
737
1
原创 Caused by: java.security.UnrecoverableKeyException: Encrypt Private Key failed: unrecognized algorit
之前做ES鉴权遇到的问题,忘了记录,回过头来记录一下环境openjdk1.8ES鉴权生成CA证书报错执行 ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 命令报错Please enter the desired output file [elastic-stack-ca.p12]: Enter password for elastic-stack-ca.p12 : Exception in thread "main" java
2021-05-17 09:41:49
1375
原创 Elasticsearch7.x.x开启X-pack鉴权,按步骤执行就能成功!
摘要ElasticSearch是一个基于Lucene的分布式搜索和分析引擎。Elasticsearch能够以快速有效的方式对各种数据进行存储和索引。当前ES已经广泛应用于各个领域,包括应用程序搜索、网站搜索、企业搜索、日志处理和分析、基础设施指标和容器监测、应用程序性能监测、地理空间数据分析和可视化、安全分析、业务分析等。由于大部分ES没有增加安全策略,导致数据可能被别人随意访问。简单放一则案例:在线交易经纪商FBS曝光20TB数据,160亿条记录。所以我们使用ES的时候要注意数据安全问题。一般来说我们的
2021-04-28 10:34:35
5258
原创 RocketMQ ACL鉴权设计与使用demo
摘要rocketMq开启访问权限控制的目的是为了提高系统的安全性和保密性。要保证系统的安全性和保密性,那么就需要从身份认证和访问控制两个方向出发。身份认证是对系统的用户进行有效性、真实性验证;访问控制是在身份认证的基础上,根据不同用户的操作请求加以限制。身份认证关心的是“你是谁,你是否拥有你所声明的身份”这个问题;而访问控制则关心“你能做什么,不能做什么”的问题。rocketMq在4.4.0版本时引入了ACL机制,用于访问权限控制。RocketMQ ACL使用指南一 什么是ACL?ACL是acces
2021-04-20 09:01:17
3080
原创 一文读懂idea如何快速启动DolphinScheduler,本地debug,秒查线上问题(Linux/MacOS)
摘要:接触DS时间也不短了,遇到的问题千奇百怪,啥样的都有,很多问题自己解决,也有很多问题通过官方渠道解决了。但是我们在排查的过程中,光看日志,看源码解决问题实在是过于辛酸。一般我们也会通过启用远程debug的方式去查问题,但是有时候又担心影响线上。所以我们可以选择搭建一套本地DS环境,快速复现并debug定位解决问题,这样对我们理解源码也非常有帮助。前置条件5.7或以上Mysql数据源,并初始化DS数据库JDK (1.8+) : 本机必装,请安装好后在/etc/profile下配置 JAVA_H
2021-04-20 08:49:35
2621
原创 docker安装oracle11g
docker安装oracle11g安装Dockerwget -qO- get.docker.com | bash启动Dockersystemctl start docker拉取oracle11g镜像docker pull loliconneko/oracle-ee-11g启动oracle11g镜像docker run -d -p 1521:1521 --name oracle11g loliconneko/oracle-ee-11gdocker ps参数解释:-p 11521:15
2021-03-25 20:56:26
317
原创 docker一键安装sqlserver
docker一键安装sqlserverdocker run -d --restart=always --restart=on-failure:3 --privileged=true -w /home --memory 2048m --memory-reservation 1024m -p 1433:1433 -v /etc/hosts:/etc/hosts -v /tmp/:/tmp/ -v /etc/localtime:/etc/localtime:ro -e "ACCEPT_EULA=Y" -e
2021-03-25 20:46:06
419
原创 DolphinScheduler一键安装向导模式部署脚本实现方案
当前版本基于1.2.0实现,DS其他版本也可以使用相同思路完成概述DS安装过程中,需要的DS配置非常多,总结归类一共有六大部分。第一部分是零散的配置部分,包括DS安装路径、zk地址、部署用户等信息;第二部分主要是数据源参数配置;第三部分主要是邮件参数配置;第四部分是文件系统和yarn配置;第五部分是DS服务期部署机器配置;第六部分是DS服务环境变量配置。由于DS每个配置部分又有很多,对于部署人员来说很容易配置操作失误,不是很友好,故准备使用shell脚本方式实现向导模式。思路:DS的配置文件信息主要
2021-03-15 16:30:52
988
1
原创 shell连接远程并切换用户执行多条命令,支持非免密登录
命令ssh root@remote_ip "su self_user -c 'cd /usr/local; sleep 5; pwd; exit'" 结果免密登陆的话将直接执行出结果,没有输入密码这一步
2021-03-03 11:25:23
1097
原创 DolphinScheduler升级部署简化思路及脚本实现 (1.2.1版本 其他版本需要适应性修改)
抛出问题为啥不用jenkins部署?ds可以用jenkins部署吗?那肯定是可以的,那我们为啥不用jenkins部署呢?• 消耗jenkins机器性能。ds依赖包比较多,打包的时候会将所有的包打进tar.gz文件,而我们实际开发中,基本不需要替换除了dolphinscheduler相关包之外的其他包,每次重新打包非常消耗jenkins机器性能;• DS服务器和jenkins服务器存在连通性问题。DS服务器和jenkins服务器不能都做免密,服务器密码又不好写在shell脚本中,存在安全性问题;于是
2021-03-02 18:00:15
842
原创 DolphinScheduler1.3.4流程定义json详细说明
DS调度是一个分布式易扩展的可视化DAG工作流任务调度系统,它通过工作流将task关联在一起,形成一个有向无环的DAG图,在工作流中流程定义内容显得非常重要。当前版本(1.3.4)DS采用了一个比较笨重的方式存储流程定义内容数据,DS直接将流程定义内容以json的形式存储在t_ds_process_definition表中,存储字段是process_definition_json。(官方已有拆解计划见issue#4417)。由于存储形式是一个比较复杂的json,单独拿到process_definition_
2021-02-27 17:59:56
1980
1
原创 基于SpringDataRedis封装通用RedisUtils
RedisUtilspackage org.springframework.data.redis.test.util;import java.util.List;import java.util.Map;import java.util.Set;import java.util.concurrent.TimeUnit;import org.springframework.beans.factory.annotation.Autowired;import org.springframewor
2021-02-25 17:27:40
405
原创 DolphinScheduler周期依赖分析及自依赖设计思路
摘要:DolphinScheduler已经支持了周期依赖,也就是当前任务可以依赖任何项目内流程的指定时间周期的指定任务结果,从某种意义上来讲也实现了自依赖。但是如果新建一个任务,这个时候任务自身还没有加入到流程中,那么就不能依赖自己了,只有新建好之后再次编辑才能依赖自己,如果我们不想要每次新建之后再次编辑,那咋办?在完善自依赖之前先简单介绍一下周期依赖的实现:周期依赖名词解释依赖周期被依赖任务节点任务实例执行过的时间段依赖关系依赖节点之间的依赖关系,可以是与/或依赖关系组一个依赖关系组中
2021-02-05 17:25:46
5504
5
原创 DolphinScheduler1.3.4 master-server分配任务的三种调度策略算法实现与分析
master-server分配任务的三种调度策略算法实现与分析简介随机算法原理代码实现:轮询算法原理代码实现机器资源权重算法原理分析简介DolphinScheduler1.3.4集群环境默认有三种调度策略算法分配任务到同一work组的不同机器上,分别是随机、轮询、机器资源权重算法。master-server在获取到任务之后会去zk上获取到当前任务所属工作组的所有机器信息列表,然后根据调度策略算法获取到一台机器,通过Netty给该机器发送任务,该机器的work服务就回去执行具体的任务。随机算法原理D
2021-01-26 16:05:49
1405
原创 dolphinscheduler1.3.4版本开启Netty日志,解决调度流程实例在运行中问题
问题描述我们使用DS1.3.4新版本的时候,执行调度,调度一直在运行中,api-server日志正常,master-server没有报错,worker-server也没有报错,流程实例在运行中,任务实例处于已提交状态,然后不动了,卡死在这里了。问题定位流程实例在执行中,说明master-server改变了流程实例状态,排查到master-server日志中没有Netty发送部分,于是找到一下源码:将任务添加到备用队列private void addTaskToStandByList(TaskIns
2021-01-25 15:09:33
1317
原创 解决ubuntu终端输入异常,回退变成空格后移
问题描述ubuntu系统安装了一些软件,然后关闭终端重新打开,发现终端输入异常:up键查看历史,历史命令重叠显示,看不到明白;Backspace键回退输入字符,实际上回退成功了,但是终端显示还在;输入多个字符串,光标移不到前面的字符串,不知道修改了哪个;vim编辑器输入异常,出现一些其奇奇怪怪的东西完蛋了,难道要重装系统?解决因为安装mysql-workbench时安装了一堆的依赖,正好作了记录,然后发现安装的依赖中有一个libncursesw5,安装这玩意儿会导致系统默认的ncurses-
2021-01-20 15:45:26
4040
7
原创 ubuntu20.04安装mysql watchbench
这里写自定义目录标题替换apt-get install源安装mysql-workbench`sudo apt install mysql-workbench``sudo apt install libpython2.7``sudo apt install libpython2.7-stdlib``sudo apt install libncursesw5``sudo apt install libtinfo5``往上sudo apt install libncursesw5成功``再往上sudo apt i
2021-01-20 15:44:57
924
2
原创 redis java client Jedis、Redisson、Lettuce简单介绍与对比
目录redis java client Jedis、Redisson、Lettuce简单介绍与对比概述简单对比总结参考redis java client Jedis、Redisson、Lettuce简单介绍与对比概述jedisredis的Java实现客户端,提供了比较全面的Redis命令的支持。优点:支持全面的 Redis 操作特性(可以理解为API比较全面)。缺点:使用阻塞的 I/O,且其方法调用都是同步的,程序流需要等到 sockets 处理完 .
2020-12-24 15:32:32
1369
2
原创 gitflow流程规范
简介Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践。Git Flow是一套使用Git进行源代码管理时的一套行为规范和简化部分Git操作的工具。gitflow示意图Git Flow常用分支master:master分支存放的是随时可供在生产环境中部署的稳定版本代码master分支保存官方发布版本历史,release tag标识不同的发布版本一个项目只能有一个master分支仅在发布新的可供部署的代码时才更新master分支上的代码
2020-11-09 11:12:58
550
原创 springboot上传jar包失败 前端报net:ERR_CONNECTION_RESET
问题来源客户在使用dolphinscheduler调度上传资源时发现jar包上传失败,其他类型文件正常上传思路三连前端是否正常上传,服务端是否接受到请求,服务端是否处理请求前端上传判断
2020-11-04 19:03:10
3216
原创 impalajdbc41 连接impala失败 java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager
impalajdbc41资源下载官方2.6.4: https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-4.html优快云2.6.2: https://download.youkuaiyun.com/download/qq_26400953/13008545简单demo上传私服mvn deploy:deploy-file -DgroupId=com.cloudera -DartifactId=ImpalaJDBC41 -Dversion=
2020-10-22 11:09:59
5567
2
原创 优雅解决手动导包之后 maven install操作找不到lib中包问题
问题来源给朋友处理一个tb联盟项目,需要使用淘宝针对性生成的sdk,idea直接手动导包OK 运行OK,最后mvn clean install -Dmaven.skip.test=true时,报了包不存在错误。问题根源mvn 命令不会将lib包下的jar自动打入到依赖中。解决方案本地引用大致思路是直接通过dependency依赖引用指定目录的jar上传jar到私服,然后通过dependency依赖引用例如:mvn deploy:deploy-file -DgroupId=com.jd.s
2020-09-06 00:49:22
1769
原创 为什么要指令重排
一条指令的执行步骤取指 IF译码和取寄存器操作 ID执行或者有效地址计算 EX存储器访问 MEM写回 WB在CPU工作中汇编指令分多步完成,每一部涉及到的硬件可能不同,于是有了流水线技术来执行指令。没有流水线技术前,如果同时两个指令过来执行 一个需要5秒,那么两个就需要10秒;有了流水线技术之后,可能就只要6秒。多个指令同时执行时性能显著提升。这个和指令重排有啥关系?因为流水线满载后一旦中断,所有的硬件设备会进入一个停顿期,再次满载,需要几个周期,对性能损失比较大。指令重排就是一种减少
2020-08-12 22:06:56
1661
1
原创 TransactionSynchronizationManager事务同步管理器
TransactionSynchronizationManager业务场景源码解读简单demo参考文章业务场景我们在事务执行前后可能需要做一些额外的操作这个时候我们就需要用到TransactionSynchronizationManager去注入一个TransactionSynchronization事务同步器,然后重写TransactionSynchronization或者其子类的beforeCommit()或者afterCommit()方法,写入我们需要执行的业务。源码解读public abs
2020-07-15 15:33:33
8536
2
转载 RedisTemplate 使用总结
转自:RedisTemplate 使用总结最近在做一个项目,考虑到有累计,排行,缓存等功能;而Redis是一个基于内存的数据库,而且提供了 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等多种数据类型;因此考虑使用Redis.最终决定使用Spring-data-redis 的RedisTemplate来实现Redis的访问操作。一、 通用操作工具1、常用的分布式锁加强版 /** * 最终加强分布式锁
2020-07-15 10:04:44
1759
原创 rocketmq 之namesrv(四十)mqclient admin请求处理查询消费队列
查询消费队列 AdminBrokerProcessor#queryConsumeQueueAdminBrokerProcessor#processRequest#this.queryConsumeQueue(ctx, request)private RemotingCommand queryConsumeQueue(ChannelHandlerContext ctx, Remo...
2020-03-31 14:30:27
294
原创 rocketmq 之namesrv(三十九)mqclient admin请求处理拉取broker消费者组状态
拉取broker消费者组状态 AdminBrokerProcessor#fetchAllConsumeStatsInBrokerAdminBrokerProcessor#processRequest#this.fetchAllConsumeStatsInBroker(ctx, request)private RemotingCommand fetchAllConsumeStatsInBroke...
2020-03-31 14:30:08
526
原创 rocketmq 之namesrv(三十八)mqclient admin请求处理查看broker的状态数据
查看broker的状态数据 AdminBrokerProcessor#ViewBrokerStatsData这里ViewBrokerStatsData方法命名不符合规范,没看出来为啥必须要用这个方法名AdminBrokerProcessor#processRequest#this.ViewBrokerStatsData(ctx, request) private RemotingComman...
2020-03-31 14:29:51
1104
1
原创 rocketmq 之namesrv(三十七)mqclient admin请求处理clone组的offset
clone组的offset AdminBrokerProcessor#cloneGroupOffsetAdminBrokerProcessor#processRequest#this.cloneGroupOffset(ctx, request) private RemotingCommand cloneGroupOffset(ChannelHandlerContext ctx, ...
2020-03-31 14:29:34
211
impalajdbc41-2.6.2
2020-10-22
请求页式存储管理实验
2016-11-11
idea+springboot+volecity无法热部署静态资源问题
2017-08-08
C语言基本数据类型变量表示的最大数最小数
2015-03-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人