自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随缘写写干货

我毕竟是上过学的,写几个文章那不是有手就行

  • 博客(25)
  • 收藏
  • 关注

原创 robig/cron源码解析

本文旨在走读cron源码来更好的理解时间表达式中各项字符串的意思。本文基于cron满足标准语义。cron源码走读解析,robig/cron

2022-10-14 18:16:24 743 1

原创 gomonkey源码解读

gomonkey是golang的一个打桩框架,目标是让用户在单元测试中低成本的完成打桩,从而将精力聚焦于业务功能的开发。冠冕堂皇的起因: 在接触它之前我使用的是Java,Java中得益于Java虚拟机的字节码增强技术,可在运行期增加修改字节码文件,并由虚拟机进行动态加载,使得打桩显得尤其简单。那么golang是直接将代码编译成机器码,没有“中间人”该如何进行插桩呢?实际上: 项目中使用的版本是,公司发的Mac m1,使用 运行 提示找不到文件,替换成就可以正常运行了在遇到上述的问题点2时,其实已经大概能

2022-08-07 17:39:07 2015 3

原创 Kafka简要总结

目录1、简易架构图2、设计理念简述3、优劣势kafka优势及适用场景:kafka劣势及注意事项:1、简易架构图2、设计理念简述https://kafka.apache.org/documentation.html文件系统。可扩展性,可持久化,低成本的存储,不低的读写速度(读采用偏移量,写只追加)。零拷贝技术。多消费者(不同消费组)场景下,重复消息能被复用端到端的批量压缩。相同格式消息批量压缩能节省很大空间Producer负载均衡。可自选策略,producer消息直达partition

2022-04-09 16:52:32 1616

转载 做软件系统架构的原则

https://coolshell.cn/articles/21672.html原则一:关注于真正的收益而不是技术本身原则二:以应用服务和 API 为视角,而不是以资源和技术为视角原则三:选择最主流和成熟的技术原则四:完备性会比性能更重要原则五:制定并遵循服从标准、规范和最佳实践原则六:重视架构扩展性和可运维性原则七:对控制逻辑进行全面收口原则八:不要迁就老旧系统的技术债务原则九:不要依赖自己的经验,要依赖于数据和学习原则十:千万要小心 X – Y 问题,要追问原始需求原则十一:激进胜

2022-04-09 16:19:31 282

原创 浅析Java插件化注解API原理与实战

插件化注解API(Pluggable Annotation Processing API)编译期注解自定义一个元注解为@Retention(RetentionPolicy.SOURCE)的注解自定义一个继承至javax.annotation.processing.AbstractProcessor的Processor来处理注解将自定义的Processor注册至Java

2022-02-11 00:38:55 745

原创 Elasticsearch idea本地启动/调试教程-适用不同操作系统

