11 若鱼1919

尚未进行身份认证

暂无相关描述

等级
TA的排名 6k+

SpringBoot多Profile如何优雅打包?

原文在这里:SpringBoot多Profile如何优雅打包?一般项目的结构都是类似下面这种,有多个profile:其中,我们需要在application.yml中设置一个active的profile,如下:spring:profiles:active:dev这种方式,只需要在运行项目的时候设置–spring.profiles.active参数,如下:java...

2019-09-03 19:47:07

前后端分离如何做SSO单点登录?

原文在这里:前后端分离如何做SSO单点登录?在前面的文章中单点登录系统SSO是如何实现的?我们实现了一个简单的单点登录,但是那里面有几个问题:一个是全局的token是在url中明文传递的,如果把这个url分享出去,任何人都可以使用这个token,还一个问题,现在的很多系统都是前后端分离的,我们之前介绍的还是传统的服务端渲染方式。本文就来看下如何解决这两个问题。实现的思路跟之前基本上差不多,...

2019-08-31 09:52:25

idea集成protobuf

idea集成protobufidea安装protobuf插件编写pom.xml编写proto文件,用idea插件生成源码测试idea安装protobuf插件编写pom.xml<protobuf-java.version>3.5.1</protobuf-java.version><protobuf-javanano.version>3.1.0</p...

2019-08-27 14:04:47

G1日志格式详解

原文在这里:G1日志格式详解从jdk9开始,G1已经是默认的垃圾收集器了,G1的一个非常重要的功能是它能够控制GC的停顿时间同时还不影响吞吐量(你可以设置期望的最大停顿时间)。随着G1变成默认的收集器,它的使用变得越来越常见和广泛了,为了调优G1的性能我们必须要了解G1的日志格式。需要注意,G1日志中有关于每一个细小的任务的详细的日志信息,但是本文主要介绍G1日志中一些主要的点。如何开启...

2019-07-30 08:23:14

监控系统CPU、内存、IO利器之-SAR

原文在这里:监控系统CPU、内存、IO利器之-SARSAR全称是SystemActivityReport,它主要就是用来搜集、保存系统的CPU、内存、IO使用情况。SAR可以直接在命令行使用,也可以把输出结果保存到日志文件中。本文将介绍SAR在CentOS7上使用的一些例子,如果你的系统还没有安装SAR,可以用如下命令来安装:[root@localhost~]#yuminsta...

2019-07-26 08:36:46

JVM的GC停顿时间过长该怎么处理?

原文在这里:JVM的GC停顿时间过长该怎么处理?应用运行过程中是不希望出现长时间的GC停顿的,因为这会影响服务的可用性,导致用户体验变差,甚至会严重损害一些关键的应用程序。本文将会列出可能导致GC停顿时间长的一些原因和解决方案。1.对象创建的速度过高如果应用创建对象的速度非常高,随之而来的就是GC频率也会变快,然后会导致GC的停顿时间变长。所以说,优化代码以降低对象的创建速率是降低GC停...

2019-07-24 19:10:35

JVM出现连续的FullGC该怎么办?

原文在这里:JVM出现连续的FullGC该怎么办?FullGC是垃圾回收过程中一个非常重要的事件。当发生FullGC的时候,垃圾收集器为了回收更多的垃圾对象,它会从JVM的所有内存中回收垃圾(Young、Old、Perm、Metaspace)。FullGC有很多个步骤,有些步骤需要暂停所有的应用线程,在这个过程中JVM是无法处理用户的请求的。JVM会使用所有的CPU来做垃圾回收,因此CPU的...

2019-07-22 08:17:46

如何解决内存泄露?

原文在这里:如何解决内存泄露?JVM总共会抛出8种类型的OutOfMemoryError,其中5种是发生在堆中的,包括:Javaheapspace、GCoverheadlimitexceeded、RequestedarraysizeexceedsVMlimit、Permgenspace、Metaspace。还有3种是发生在堆外的,包括:Unabletocreate...

2019-07-18 11:20:14

应用的性能相关的指标有哪些?

原文在这里:应用的性能相关的指标有哪些?现如今连天气都可以预报,那么通过技术手段来预测应用的性能和可用性是否可行呢?预计未来20分钟总可以吧?能否预计出来未来20分钟以内应用可能会发生内存溢出、CPU负载飙升、应用崩溃?很不幸大部分时候都无法预测。这主要因为我们主要是关注应用的内存使用率、CPU使用率、响应时间等宏观指标,但是还有很多其他的微观指标也会影响预测应用的性能和可用性,本文就来探讨...

2019-07-15 19:42:12

GC日志中real时间比user+sys时间长该如何处理?

原文在这里:GC日志中real时间比user+sys时间长该如何处理?GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以’user’、‘sys’、'real’3个维度来记录,这3个时间是什么意思呢?他们之间有什么区别?1.realtime:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(ps:如果GC从8点开始,8点30结束,real...

2019-07-12 10:45:15

GC日志中sys时间比user时间长该如何处理?

