![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
打造高性能应用
文章平均质量分 91
PostTruth
书写是对思维的缓存
展开
-
JVM 调优案例分析
现象:系统日常运行正常突然发生fullgc甚至内存溢出,重启后恢复正常但是过了几天又会突然发生频繁fullgc触发告警,告警信息如下:首先发生fullgc,我们需要定位fullgc发生在jvm哪个区域?我们可以通过cat也可以通过gc日志查询发生的区域,目前有两种方式可以快速定位到gc区域:1、Cat的Problem中可以直接查询error的详细信息(时间比较久了找不到对应的cat截图了)2、通过gclog查询(大部分系统没有添加gc日志打印),常见配置如下。...原创 2022-08-11 16:32:24 · 750 阅读 · 0 评论 -
JVM参数调优推荐
学习开源项目的启动脚本是个不错的主意,比如ElasticSearch家的,Cassandra家的。VJTools的 jvm-options.sh,伸手党们最爱,根据自己需要稍微定制一下就行,详见 http://github.com/vipshop/vjtools。《JVM调优的"标准参数"的各种陷阱》 ,R大的文章,在JDK6时写的,期待更新。当你在网上兴冲冲找到一个可优化的参数时,先打印看看,它可能已经默认打开了,再找到一个,还是默认打开了…...原创 2022-08-11 16:31:32 · 415 阅读 · 0 评论 -
什么是程序的局部性原理
01、前言作为有追求的程序员,我们日常在写代码的时候往往都会运用很多奇技淫巧,不单单是为了炫耀我们的技术,更是为了追求更高的效率。了解局部性原理,可以有效的帮助我们理解和写出更好的代码,对于局部性原理可能有的小伙伴知道,有的小伙伴不知道,知道的小伙伴就当做复习知识点,不知道的小伙伴也没关系,接着往下看就知道了。02、什么是局部性原理说到局部性原理,那我们首先要知道什么是局部性原理,局部性原理...原创 2019-12-02 11:38:14 · 10905 阅读 · 1 评论 -
三种实现分布式锁的方式
三种实现分布式锁的方式原创 2019-09-10 15:34:52 · 228 阅读 · 0 评论 -
还在业务中用if else,策略模式了解一下
if elseif ("BATCH_CHANGE_WAREHOUSE".equals(taskType)) { //批量转仓逻辑 } else if ("BATCH_CHANGE_SHIPPING".equals(taskType)) { //批量转快递逻辑 } else if ("BATCH_REPLACE_ORD...转载 2019-09-02 11:56:52 · 368 阅读 · 0 评论 -
Mysql 分页查询优化的几种思路
当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。表名:order_history描述:某个业务的订单历史表主要字段:unsigned int id,...原创 2019-06-17 10:33:28 · 1465 阅读 · 2 评论 -
Redis中有几百万数据量,如何进行高效访问?
前言Redis 作为一个高性能的 key-value 数据库,在项目中我们经常会用到。尤其需要知道一些前缀的key值,那我们怎么去查看呢?通常情况下,Redis 中的数据都是海量的,我们访问Redis中的数据时,一定要做到心中有数,避免数据量超过预期时的一些事故。问题产生系统中有个项目需要登陆时统计在线用户的数量,由于使用 spring session 做了分布式 Session,把所有s...原创 2019-06-14 13:07:38 · 16272 阅读 · 1 评论 -
java开发中关于使用异常控制业务逻辑的理解
服务层返回错误信息,大体分为两派ResultModel(code,message),使用if、else判断。抛出自定义exception,异常控制逻辑。查看《阿里巴巴编码规约》中对异常处理的强制要求,不建议使用异常来做流程控制,如下:第二种方法的效率较低,因为会有堆栈信息的创建与输出。好处是逻辑代码清晰,无需各种判断。改进方式,覆写fillInStackTrace(),防止出现性...原创 2018-12-29 17:26:18 · 4575 阅读 · 1 评论 -
数据库读写分离、分表分库——Mycat篇
数据库读写分离、分表分库——Mycat篇系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。希望通过这篇文章的介绍,能学会Mycat的使用。安装Mycat官网:http://www.myc...原创 2018-12-06 15:42:40 · 405 阅读 · 0 评论 -
SpringBoot 整合RabbitMq 实战
SpringBoot 整合RabbitMq 实战参考官网: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html#boot-features-amqpspring-boot-starter-amqp高级消息队列协议(AMQP)是面向消息中间件的平台中立的...原创 2018-04-21 17:23:18 · 6143 阅读 · 5 评论 -
消息队列之 RabbitMQ详解
消息队列之 RabbitMQ详解什么叫消息队列消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布...原创 2018-04-20 21:37:52 · 824 阅读 · 0 评论 -
谈谈网站架构设计开发的一些来龙去脉
谈谈网站架构设计开发的一些来龙去脉标签(空格分隔): 架构我喜欢读书,而且读的很快。本人一直在研究学习方法,学习能力还在高峰。我尤其喜欢主题式阅读,根据重点,详略有别。其实就是,一段时间集中的研究一类资料,它们的内容可以相互补充、印证,重复的内容当成复习。这篇就当成最近研究网站架构问题的一个小小的总结记录,当然肯定不全面,这个领域很大的。后面如果有新的认知,继续补充说明。但是核心的...转载 2018-04-20 15:45:05 · 201 阅读 · 0 评论 -
Memcached vs Redis, 挑选哪一个?
Memcached vs Redis, 挑选哪一个?标签: Mencached RedisMemchached 还是 Redis?该用哪一个?当我们讨论改进性能的时候,这是每次技术讨论中最常见的一个问题。每当性能需要改善时,采用缓存常常是迈出的第一步。与此同时,选择Memcached 或者 Redis 通常是第一个需要考虑的地方。哪个能给我们提供更佳的性能?它们的优点和缺点又是...原创 2018-04-20 15:15:49 · 5815 阅读 · 1 评论