自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 RabbitMQ消息丢失问题和保证消息可靠性-消费端不丢消息和HA

Server端的高可用和消费端如何保证消息不丢的问题?回归上篇的内容,我们知道消息从生产端到服务端,为了保证消息不丢,我们必须做哪些事情?发送端采用Confirm模式,注意Server端没成功通知发送端,需要重发操作需要额外处理 消息的持久化处理上面两个操作保证消息到服务端不丢,但是非高可用状态,如果节点挂掉,服务暂时不可用,需要重启后,消息恢复,消息不会丢失,因为有磁盘存储。...

2019-08-31 15:33:38 698

原创 Java8特性之接口默认方法

是什么Java8中新增了接口的默认方法,简单来说就是让接口可以自己有实现方法,不许要实现类去实现。有什么用想象一种情况,你定义了一个接口A,假如里面有几个抽象方法。然后什么B,C,D,E…一大堆类去实现了A接口里面的几个抽象方法。那么现在问题来了,如果要在A中新加一个抽象方法,那么所有的实现类都要去实现这个抽象方法,不是很麻烦吗?这个时候默认方法就派上用场了,只需要再A中自己实现这个新添加...

2019-08-30 17:33:29 227

原创 java8 の新的语法特性-Lambda表达式

前言Lambda表达式是Java8的一个特性,而Java8是2014发布的,那时候我刚上大学,还没认识Java呢。过了很长一段时间才学习了Lambda表达式,但是一直没怎么用过,已经忘了差不多了,所以现在特地复习一下。学一个东西我们得知道它是什么,有什么用,怎么用。是什么从不同角度上来说,Lambda表达式是一个语法糖,也可以说是匿名函数。语法糖何谓语法糖,我的理解是语法糖就是方...

2019-08-30 17:14:42 124

转载 Java8 Stream API 使用指南

1. 概述Java 8 引入的一个重要的特性无疑是 Stream API。Stream 翻译过来是“流”,突然想到的是大数据处理有个流式计算的概念,数据通过管道经过一个个处理器(Handler)进行筛选,聚合,而且流都具有向量性,强调的是对数据的计算处理,而集合强调的是数据集。Stream可以看做是一个可操作的数据集序列,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据...

2019-08-30 11:14:02 224

原创 如何优化代码中的 if else

前段时间在阅读别人所写的代码的时候 , 发现其中一些业务相关的方法体内 , 出现了比较多的if-else语句多层嵌套的情况 . 首先我个人不是不提倡写if-else语句 , 不得不说 , 很多时候 , 在写某些逻辑 使用if-else 去做判断 , 代码看起来还是十分直观的 , 但是如果滥用if-else , 形成多层嵌套或者形成, 其中每个case 还包含了大量的逻辑 , 此时从可读性来说 , ...

2019-08-30 10:18:53 790

原创 合理选择Filter、Interceptor、Aspect?

前言小伙伴们应该听说过过滤器、拦截器、切面,印象上都能够起到截断拦截的作用,在做一些业务需求时,不知道如何选择,今天老顾就来介绍一下他们之间的区别。Filter过滤器过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求响应做出过滤操作。过滤器依赖于servlet容器。在实现上,基于函数回调,...

2019-08-30 10:10:06 117

原创 jvm 面试题2

JVM运行内存的分类 程序计数器:当前线程所执行的字节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有 注:如果正在执行的是Native方法,计数器值则为空 Java虚拟栈:存放基本数据类型、对象的引用、方法出口等,线程私有 Native方法栈:和虚拟栈相似,只不过它服务于Native方法,线程私有 Java堆:java内存最大的一块,所有对象实例、数组都存放...

2019-08-27 10:45:29 65

原创 jvm 面试题1

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。Java内存结构?方法区和...

2019-08-27 10:34:30 123

原创 MySQL常见的8种SQL错误用法

前言MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问题。现将《ApsaraDB专家诊断报告》中出现的部分常见SQL问题总结如下,供大家参考。1...

2019-08-23 17:54:25 187

原创 UriComponentsBuilder  使用方法

UriComponentsBuilder是Spring提供的一个 UriComponents类的构建类,通过他可以方便的构建我们请求的urlMaven包:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</arti...

2019-08-19 10:26:59 13370

原创 RateLimiter 限流处理

RateLimiter 从概念上来讲,速率限制器会在可配置的速率下分配许可证。如果必要的话,每个acquire()会阻塞当前线程直到许可证可用后获取该许可证。一旦获取到许可证,不需要再释放许可证。校对注:RateLimiter使用的是一种叫令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行,比如你希望自己的应用程序QPS不要超过1000,那么Ra...

2019-08-16 17:26:50 1344

