自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 授权与交流

如何授权,如何跟下属交流及如何快速确认改进/优化方案

2023-09-26 19:46:04 89

原创 IDEA Unicode码转中文

1.打开设置2.打开文件编码设置3.修改文件编码全部选择为UTF-8 并勾选应用即可

2021-12-03 17:19:36 5237

原创 Dbeaver启动报错

Root exception:org.eclipse.core.internal.dtree.ObjectNotFoundException: 找不到树元素“/General/Scripts/Script-1.sql”。 at org.eclipse.core.internal.dtree.AbstractDataTree.handleNotFound(AbstractDataTree.java:260) at org.eclipse.core.internal.dtree.DeltaDataTree

2021-07-05 17:28:17 15147 8

原创 AOP 使用自定义注解method.getAnnotation为null

这个aop拦截的是ServiceImpl的一个方法,然后这个ServiceImpl又启动了事务管理,而事务管理又是基于AOP的。也就是说,这个权限的@Around的切面拦截的是个代理对象的方法,而代理对象的方法是不会把原来父类中的方法的注解加上去的,所以这里这个注解的对象为null。private String getOperationOfTheAnnotation(Proceeding...

2020-03-10 18:59:28 7101

原创 MySQL高级特性四:查询缓存

很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划生成截断。MySQL在某些场景下也可以实现,但是MySQL还有另一种不同的缓存类型:缓存完整的select查询结果,也就是查询缓存。MySQL查询缓存保存查询返回的完整结果。当查询命中该缓存,MySQL会like返回结果,跳过了解析、优化和执行截断。查询缓存系统会跟踪查询中涉及的每个表,如果这些表发生...

2019-02-02 13:16:17 12596 9

原创 MySQL高级特性一:分区表

对用户来说,分区表时一个独立的罗技表,但是底层由多个无力字表组成。实现分区的代码实际上是对一组底层表的句柄对象的封装。对分区表的请求,都会通过句柄对象转化成对存储引擎的接口调用。所以分区对于SQL层来说是一个完全封装底层实现的黑盒子,对应用是透明的,但是从底层的文件系统来看就很容易发现,每一个分区表都有一个使用#分隔明明的表文件。MySQL实现分区表的方式;对底层表的封装,意味着索引也是按照分...

2019-01-22 17:31:26 34482 11

原创 MySQL优化三:查询性能优化之查询优化器的局限性与提示

MySQL的万能嵌套循环并不是对每种查询都是最优的。不过MySQL查询优化器只对少部分查询不适用,而且我们往往可以通过改写查询让MySQL高效的完成工作。1 关联子查询MySQL的子查询实现的非常糟糕。最糟糕的一类查询时where条件中包含in()的子查询语句。因为MySQL对in()列表中的选项有专门的优化策略,一般会认为MySQL会先执行子查询返回所有in()子句中查询的值。一般来说,...

2019-01-17 19:22:50 9425 13

原创 DIV+CSS虚线边框

这里通过边框属性的虚线边框border控制虚线。以下设置的css 高度(css height)和css 宽度(css width)为350像素是为了便于观看演示 其它意思。一、四边为虚线边框border:1px dashed #000; 黑色虚线边框实例:CSS代码: .divcss5{border:1px dashed #000; height:50px;width:350px}Html...

2018-12-10 18:12:10 27615 5

原创 IntelliJ IDEA 必会的基础配置

刚刚使用IntelliJ IDEA 编辑器的时候,会有很多设置,会方便以后的开发,磨刀不误砍柴工。 比如:设置文件字体大小,代码自动完成提示,版本管理,本地代码历史,自动导入包,修改注释,修改tab的显示的数量和行数,打开项目方式,等等一大堆东西。 总结一下,免得下次换了系统,还得再找一遍配置。 设置外观和字体大小  这个呢是设置一下外观。和字体大小。放在第...

2018-09-27 17:31:46 15275 5

原创 C盘清理指南

windows.old:它是电脑在重装系统的过程中,备份旧系统中重要文件的文件夹,它位于新系统的C盘中。如果新系统有问题,就可以提取它里面的文件来替换整个系统或单个文件,如果你不需要,可以安心删除。许多用户通过删除该文件夹中的文件来清理Windows的临时文件,但实际上这样清理并不彻底,我们可以有更轻松、安全的方法。但是,由于回收站会随着时间的推移变大,清空其中的内容是释放计算机空间的第一件事。很多人喜欢把文件放在桌面上,越堆越多,桌面上的文件是占用C盘空间的,而且放置太多的话,导致电脑卡顿。

2024-04-06 01:46:22 987

原创 Redisson 3.18.0版本解决failover相关问题

Redisson 在历史多个版本都出现了failover期间报错的问题并且目前没有一个版本可以完全解决这个问题,所以在当前使用版本3.18.0基础上做了二次开发,达到降低业务由于redis遇到问题导致不可用。

2024-02-27 17:14:13 593

原创 结构化思维(思考方式)

先别管那些复杂的概念,简单说,结构化思考就是给你的思考过程套一个逻辑结构,这个结构就是你的思考脉络。我们思考是为了解决问题,通常来说呢,复杂问题的解决路径是这样的:1 我们先提出问题2 然后再去发现真问题3 再去分析问题4 然后提出解决方案5 再落实行动6 最后总结复盘这是一个完整的闭环,这当中通过结构化思考分析问题,能够起到纲举目张,四两拨千斤的效果。那整套完整的路径我们后面再详说,我们先搞清楚什么是结构化思考。到底怎么思考?又有哪些常见的结构?

2024-01-15 03:35:11 840

原创 zgc各版本信息收集统计

zgc垃圾回收相关文档翻译整理,根据实际使用情况来讲需要高版本性能才会比g1高,jdk13一下不建议使用zgc

2023-09-18 18:03:22 344

原创 高并发线程内存事件处理器 disruptor 三 高性能原理

disruptor为什么快 核心原理

2023-05-22 17:21:48 610

原创 高并发线程内存事件处理器 disruptor 三 高性能原理

disruptor为什么快 核心原理

2023-05-22 17:10:07 482

原创 性能优化之网络带宽限制websocket推送优化

问题产生于,当我们的服务系统随着业务的迭代对用户推送内容的不断增多,某一个业务的推送消息达到了 64k/条。签约时候限制的是 500M/s,经过我们的排查发现每秒的带宽消耗绝对没有这么高,而且我们自己也是有监控系统的,通过监控并没有发现有超过阈值的情况发生。由于一些保密性原因,不会写一些具体的涉及到业务处理内容了,以后大概会更多的分享一些性能优化的解决措施和思路。使用令牌桶,每秒定量一定令牌数,如果超出令牌数量则进入等待队列,当前线程将不断轮询队列持续发送,直到等待队列发送完成。

2023-03-22 16:38:01 1494

原创 kafka CommitFailedException

具体的思路就是,让下游系统手动创建多个消费线程处理 poll 方法返回的一批消息。在最新版的 Kafka 中,该参数的默认值是 5 分钟,但是不一定会生效,如果设置了session.timeout.ms,没有设置 max.poll.interval.ms,那么将会根据它的默认值不会生效。出现这个情况的原因是,你的消费者实例连续两次调用 poll 方法的时间间隔超过了期望的 max.poll.interval.ms 参数值。这通常表明,你的消费者实例花费了太长的时间进行消息处理,耽误了调用 poll 方法。

2022-11-17 14:14:06 401

原创 高并发线程内存事件处理器 disruptor 二 hello world

本篇为disruptor的一个demo,帮助大家快速入门使用起来,下面的代码是一个简单的实现,可以跟着本地debug进行源码查看一下具体的事件处理过程。

2022-11-15 17:00:26 224

原创 高并发线程内存事件处理器 disruptor 一 初步了解

简介Disruptor是英国外汇交易公司LMAX开发的一个高性能,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。

2022-11-07 15:57:11 302

原创 Java 自定义 ClassLoader 实现隔离运行不同版本jar包

自定义类加载器,隔离不同编译/框架版本

2022-07-14 14:42:14 2324

原创 今年新版面试题及答案(上个月朋友面试成功后留下的题目)

1.kafka的读写效率快的原因(详细解释传送门;https://blog.csdn.net/lianggzone/article/details/112386378) (1) 利用 Partition 实现并行处理 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic; Topic 只是一个逻辑的概念。每个 Topic 都包含一个或多个 Partition,不同 Partition 可位于不同节点。 一方面,由于不...

2021-07-27 20:35:54 693 3

原创 记录一个小BUG(并行流&字符串拼接)

场景:线上日志输出调用外部接口错误处理过程:1。日志排查找到调用的外部接口链接2。查询调用日志方法请求参数3。手动执行部分参数看调用是否有问题4。沟通相应开发查看运行日志,同时排查相关代码查看错误原因问题定位:1。该方法请求参数拼接有问题,拼接结果并不是每个元素间有一个分隔符,有可能会有多个连续分隔符2。服务提供方请求日志查询结果显示有超长请求参数导致转换long类型异常问题分析:1。StringBuffer虽然是线程安全的,但是只能保证append方法拼接不产生..

2021-02-03 13:34:57 202 1

原创 Spring cloud Zuul和Hystrix

Zuul 1.应用场景 它相当于是一个网关,可以使用一定的路由配置来判断某一个URL由哪个服务来处理。并从Eureka获取注册的服务来转发请求。 API网关所有的客户端请求通过这个网关访问后台的服务。 2.核心功能 Zuul包含了对请求的路由和过滤两个主要功能,是各种服务的统一入口,同时会提供监控、授权、安全、调度等功能。 路由:负责将外部请求转发到具体的微服务实例上,是实现外部访问同一入口的基础,他与Nginx的区别就在于它提供了认证鉴权、动态路由、监控...

2021-01-05 15:19:30 861

原创 Spring Cloud 注册中心 Eureka

目录微服务的应用场景和核心竞争力Spring Cloud 与 Dubbo 的对比活跃度架构模块介绍EurekaEureka ServerEureka ClientZK与Eureka对CAP的支持(一致性、可用性、分区容错性)微服务的应用场景和核心竞争力低耦合:每一个微服务专注于单一功能,并通过良好的接口命名方式清晰表达出服务边界。由于体积小、复杂度低,可将每个微服务拆分为一个独立项目进行开发,易于保持高可维护性和开发效率。 部署:由于每个微服务都是一个可以.

2020-12-24 15:07:31 179

原创 当当的DubboX

最近有用到这个版本,特意搜了搜相关文档。虽然本项目版本比较老 但是还相对稳定,并且在某些方面使用的还比较方便。其最最最主要的作用就是为Dubbo服务提供Http请求访问接口,相信大家都曾经遇到过Dubbo服务和Http都需要提供的情况,通常我们是分开实现两个服务,底层实现调用一个业务逻辑,有了当当的这个DubboX只需要一个Dubbo接口就可以完美解决这个问题了。下面文档中各种Demo和介绍都有,如果有兴趣尝试一下的同学,一定要仔细看!!!以下为文档链接在Dubbo中开发REST风格的远程.

2020-10-29 20:51:33 307 5

原创 jquery:时间类型字符串转为Date类型

/** * 字符串格式:'YYYY-MM-DD HH:mm:ss */function getDate(dateStr) { return new Date(Date.parse(dateStr.replace(/-/g, "/")));}

2020-10-15 19:30:38 3052

原创 leetcode-77. 组合

给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]class Solution { private List<Integer> temp = new ArrayList<>(); private List<List<Integer>> ans = ne...

2020-09-16 18:18:59 116

原创 leetcode-226. 翻转二叉树

谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 1今天我也可以秒懂了,haha...class Solution { public TreeNode invertTree(TreeNod

2020-09-16 16:15:16 153

原创 leetcode-216. 组合总和 III

找出所有相加之和为n 的k个数的组合。组合中只允许含有 1 -9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]class Solution { public List<List<Integer>> combin...

2020-09-11 11:51:23 340

原创 线上BUG定位及修复(MQ处理商品信息,实体商品与虚拟品处理逻辑)

背景: 1.MQ消费处理集群 负责整个项目中相同/相似逻辑的统一处理,降低冗余代码,提高API响应效率 进行异步处理 2.业务API 集群 本次涉及API内主体流程仅有请求参数校验,成功后发送MQ进行处理 3.定时任务 扫描数据库内需要更新的数据 4.涉及表 预售商品信息表、商品表、预售变更记录、商品信息变更记录涉及流程: 电商产品分为:预售、在售、虚拟品等多种状态 预售:...

2020-08-14 15:39:44 423

原创 算法相关电子书(不要积分点个赞就好)

算法第四版(中文)链接:https://pan.baidu.com/s/1PqowN1Br18HXX3SyPEjPug提取码:csl7算法链接:https://pan.baidu.com/s/1PBIdc7Z5Uhrhpu2tPn9Ckg提取码:j8gg算法图解链接:https://pan.baidu.com/s/1mB_giv_SYGWiCwhJTmARUw提取码:rhnk图灵的秘密链接:https://pan.baidu.com/s/1PX18iwhBz...

2020-08-05 20:38:49 858 1

原创 leetcode-343. 整数拆分

给定一个正整数n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。例:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。拆分规则:最优: 3 。把数字 n 可能拆为多个因子 3 ,余数为 0,1,2 三种情况。次优: 2 。若余数为 2 ;则保留,不再拆为 1+1 。最差: 1 。若余数为 1 ;则应把一份 3+1 替换为 2.

2020-07-30 19:20:14 276

原创 查询API优化

1.当前待优化背景 [1] 重复高频的数据查询请求(并且由于是核心API,可能会有多个其他系统同时进行调用并且由于是核心API,可能会有多个其他系统同时进行调用) [2] 数据具有周期性(数据有自己的生命周期,周期结束后很少会再次访问)2.当前需要的主要关注点 [1] 故障快速恢复 需要有数据持久化相关功能保证宕机数据及时恢复 硬件配置:可以配置多组多实例多机柜,保证服务。 [2] 查询性能 可通过减少数据索引条件...

2020-07-30 18:37:56 303 2

原创 TopK问题

找到最小的K个数1.O(N):用快排变形最最最高效解决TopK问题 class Solution { public int[] getLeastNumbers(int[] arr, int k) { if (k == 0 || arr.length == 0) { return new int[0]; } // ⚠️注意最后一个参数传入我们要找的下标(第k小的数下标是k-1) return qu...

2020-07-17 16:32:03 213

原创 leetcode-96. 不同的二叉搜索树

给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 ...

2020-07-15 12:11:27 119

原创 leetcode-209. 长度最小的子数组

给定一个含有n个正整数的数组和一个正整数s ,找出该数组中满足其和≥ s的长度最小的子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。示例:输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。解:滑动窗口public static int minSubArrayLen(int s, int[] nums) { int len = nums.length; if ...

2020-07-10 16:53:47 373

原创 Netty shizhan(不用拼音不让发,我戳 不要积分点个赞就好)

如果链接不好使了,可以留言 我在重新发一个。点关注不迷路,哈哈链接:https://pan.baidu.com/s/1IYMwKFmRjoRnx3FAqysFQw提取码:pt4q

2020-06-12 17:23:54 325

原创 leetcode-15. 三数之和等于0

给你一个包含 n 个整数的数组nums,判断nums中是否存在三个元素 a,b,c ,使得a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]class Solution { public List<List<Integer>...

2020-06-12 17:21:15 313

原创 Netty权威指南电子版(不要积分点个赞就好)

如果链接不好使了,可以留言 我在重新发一个链接:https://pan.baidu.com/s/1FJd2KWqzEQVVQ7jgeWViDg提取码:vgie

2020-06-11 10:29:30 2567 10

原创 leetcode-146. LRU缓存机制

不用那么多花里胡哨,直接12行代码解决 /苦笑运用你所掌握的数据结构,设计和实现一个LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥已经存在,则变更其数据值;如果密钥不存在,则插入该组「密钥/数据值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的..

2020-05-25 17:45:40 197

空空如也

空空如也

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

TA关注的人

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