自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嘻哈熊的专栏

加班的原因在于问题得不到解决

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

转载 Spring Boot RocketMQ 多集群 客户端使用小坑记录

在使用 Spring Boot RocketMQTemplate 多集群发送消息时,因为 DefaultMQProducerImpl 内部会通过 MQClientManager 维护一个 defaultMQProducer 的缓存,而 key 是 IP 加 unitName 拼接的,所以一定要设置 unitName,防止 defaultMQProducer 使用错乱。不光是生产者,消费者也要设置 unitName,不然也会导致只使用同一个集群的问题。

2023-05-24 15:48:28 2411

原创 SpringBoot+dynamic+MyBatisPlus 多数据源bug

dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。

2023-02-01 16:45:40 2382

原创 Jedis 使用教程总结

jedis

2022-11-28 17:56:26 2621

原创 StringUtils 工具类常用方法汇总 2(截取、去除空白、包含、查询索引)

在上一篇中总结了 StringUtils 工具类在判断字符串为空,大小写转换,移除字符或字符序列,替换,反转,切割合并等方面的方法,这次再汇总一下其它常用的方法。

2022-11-02 15:54:17 1451

原创 StringUtils 工具类常用方法汇总 1(判空、转换、移除、替换、反转)

Apache commons lang3 包下的 StringUtils 工具类中封装了一些字符串操作的方法,非常实用,使用起来也非常方便。最近自己也经常在项目中使用到了里面的一些方法,在这里将常用的方法总结了一下,方便以后查阅,大家有兴趣也可以看一下。首先需要说明的一点是,StringUtils 类在操作字符串时,即使操作的为 null 值也是安全的,不会报 NullPointerException,这一点在后面的例子中再具体说明。

2022-11-02 15:53:25 1548

原创 springboot+mongodb+分页排序bug

项目场景:最近项目上因为数据量上亿的问题,上了mongodb,主要是用于日志的存储,并设定了过期时间。mongodb分页排序的坑。。。

2022-10-27 20:13:34 696

原创 Dubbo注册失败问题定位

Dubbo消费者注册失败。

2022-08-30 15:00:56 1287

转载 SQL-8 种常被忽视的错误用法

数据库编译器产生执行计划,决定着SQL的实际执行方式。但是编译器只是尽力服务,所有数据库的编译器都不是尽善尽美的。上述提到的多数场景,在其它数据库中也存在性能问题。了解数据库编译器的特性,才能避规其短处,写出高性能的SQL语句。程序员在设计数据模型以及编写SQL语句时,要把算法的思想或意识带进来。编写复杂SQL语句要养成使用WITH语句的习惯。简洁且思路清晰的SQL语句也能减小数据库的负担。......

2022-08-08 23:14:12 96

转载 SQL-性能优化梳理

本文主要针对的是关系型数据数据库 MySql。键值类数据库可以参考:先简单梳理下 Mysql 的基本概念,然后分创建时和查询时这两个阶段的优化展开。

2022-08-08 23:13:59 127

转载 常用的10 种算法

简而言之,任何定义明确的计算步骤都可称为算法,接受一个或一组值为输入,输出一个或一组值。(来源:homas H. Cormen, Chales E. Leiserson 《算法导论第 3 版》)可以这样理解,算法是用来解决特定问题的一系列步骤 (不仅计算机需要算法,我们在日常生活中也在使用算法)。算法必须具备如下 3 个重要特性:**[1] 有穷性。**执行有限步骤后,算法必须中止。**[2] 确切性。**算法的每个步骤都必须确切定义。**[3] 可行性。......

2022-08-08 22:56:05 8934