原文在这里:GC日志中sys时间比user时间长该如何处理?GC日志中会详细的记录每一次GC事件所花费的时间信息,每一个GC事件所花费的时间都会以’user’、‘sys’、'real’3个维度来记录,这3个时间是什么意思呢?他们之间有什么区别?1.realtime:GC事件整个过程自然流逝的绝对时间,这个跟钟表上的时间是一致的。(ps:如果GC从8点开始,8点30结束,realtime...

2019-07-10 08:28:48

OutOfMemoryError内存溢出相关的JVM参数

原文在这里:OutOfMemoryError内存溢出相关的JVM参数JVM提供了很多处理内存溢出的相关参数,本文主要来讲解下这些参数,当你遇到内存溢出的时候可能会对你非常有帮助,这些参数主要有:1.-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath2.-XX:OnOutOfMemoryError3.-XX:+ExitOnOutOfMemor...

2019-07-09 08:36:07

开启String去重XX:+UseStringDeduplication的利与弊

原文在这里:开启String去重XX:+UseStringDeduplication的利与弊首先来看下由JDK开发组研究得出的一组有趣的统计数据:1.java应用内存里面的字符串占比大概是25%。2.java应用内存里面的字符串有13.5%是重复的。3.字符串的平均长度是45。由于存在重复字符串导致高达13.5%的内存被浪费了!你可以用HeapHero来分析看下你的应用中有多少内存是...

2019-07-03 13:02:02

Eclipse MAT 里面的SHALLOW HEAP和RETAINED HEAP是什么意思?

原文在这里:EclipseMAT里面的SHALLOWHEAP和RETAINEDHEAP是什么意思?MAT是一款非常强大的JVM内存映像分析工具,对分析内存相关的问题非常有用,MAT报告中对对象大小的描述有两个相关的概念:1.SHALLOWHEAP2.RETAINEDHEAP本文就来介绍一下他们之间的区别。首先我们来看下,这两个size是如何来计算的。假如内存中存在以下的...

2019-07-01 09:02:12

为什么不推荐启用UseGCLogFileRotation来记录GC日志?

原文在这里:为什么不推荐启用UseGCLogFileRotation来记录GC日志?很多小伙伴在记录GC日志的时候都喜欢使用UseGCLogFileRotation这个参数,比如:-XX:+PrintGCDetails-XX:+PrintGCDateStamps-Xloggc:/home/GCEASY/gc.log-XX:+UseGCLogFileRotation-XX:N...

2019-06-28 14:07:23

32位JVM和64位JVM该如何选择?

原文在这里:32位JVM和64位JVM该如何选择?32位JVM和64位JVM有一些显著的不同,同时也还有一些细微的差异,本文将以问答的形式给大家说明一下。1.开发应用之前是否需要深入理解32位和64位JVM的区别?如果你的应用对性能要求并不是特别及其的严格,那么你可以忽略他们的区别。二者之间的细微的差别对你来说几乎没啥影响。2.64位JVM是不是比32位JVM的性能要好?你可能会认为...

2019-06-27 13:18:12

缓存穿透与布隆过滤器BloomFilter那些事

原文在这里:缓存穿透与布隆过滤器BloomFilter那些事很多小伙伴在面试的时候都会被问到类似这样的问题:如何解决redis的缓存穿透问题?以用户登录为例来说,浏览器传递过来用户名和密码,服务端首先是根据用户名去查cache,如果有直接返回,如果没有再去查DB,如果查到回写到cache并返回,查不到说明用户不存在。中间加一个cache就是为了加快查询的速度,减轻DB的压力,对DB做一层保护...

2019-06-20 13:08:05

如何用redis做活跃用户统计-HyperLoglog

原文在这里:如何用redis做活跃用户统计-HyperLoglog网站经常有这样的需求:统计日活用户数,有哪些实现方式呢?第一种做法:用redis的set集合。用户登录以后,把用户id添加到redis的set中,set会自动进行去重,类似于这样:127.0.0.1:6379>saddusers_2019_06_17user1(integer)1127.0.0.1:63...

2019-06-17 18:00:04

单点登录系统SSO是如何实现的?

原文在这里:单点登录系统SSO是如何实现的?所谓单点登录就是在A系统登录以后,跳转到B系统,此时可以直接访问B系统的资源,而不需要二次登录,目前这种需求已经非常普遍了,那么背后是怎么实现的呢?本文将用一个实际的例子来给大家详细的讲解下。准备工作(1)准备3个域名来模拟3个站点,www.site1.com和www.site2.com是业务域,www.usercenter.com是用户中心。...

2019-06-13 19:12:29

如何用redis正确实现分布式锁?

原文在这里:如何用redis正确实现分布式锁?先把结论抛出来:redis无法正确实现分布式锁!即使是redis单节点也不行!redis的所谓分布式锁无法用在对锁要求严格的场景下,比如:同一个时间点只能有一个客户端获取锁。首先来看下单节点下一般redis分布式锁的实现,其实就是个set:加锁:/***尝试获取分布式锁*@paramjedisRedis客户端...

2019-06-10 19:40:33

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。