1、我的环境概览操作系统:MacOS m1(aarch64)Elasticsearch :7.16.2Zulu JDK 16 (和Elasticsearch 版本相对应即可,详见https://www.elastic.co/cn/support/matrix#matrix_jvm )Gradle 7.2.2(Elasticsearch 是Gradle项目)IntelliJ IDEA 2021.3.1在最新的idea里,JDK和Gradle可以不主动下载,在reload gradle项目时会弹出

2022-01-21 11:37:38 3603 2

原创 Mybatis 拦截器简述

一、Mybatis拦截器可以做到什么慢查询,SQL异常监控数据预处理(加密,自生成字段)数据脱敏数据权限过滤二、Mybatis SQL执行流程这里重点关注InterceptorChain,它会为Mybatis的四大对象织入代理。我们自定义生成的拦截器也将通过InterceptorChain织入。三、Mybatis拦截器使用方式拦截粒度为 方法签名自定义拦截器需使用@Intercepts和@Signature注解来指定拦截类和方法。例如拦截Exceptor的query和update

2021-12-23 15:50:46 328

原创 Java四种常用限流算法-伪代码实现

一、计数限流1.1 单机版示例分布式可使用Redis incr和decr优点:实现简单缺点:释放流量是非原子性操作1.2 单机版改进在固定时间点清空计数器,以防止过多未释放的无效计数将容量填满优点:实现简单,有效限制QPS缺点:固定时间窗口无法应对突发流量,在重制计数的时间点,QPS会最大值可达到2倍二、滑动窗口Java伪代码(限制QPS<100)优点:限流平滑缺点:规模越大,耗费内存越多三、漏桶算法可使用Redis-cell模块实现优点:强制限制平均速率

2021-12-23 15:26:16 1066

原创 Java JSON String 驼峰转下划线三种方式对比

一、使用方式FastJsonSerializeConfig serializeConfig=new SerializeConfig();aserializeConfig.propertyNamingStrategy= PropertyNamingStrategy.SnakeCase;String json = JSON.toJSONString(object, serializeConfig);JacksonObjectMapper mapper=new ObjectMapper();map

2021-03-09 14:28:59 3902

原创 HBase delete和put使用注意点,并不是get或scan出现bug!

概要HBase的命令只会添加,并不会覆盖和删除。delete 命令并未进行真正的删除,而是为其作一个tombstone标记。在HBase进行major_compact时才会对被标记的键值对进行压缩删除。示例验证的准备工作创建表stu ,含有一个列族info,其保存的最大版本数为1create 'stu',{NAME => 'info', VERSIONS =>1}注意点delete不会直接删除数据delete操作仅仅是加个tombstone标记,未被真正删除。put 'stu'

2021-02-23 18:24:54 1158

原创 dubbo SPI @Adaptive源码解读

基于dubbo2.7.8

2020-10-31 13:49:04 574 2

原创 dubbo SPI @Adaptive注解使用方法与原理解析 简单易懂

基于dubbo2.7.8

2020-10-29 22:59:59 2226 3

原创 Java SPI源码加载全过程详解

1、概念SPI 全称是 Service Provider Interface ,中文意思是服务提供商接口。起初是给服务商做插件开发的,是为了满足随时可插拔的需求而诞生的一种机制。Java SPI 是一种本地服务发现机制。使用的是策略模式,一个接口多种实现,使用时根据标准化接口和配置文件灵活生成实现类,使得接口易扩展。2、使用方法......

2020-10-14 18:55:37 1241

原创 MySQL/Oracle查询时少了一个字段踩坑,注意逗号!

最近发现查询时少了个字段的问题,发现是select语句的字段少了个逗号,但最后也能执行成功结论:select语句允许最多缺少一个逗号缺少逗号时语句执行成功,但缺少位置的前一个字段无法查询出来现象:原因未知,小菜鸟找不到sql调试工具,等有空了再调试源码来补充- -...

2020-07-25 14:42:41 723

转载 Hadoop mapreduce自定义 inputformat 和outputformat 实现图像的读写

   数据输入格式InputFormat用于描述MapReduce作业的数据输入规范。MapReduce框架依靠数据输入格式完成输入规范检查(比如输入文件目录的检查、对数据文件进行输入分块(InputSplit),从输入分片中...

2020-06-26 17:35:31 268

原创 dubbo Invalid json argument, cause: com/alibaba/fastjson/JSON可能原因之一

先检查Maven中的依赖是否缺少fastjson,在pom.xml文件右击使用Ctrl+F查找fastjson,若不存在需在pom.xml添加依赖如:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.71</version></dependency>

2020-06-22 17:59:59 1631

原创 Redis6.0 简单明了搭建集群 Redis-cluster 教程

此处以三台服务器部署为例192.168.124.23,192.168.124.24,192.168.124.25 使用普通用户chj登录总共三个主节点和三个从节点。每台服务器分配两个节点从官网下载Redis6.0 Stable版安装包创建用于存放集群的文件夹(可自定义)mkdir /usr/local/redis-clustercd /usr/local/redis-cluster将安装包解压后的文件夹复制两份至 /usr/local/redis-cluster 目录下并分别改名为red

2020-06-14 20:17:06 7000 6

原创 MySQL double类型字段的长度限制和小数点进位规则

此次试验以MySQL5.1作为基础

2020-06-12 12:54:51 13049 4

原创 idea springboot附带第三方依赖打包成jar包踩坑

1、pom.xmlpluginManagement是表示插件声明,在项目中的pluginManagement标签下声明了插件,maven不会加载该插件2、打包(其中两种方法)使用maven自带工具使用插件3、结果

2020-05-24 21:59:07 1145

原创 Redis笔记(二)原理

一、IO模型 Redis是个单线程程序Redis单线程为什么这么快?Redis的数据都存在内存中,所有的运算都是内存级别的运算Redis是单线程,为什么能处理那么多的并发连接?Redis是非阻塞IO,采用了多路复用技术。最简单的世界IO基本原理指令队列Redis为每个客户端套接字都关联一个指令队列,客户端的指令在队列中采用先到先服务的顺序处理。响应队列Redis为每个客户端套接字都关联一个响应队列。Redis服务器通过响应队列来将指令返回给客户端。在select事件轮询函数中,若响应队列

2020-05-16 14:13:43 244

转载 软件需求分析模板

软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素。需求分析是软件定义阶段中的最后一步,是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。 软件需求分析的任务是:深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目...

2020-05-13 09:32:35 907

原创 Redis6.0笔记(一)基础和应用

redis官方文档一、基础数据结构string常用命令:SET key value [EX seconds|PX milliseconds] [NX|XX] 【键值对。可选条件:(秒|毫秒),(key不存在时|key存在时)】GET key【取值】redis> SET mykey "Hello""OK"redis> GET mykey"Hello"redis&g...

2020-05-04 15:18:36 591

原创 连接ubuntu16.04 MySQL

ubuntu-16.04 mysql-5.7

2020-04-04 21:21:23 121

原创 百度富文本编辑器 ueditor插入视频有误,微信小程序无法解析embed标签问题解决

这里是以ueditor 1.4.3.3 php版本为例子

2020-02-25 21:38:50 2420 1

原创 百度富文本编辑器 umeditor插入视频有误,微信小程序无法解析embed标签问题解决

记录问题_

2020-02-25 11:18:14 1667

空空如也

空空如也

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

TA关注的人

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