转载 Java 生成二维码

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zqNWQlVk-1659851409812)(https://mmbiz.qpic.cn/mmbiz_png/JdLkEI9sZfd46f1eR2Esd6meiaSoaLBP1nr6nqBXxiamjFTnPF6tvfH5FD5vcq0Q1E7DIhDtm8DzFialEXb52YS2A/640?wx_fmt=png)]QRCode 生成二维码网址:http://swetake.com/qrcode/index-e.html。..

2022-08-07 13:51:24 207

转载 MySQL 高性能优化实战总结

MySQL 对于很多 Linux 从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。今天给大家体验 MySQL 的优化实战,助你高薪之路顺畅!图 - MySQL 查询过程。...

2022-08-04 20:39:21 320

转载 进程与线程的一个简单解释

先到的人锁上门,后到的人看到上锁,就在门口排队,等锁打开再进去。但是,因为 mutex 较为简单,且效率高,所以在必须保证资源独占的情况下,还是采用这种设计。可是,每间房间的大小不同,有些房间最多只能容纳一个人,比如厕所。也就是说,一个车间开工的时候,其他车间都必须停工。车间的空间是工人们共享的,比如许多房间是每个工人都可以进出的。进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。...

2022-08-04 20:38:27 91

转载 Spring Boot 实现微信点餐系统

插入过程:通过一个 hash 函数确定 Entry 的插入位置 index=hash(key),但是数组的长度有限,可能会发生 index 冲突,当发生了冲突时,会使用头插法,即为新来的 Entry 指向旧的 Entry,成为一个链表。之后,让这个被关注的节点删除,则客户端的 Watcher 会收到相应通知,此时再次判断自己创建的节点是否是 locker 子节点中序号最小的,如果是则获取到了锁,如果不是则重复以上步骤继续获取到比自己小的一个节点并注册监听。如 synchronized。...

2022-08-04 20:35:51 279

转载 JVM 线上故障排查基本操作

对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢?首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现。今天的文章,就如我们的题目一样,讲的是基本操作,也就是一些排查线上问题的基本方法。为什么这么说呢?...

2022-08-04 20:33:36 624

转载 高并发场景下 RabbitMQ 消费端服务限流实践

限流在我们的实际工作中还是很有意义的,在使用上生产端没有变化,重点在消费端,着重看以下两点:增加限流参数设置限流情况 ack 设置为手动签收。

2022-08-04 20:30:39 464

转载 GO-大型高并发系统架构设计

怎样保证高并发下,正确的扣库存,还能快速的响应用户请求?在本地减库存以后,如果本地有订单,我们再去请求 Redis 远程减库存,本地减库存和远程减库存都成功了,才返回给用户抢票成功的提示,这样也能有效的保证订单不会超卖。完整的订单系统还有订单进度的查看,每台服务器上都有一个任务,定时的从总库存同步余票和库存信息展示给用户,还有用户在订单有效期内不支付,释放订单,补充到库存等等。从上面的介绍我们知道用户秒杀流量通过层层的负载均衡,均匀到了不同的服务器上,即使如此,集群中的单机所承受的 QPS 也是非常高的。.

2022-08-04 20:29:27 1572

转载 数据库设计的 14 个技巧

数据库设计的 14 个技巧

2022-08-04 20:25:24 290

转载 栈-先进后出的数据结构

第一次接触 “栈” 这个先进后出的数据结构的时候,有点不理解,因为它的用途不像数组,链表那样直观,似乎只能在表达式计算这里排上用场,随着学习的深入,尤其是看到了函数调用,就会明白 “栈” 实在是太有用了。这篇漫画讲的是在机器级别,硬件层面需要构建栈和栈帧来实现函数的层层调用,实际上在 Java,Python 等虚拟机中,同样也需要栈帧的概念。限于篇幅,这篇文章只讲了函数在内存中的表示,没有详细展开讲汇编级指令的一行行执行,参数的传递,指针的处理。...

2022-08-04 20:23:41 271

转载 JDK-深入源码解析 HashMap 1.8

HashMap在Java和Android开发中非常常见而相对于更新多今天,我将通过源码分析,从而讲解相对于的更新内容,希望你们会喜欢。本文基于版本JDK 1.8,即Java 8关于版本JDK 1.7,即Java 7,具体请看文章Java:手把手带你源码分析 HashMap 1.7示意图关于 红黑树 的简介示意图点击阅读文章添加数据的流程示意图与JDK 1.7的区别示意图至此,关于HashMap的添加数据源码分析 分析完毕。...

2022-08-04 20:21:27 115

转载 架构演进之路-淘宝服务端高并发分布式

作者:huashiou本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则。系统中的多个模块在不同服务器上部署,即可称为分布式系统,如 Tomcat 和数据库分别部署在不同的服务器上,或两个相同功能的 Tomcat 分别部署在不同服务器上系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。...

2022-08-02 21:57:47 265

转载 JAVA-12 个语法糖

前面介绍了 12 种 Java 中常用的语法糖。所谓语法糖就是提供给开发人员便于开发的一种语法而已。但是这种语法只有开发人员认识。要想被执行,需要进行解糖,即转成 JVM 认识的语法。当我们把语法糖解糖之后,你就会发现其实我们日常使用的这些方便的语法,其实都是一些其他更简单的语法构成的。有了这些语法糖,我们在日常开发的时候可以大大提升效率,但是同时也要避免过渡使用。使用之前最好了解下原理,避免掉坑。END。...

2022-08-02 21:56:40 402

转载 Redis-内存淘汰策略详解

上面说到了 Redis 可使用最大内存使用完了,是可以使用 LRU 算法进行内存淘汰的,那么什么是 LRU 算法呢?,即最近最少使用,是一种缓存置换算法。在使用内存作为缓存的时候,缓存的大小一般是固定的。当缓存被占满,这个时候继续往缓存里面添加数据,就需要淘汰一部分老的数据,释放内存空间用来存储新的数据。这个时候就可以使用 LRU 算法了。其核心思想是:如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉。...

2022-08-02 21:55:33 938

转载 Linux 常用命令-文本查看篇

文本查看命令较多,可根据使用场景不同选择使用不同的命令。有些命令的用法较多,本文仅介绍经典用法,更多用法可使用 man 命令查看。很多命令可以结合其他命令使用,例如 ps -elf|more,分页显示进程信息等等,更多用法可自行探索。...

2022-08-02 21:53:33 2527

转载 JDTX-京东数科强一致、高性能分布式事务中间件

在分布式数据库、云原生数据库、NewSQL 等名词在数据库领域层出不穷的当今,变革——在这个相对稳定的领域已愈加不可避免。相比于完全革新,渐进式增强的方案在拥有厚重沉淀的行业则更受青睐。同所有分布式领域的解决方案相同,分而治之的透明化数据分片方案,是新一代数据库解决海量数据的核心理念。水平拆分使得分布式事务的重要性,较之垂直拆分的业务系统进一步提升。另外,弹性扩(缩)容、HTAP 等概念也是新一代数据库的关注重点。...

2022-08-02 21:52:23 548

转载 网站设计方案-三大阶段提升性能

李平前言在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一些技术做实践,将方法、解决问题过程分享出来。本文将讲述大型网站中一个重要的要素,性能。什么是性能。...

2022-08-02 21:10:00 126

转载 Mybatis 中 $ 和 #千万不要乱用

2、${}: 主要用于获取配置文件数据, DAO 接口中的参数信息, 当 $ 出现在映射文件的 SQL 语句中时创建的不是预编译的 SQL, 而是字符串的拼接, 有可能会导致 SQL 注入问题. 所以一般使用 $ 接收 dao 参数时, 这些参数一般是字段名, 表名等, 例如 order by {column}。看了上面的区别介绍,相信大家其实都应该知道区别在哪里,我们的问题在哪里,其实就是 sql 在 in 的时候 ,里面的数据被加了两个双引号。所以导致部分数据查不到了。输出后,终于发现了问题在哪里。..

2022-08-02 21:07:09 763

转载 JDK8-lambda常用汇总

函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用 @FunctionalInterface 注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有多个默认方法,静态方法。本篇主要从实际使用讲述了常用的方法及流,使用 java8 可以很清晰表达你要做什么,代码也很简洁。本篇例子主要是为了讲解较为简单,大家可以去使用 java8 重构自己现有的代码,自行领会 lambda 的奥妙。...

2022-08-02 21:05:27 448

转载 MySQL-count() 的优化

这个问题是今天朋友提出来的,关于查询一个 1200w 的数据表的总行数,用 count(*) 的速度一直提不上去。找了很多优化方案,最后另辟蹊径,选择了用 explain 来获取总行数。

2022-08-02 21:01:28 1046

转载 Java-性能优化50点

默认情况下,调用类的构造函数时,java 会把变量初始化成确定的值,所有的对象被设置成 null,整数变量设置成 0,float 和 double 变量设置成 0.0,逻辑值设置成 false。除非是必须的,否则应该避免使用 split,split 由于支持正则表达式,所以效率比较低,如果是频繁的几十,几百万的调用将会耗费大量资源,如果确实需要频繁的调用 split,可以考虑使用 apache 的 StringUtils.split(string,char),频繁 split 的可以缓存结果。...

2022-08-02 20:59:55 170

转载 JDK-java8对比Date特性

来源为什么需要LocalDate、LocalTime、LocalDateTimeComeOn一起使用java8全新的日期和时间API小结在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗通过阅读本篇文章你将了解到为什么需要LocalDate、LocalTime、【java8新提供的类】java8新的时间API的使用方式,包括创建、格式化、解析、计算、修改。...

2022-08-01 20:58:00 179

转载 MySQL-三两奇巧

有些时候,为了能方便的查看出差别,一般会采用图形化的方式进行处理。而实际开发需求中更多的是,要求对最终的结果进行去重,此时就用到了1个比较有意思的技巧。一般业务中,常常会遇到的1个需求就是对用户进行分组,比如查询某个用户最近几个月的消费情况。简单的说,我们可以让我们的数据来自另1个select子语句,但是需要给该子语句1个别名,否则MySQL会抛出异常。在实际项目中,经常需要将某一列的内容拼接并返回,特别是一些归集的报表导出的业务中。...

2022-08-01 20:52:55 43

转载 JAVA-规范写代码

JAVA 规范写代码

2022-08-01 20:47:45 219

转载 MySQL-如何查找删除重复行

来源如何查找重复行如何删除重复行如何查找多列上的重复行错误的查询语句几种正确的方法。

2022-08-01 20:43:47 378

转载 Nginx-入门到实战

来源基础篇一、环境二、Nginx是什么?三、我们为什么选择Nginx?三、安装与目录四、基本配置五、模块场景实现篇一、静态资源WEB服务二、浏览器缓存三、跨站访问四、防盗链五、HTTP代理服务负载均衡和缓存服务一、负载均衡二、缓存服务常见问题一、相同server_name多个虚拟主机优先级二、location匹配优先级三、try_files的使用四、alias和root的区别五、如果用户真实IP六、Nginx常见错误码。...

2022-08-01 20:41:49 122

转载 Spring Boot & ES 实战

Spring Boot 中集成 Elasticsearch 有 4 种方式:REST ClientJestSpring DataSpring Data Elasticsearch Repositories本文用后面两种方式来分别连接并操作 Elasticsearch服务端:elasticsearch-6.3.2 1 台客户端:elasticsearch 6.4.1服务端配置文件:elasticsearch.yml/etc/security/limits.conf/etc/sysctl.conf1.3.

2022-08-01 20:38:49 266

转载 SQL调优-初级

如果不查询表中所有的列,尽量避免使用SELECT*,因为它会进行全表扫描,不能有效利用索引,增大了数据库服务器的负担,以及它与应用程序客户端之间的网络IO开销。那么第二次同样的查询,请保持以上语句的一致性,比如不要将where语句里面的id和region位置调换顺序。应用程序慢如牛,原因多多,可能是网络的原因、可能是系统架构的原因,还有可能是数据库的原因。程序中嵌入的一行行的SQL语句,如果使用了一些优化小技巧,定能达到事半功倍的效果。同样只是“尽量”哦,并不是说所有的列。...

2022-08-01 20:36:03 51

转载 IDEA-7 个 IntelliJ IDEA 必备插件

来源首先说一下idea引入外部插件的方式用插件。

2022-08-01 20:33:59 2171

转载 10 个程序员可以接私活的平台和一些建议

作者程序员新视界来源http什么样的私活不能接1、没有第三方担保的个人对个人的尽量不要接,双方都没保障,出了问题很大的可能撕破脸皮不了了之。2、一上来就直接说给我开发一个什么软件,不说具体需求,没有需求文档的都不靠谱,这样的项目不要接。3、尽量442收费方式,即开工收40%项目款,项目中期收40%项目款,项目结束收20%项目款。一开始不给钱的,尽量不要接,这一点一定要记住,否则很容易付出了劳动得不到应得的收入。不给完钱,不交完整代码。.........

2022-08-01 20:31:30 2428

转载 SpringBoot 注解大全

来源http一、注解(annotations)列表二、注解(annotations)详解三、JPA注解四、springMVC相关注解五、全局异常处理。

2022-08-01 20:30:29 155

空空如也

空空如也

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

TA关注的人

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