原创 20个 常见的运维命令

optop 是Linux系统下的最常用性能工具,可以实时查看系统的资源使用情况,虽然是老生常谈,但作为一个必备系统状态查看工具不得不提。当系统或者应用出现问题是,很多工程师第一时间想到的就是打开 top,看一下CPU,内存这些情况,下面是top命令的运行截图:在综合统计部分: 第一行综合负载信息 13:55:49 是上一次统计时间,每个一段时间会自动...

2019-08-16 09:29:00 4054

原创 http 图解

作为一个前端,如果能够深刻理解 HTTP 通信,能够让我们在日常开发工作中快速定位问题。所以我十分建议大家去读一下《图解HTTP》和《HTTP权威指南》。权威指南讲解的十分详细,内容也十分的全面,但是这本书的厚度也让很多同学望而却步。推荐大家从 《图解HTTP》 这本书开始学习,这本书虽然没有权威指南详细,但涵盖了很多我们日常开发需要的知识点,理解他,能让我们的开发效率事半功倍。《图解HTTP...

2019-08-15 17:40:56 152

原创 书籍推荐

《图解HTTP》(推荐,豆瓣评分 8.1 , 1.6K+人评价): 讲漫画一样的讲HTTP,很有意思,不会觉得枯燥,大概也涵盖也HTTP常见的知识点。因为篇幅问题,内容可能不太全面。不过,如果不是专门做网络方向研究的小伙伴想研究HTTP相关知识的话,读这本书的话应该来说就差不多了。 《大话数据结构》(推荐,豆瓣评分 7.9 , 1K+人评价):入门类型的书籍,读起来比较浅显易懂,适合...

2019-08-15 17:10:25 470

原创 线上cpu 100% 报警解决经历

到了年底果然都不太平,最近又收到了运维报警:表示有些服务器负载非常高,让我们定位问题。还真是想什么来什么,前些天还故意把某些服务器的负载提高(没错,老板让我写个 BUG!),不过还好是不同的环境互相没有影响。定位问题拿到问题后首先去服务器上看了看,发现运行的只有我们的 Java 应用。于是先用ps命令拿到了应用的PID。接着使用top -Hp pid将这个进程的线程显示出...

2019-08-15 14:47:29 1071

原创 linux 查看cpu 和内存占用信息

查看磁盘使用情况:df -k:以KB为单位显示磁盘使用量和占用率df -m:以Mb为单位显示磁盘使用量和占用率df –help:查看更多df命令及使用方法查看内存占用情况:1.topPID:当前运行进程的IDUSER:进程属主PR:每个进程的优先级别NInice:反应一个进程“优先级”状态的值,其取值范围是-20至19,一    共40个级别...

2019-08-12 15:39:23 587

原创 skywalking学习 知识点

前言随着业务越来越复杂,企业应用也进入了分布式服务化的阶段,传统的日志监控等方式无法很好达到跟踪调用,排查问题等需求。在谷歌论文《 Dapper,大规模分布式系统的跟踪系统》的指导下,许多优秀的APM应运而生。分布式追踪系统发展很快,种类繁多,给我们带来很大的方便。但在数据采集过程中,有时需要侵入用户代码,并且不同系统的 API 并不兼容,这就导致了如果您希望切换追踪系统,往往会带来较大改...

2019-08-12 15:37:28 1415

原创 skywalking安装与使用

基于5.x版本编译,elasticsearch首先搭建完成,可以去看我的docker for elasticsearch微信公众号用户可以直接跳转到:https://www.jianshu.com/u/c5a69d112958参考文档https://github.com/apache/skywalking/blob/5.x/docs/README_ZH.md下载地址h...

2019-08-08 18:51:45 1745

原创 linux 安装h2 数据库

很多人在windows平台上使用过H2数据库,但是安装到linux,还不知道怎么做,现在,跟着我一起在linux安装:1,下载jar包下载h2-1.3.176.jar这个包(部分服务版本不一致,请自行更换版本)2,启动服务复制到linux服务器 /opt/h2/bin/ 下在目录下启动java -cp h2-1.3.176.jar org.h2.tools.Serv...

2019-08-08 17:14:28 1512 1

原创 logback springBoot 配置日志

SpringBoot会默认使用logback作为日志框架。SpringBoot会默认加载classpath:logback-spring.xml或者classpath:logback-spring.groovy文件作为日志配置文件。注:也可以在系统配置文件中指定SpringBoot加载哪一个文件作为日志配置文件,在application.properties文件中增加:l...

2019-08-08 11:47:16 179

原创 linux 排查java cpu 100%

一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。(友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hankchen)以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。...

2019-08-07 16:14:11 1018

空空如也

空空如也

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

TA关注的人

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