- 博客(40)
- 资源 (6)
- 收藏
- 关注
原创 FastJson遇到的坑
https://github.com/alibaba/fastjson/pull/2706https://mp.weixin.qq.com/s/Gq2ojDTmbvzohu2PsF1L6A你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ct
2023-05-23 18:02:28 152
原创 ES面试笔记整理
1、dubbo 通过shutdownhook 实现优雅停机,使用kill PID2、es设计阶段调优使用日期模板创建索引。使用别名管理索引。使用force_merge释放索引空间冷热数据分开存储2.1 写入调优写入前副本数量设置为0写入前关闭refreash_internal == -1,禁用刷新机制采用bluk批量写入尽量使用自动增长的id2.2 查询调优禁用wildcard禁用批量terms充分利用倒排索引,能keyword的尽量keyword设置合理的路由机制3 e
2022-03-16 09:36:11 198
原创 mac idea 发布时提示找不到openjdk-1.8-tools.jar
idea 本地发布时 提示找不到 openjdk-1.8-tools.jar但是项目确实没有使用openjdk-1.8-tools.jar报错信息如下Could not resolve dependencies for project *: The following artifacts could not be resolved: com.sun:tools:jar:1.8, com.sun:jconsole:jar:1.8: Could not find artifact com.sun:tool
2021-10-28 17:57:20 2944
原创 一次重写MappingJackson2HttpMessageConverter序列化遇到的坑
背景:最近项目要做字段权限的序列化,为了减少代码的入侵绝对采用注解+拦截的方式在返回数据的时候用序列化方式进行字段权限的业务逻辑处理问题:重写序列化后没有生效,或间歇性生效。过程:1、重写序列化代码:@Beanpublic MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {MappingJackson2HttpMessageConverter mappingJackson2HttpMessageC
2021-10-22 15:09:49 2647
原创 rocketMq浅析-顺序消息
一 什么是顺序消息顺序消息(FIFO 消息)是 MQ 提供的一种严格按照顺序进行发布和消费的消息类型。顺序消息由两个部分组成:顺序发布和顺序消费。顺序消息包含两种类型:分区顺序:一个Partition内所有的消息按照先进先出的顺序进行发布和消费。全局顺序:一个Topic内所有的消息按照先进先出的顺序进行发布和消费。多线程中若没有因果关系则没有顺序。那么用户在多线程中去发消息就意味着用户不关心那些在不同线程中被发送的消息的顺序。即多线程发送的消息,不同线程间的消息不是顺序发布的,同一线程的消息是顺序
2021-08-26 14:26:29 452
原创 RocketMQ 使用与基本原理
简介 RocketMQ 原先是阿里巴巴内部使用的消息中间件,于 2017 年提交到 Apache 基金会成为 Apache 基金会的顶级开源项目,官方网址:http://rocketmq.apache.org。阿里的消息中间件有很长的历史,从 2007 年的 Notify到2010 年的 Napoli,2011 年升级后改为 MetaQ ,然后到 2012 年开始做 RocketMQ。RocketMQ吸取了阿里之前的消息系统的经验与教训并参考了业界其他消息系统(如Kafka等),秉承尽量简单的原则,进行
2021-08-25 18:34:10 134
原创 Redis分布式锁失效的场景
分布式锁和事务一起使用失效原因: 在事务中使用redis分布式锁,方法一旦执行事务生效,接着是redis分布式锁生效,代码执行完后释放redis分布式锁、然后提交事务数据,最后事务结束。在这个过程中事务没有提交之前分布式锁已经被释放,导致分布式锁失效解决:在调用事务方法之前先加分布式锁@Transactionalpublic void update(int id) {boolean lock = redisLock.lock(id);if (!lock) {throw new RuntimeE
2021-08-05 17:13:40 2447
原创 InnoDb引擎简介
Innodb的主要优势InnoDb主要优势她的DML遵循acid模型,事务具有提交,事务回滚,恢复等。以保护数据安全行级锁可以提高用户的并发量和性能聚集索引的逐渐索引 查找效率很高InnoDB的好处自动恢复缓存外键自动优化主键列插入、删除、更新自动优化压缩索引删除所以和DDL时性能影响小可以将InnoDB与其他mysql存储引擎混用Innodb专为处理大数据时的CPU效率和最大性能设计Innodb 处理大数据InnoDB最佳实践指定主键索引关闭自动提交开启 s
2021-08-04 15:48:48 408
原创 mysql 性能优化
在数据库级别的优化1、表格的结构是否正确?2、是否有合适的 索引来提高查询效率?3、您是否为每个表使用了合适的存储引擎,并利用了您使用的每个存储引擎的优势和特性?4、每个表是否使用适当的行格式?5、应用程序是否使用了适当的 锁定策略?6、用于缓存的 所有内存区域的大小是否正确?在硬件级别的优化磁盘查找。磁盘找到一条数据需要时间。使用现代磁盘,平均时间通常低于 10 毫秒,因此理论上我们每秒可以执行大约 100 次寻道。这个时间随着新磁盘的增加而缓慢改善,并且很难针对单个表进行优化。优化寻道时
2021-08-03 16:23:56 89
原创 Redission集成
引入redission包 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.3</version> </dependency>配置redission 客户端@Bean("redissonClient")pub
2021-07-30 15:01:31 520
原创 高性能mysql笔记
这里写自定义目录标题行级锁新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入行级锁1、行级锁只是在新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几
2021-07-29 10:19:43 133
原创 为什么有公司不建议使用 force index, ignore index
虽然可以有效提高sql的执行效率,但是不利于数据库的升级、维护。如果数据库删除了这个索引,程序没有修改那么程序必然出错,而且排查起来比较困难。解决方法:可以建立联合索引解决这个问题,但是对于多表联合查询的情况,暂时还没有想到更好的办法。欢迎大家补充...
2021-07-20 17:36:34 617
转载 Java日常开发的那些注意事项
一、NPE1.1 包装类型的空指针问题public class NullPointTest {public static void main(String[] args) throws InterruptedException {System.out.println(testInteger(null));}private static Integer testInteger(Integer i) {return i + 1; //包装类型,传参可能为null,直接计算,则会导致空
2021-05-06 09:38:39 307
转载 IDEA : shorten command line
https://cloud.tencent.com/developer/ask/198959
2021-03-16 14:37:05 1191
原创 一次单元测试引发的创建的eurekaClientConfigBean失败
经过:在单元测试的时候需要通过多线程和fegin调用兄弟部门的接口,在单测得时候类似老接口能正常返回,但是在新的接口中确提示创建eurekaClientConfigBean失败的异常,将多线程改成单线程后能正常返回,老接口在多线程环境下依然可以正常返回,让提供方检测配置文件发现是一样,没有发现问题。最后查看了调用方的配置信息,发现依然是一样,最后将测试接口封装成controller的形式通过postman调用,发现能正常返回,此时排除是接口方提供的问题。分析原因:是因为单元测试的时候 主线程先于子线程结
2021-03-06 11:05:34 664
原创 G1垃圾收集器与其他收集器的区别
G1垃圾收集器与其他收集器的区别并行与并发 : G1能充分利用多CPU、多核环境下的硬件优势、使用多个cpu(cpu或者CPU核心)来缩短Stop-the-world停顿的时间,不分其他收集器原本需要停顿java线程执行的GC动作,G1收集器扔可通过并发的方式让java程序继续执行。 分代收集 : 与其他收集器一样,分代收集概念在G1中依然得以保留,虽然G1可以不需要其他收集器配个就能独立管理整个GC堆、但它能够采用不同的方式去处理新创建的对象和已经存活了一段时间、熬过多次GC的旧对象已获取更好的手机
2021-01-31 16:47:57 504
原创 一起聊聊@Transaction 注解的那些坑
1、分享背景在项目开发中经常会用到具有事务的场景,而在我们的项目中主要是通过@Transaction 注解去实现事务,但是在使用的过程中可能会有一些不是特别合理的地方,不正当的使用事务可能会面临很多的问题,比如:事务失效,链接被耗光,甚至发生死锁的情况;2、分享的目的在以后的开发过程中能够更合理的使用事务,清晰的知道事务中每个参数的作用,以及整个事务的核心执行流程等;3、在使用注解事务的过程中不甚合理的地方;1、事务方法的粒度太大导致事务执行时间可能会很长;2、事务中有跨服务调.
2021-01-27 15:35:56 5165 1
原创 Windows搭建kafka环境,实现消息的发送,消费
Windows搭建kafka环境,实现消息的发送,消费搭建kafka环境 下载zookeeper 安装Zookeeper Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper1.1 下载安装文件: http://mirror.bit.edu.cn/apache/zookeeper/1.2 解压文件(本文解压到 C:\kafk...
2021-01-27 15:25:24 672
原创 springboot @Value 读取数组,List, Map等配置文件
test:array1:aaa,bbb,ccc@Value("${test.array1}")privateString[]testArray1; // 不判断空@Value("${test.array1:}")privateString[]testArray1; // 判断空length = 0。test:list:aaa,bbb,ccc@Value("#{'${test.list}'.split(',')}")p...
2020-08-28 11:37:20 17164 1
原创 easycode Global Config 去除表头不生效的解决方案
easycode idea 插件默认不生效的解决方案如下:##去掉表的t_前缀#if($tableInfo.obj.name.startsWith("t_")) $!tableInfo.setName($tool.getClassName($tableInfo.obj.name.substring(2)))#end根据自己的表头做判断,然后修改下面的字符串位数即可。...
2020-06-03 17:26:22 2401
原创 Windows环境下安装es插件
以mapper-murmur3插件为例。1、下载mapper-murmur3插件 下载地址:https://artifacts.elastic.co/downloads/elasticsearch-plugins/mapper-murmur3/mapper-murmur3-7.6.1.zip2、解压zip文件夹3、找到es安装目录,进入\plugins子目录4、将步骤2解压好的文件...
2020-03-31 11:34:49 1050
原创 intellij idea 设置引入同一个包下面的多个类时不自动聚合*
Intellij Idea 工具在java文件中怎么避免 import java.utils.* 这样的导入方式,不推崇导入 *这样的做法settings》Code Style 》Java class count to use import with '*' 设置500Names count to use static impo...
2019-10-16 09:59:42 4634
原创 shiro安全框架
Apache Shiro是Java的一个安全框架,可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。其基本功能点如下图所示:Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用...
2019-09-27 15:18:11 77
原创 一次因sched_name重复引起的定时任务error
一次因sched_name重复引起的定时任务error1、事件简述一次因sched_name不唯一引起的部分定时任务error2、时间过程今天运营突然在跑过来告诉我今天的定时结算全部处于待结算状态,收到消息后第一反应是定时任务没有执行,查线上log果然没有执行,再次查了定时任务前后日志没有相...
2019-08-31 10:17:56 2136
原创 需求开发管理流程及分支管理规范
1、需求开发管理流程2、分支管理规范目的:1.定义分支的用途,使代码分支及版本结构清晰,方便维护2.避免错误版本发布或上线的版本被新版本覆盖前提:每个需求在开发流程里统一定义好,写在标题前面ETC项目主要采用AoneFlow,不熟悉的同学可以先看下分支命名规范:<dev>_<大版本号>.<功能版本号>.<............
2019-08-16 17:46:09 827 1
原创 自定义mybatis-typeHandler 轻松实现枚举转换,加解密等。
1、新建自定义typeHandler类CustomTypeHandler并继承BaseTypeHandler<T>;2、添加注解@MappedJdbcTypes({ JdbcType.TIMESTAMP })@MappedTypes({ String.class })3、重写父类方法,并实现自己的需求4、对参数进行拦截5、mybatis的mapper...
2019-08-12 11:38:32 779
原创 Springboot学习笔记2已配置文件方式集成mybatis
1、在application.properties文件下 添加如下配置文件mybatis.type-aliases-package=com.he.demo.springboot.modelmybatis.mapper-locations=classpath*:mapper/*.xmlspring.datasource.driver-class-name=com.mysql.cj.jdbc.Dr...
2019-08-08 11:14:46 101
原创 SpringBoot 学习笔记2-通过纯配置文件集成mybatis
Springboot学习笔记2已配置文件方式集成mybatis1、在application.properties文件下 添加如下配置文件mybatis.type-aliases-package=com.he.demo.springboot.modelmybatis.mapper-locations=classpath*:mapper/*.xmlspring.datasource.dr...
2019-07-06 14:30:07 59
原创 Spring-Boot学习笔记(Spring集成mybatis和mybatis的基础配置)
Spring-Boot学习笔记1Idea创建spring-boot并集成Mybatis File->new->Project 选择Spring initializr Next—>Next 选择Web 勾选Spring Web Starter 选择Sql 选择Mybatis SpringFramwork 编写Controller ,启动Project@Res...
2019-07-06 11:44:49 156
原创 Windows搭建kafka环境,以及实现消息的发送和接受
Windows搭建kafka环境,实现消息的发送,消费搭建kafka环境 下载zookeeper 安装Zookeeper Kafka的运行依赖于Zookeeper,所以在运行Kafka之前我们需要安装并运行Zookeeper1.1 下载安装文件: http://mirror.bit.edu.cn/apache/zookeeper/1.2 解压文件(本文解压到 C:\kafk...
2018-12-18 14:36:49 1235
原创 一种日志切割工具的配置方法
一、背景分析对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能。如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求。例如:如何在每个星期六凌晨3点把超过2G 大的日志文件进行切割,保留最新的100M 日志记录?二、主要特点1、支持 Linux、Mac和 Windows等所有常见操作系统平台2、支
2017-04-03 21:25:26 970
原创 android aidl的调用
1、AIDL (Android Interface Definition Language )2、AIDL 适用于 进程间通信,并且与Service端多个线程并发的情况,如果只是单个线程 可以使用 Messenger ,如果不需要IPC 可以使用Binder3、AIDL语法:基础数据类型都可以适用,List Map等有限适用。static field 不适用。(AIDL
2015-09-27 12:10:32 368
原创 android Gallery模拟左右滑动的listView
1、利用android Gallery自带的滚动效果实现模拟listView 的左右滑动2、为gallery 添加点击监听事件3、动态改变gallery item 的选择颜色1、GalleryAdapterpackage com.cebbank.bankebb.origin.adapter;import java.util.ArrayList;
2015-09-27 12:03:33 633
转载 android环境大全
https://github.com/inferjay/AndroidDevTools/blob/master/README.md
2015-09-27 11:58:44 222
原创 android改变字体的颜色的三种方法
法一:TextView tv = new TextView(this);tv.setText("你好");setContentView(tv);该方法自己没有实现成功,无法得到想要设置的颜色和字体大小。法二:/*** testview是View的子类* findViewById返回的是VIEW对象* */TextView tv = (TextView)fi...
2015-09-27 11:47:50 376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人