自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 SpringCloud的限流、熔断和降级——Hystrix

在分布式系统中,远程系统或服务不可避免的调用失败(超时或者异常)。假设客户端依赖多个服务,在一次请求中,某一个服务出现异常,则整个请求会处理失败;当某一服务等待时间过长,则所有的请求都会阻塞在这个服务的请求上。这样因为一个服务就导致了整个系统的可用性。Netflix的组件Hystrix可以将这些请...

2019-08-19 13:51:34 1355 0

转载 知识点记录

1、数据库双写异地多活 2、分布式锁实现,Redis集群的分布式锁,租约到期怎么保证一致性 3、redis集群如何实现,redis读写和集群适用那些场景 4、synchronzied和lock的区别 5、zookeeper的脑裂问题怎么解决? 6、sql优化 ...

2019-04-15 18:38:18 98 1

转载 Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别

在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程...

2018-08-08 11:21:13 1194 0

转载 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现

分享提纲:  0. 引子  1. 感性认识GeoHash  2. GeoHash算法的步骤  3. GeoHash Base32编码长度与精度  4. GeoHash算法  5. 使用注意点(曲线突变--8个邻居来解决)  6. geohash的php 、python、java、C#实现代码  7...

2018-07-04 21:55:20 735 0

转载 mmap和常规文件操作的区别

mmap和常规文件操作的区别对linux文件系统不了解的朋友,请参阅我之前写的博文《从内核文件系统看文件读写过程》,我们首先简单的回顾一下常规文件系统操作(调用read/fread等类函数)中,函数的调用过程:1、进程发起读文件请求。2、内核通过查找进程文件符表,定位到内核已打开文件集上的文件信息...

2018-05-25 00:00:31 850 0

转载 B+树与LSM树的区别与联系

首先来回答一个问题:为什么在磁盘中要使用b+树来进行文件存储呢?原因还是因为树的高度低得缘故,磁盘本身是一个顺序读写快,随机读写慢的系统,那么如果想高效的从磁盘中找到数据,势必需要满足一个最重要的条件:减少寻道次数。我们以平衡树为例进行对比,就会发现问题所在了:先上个图 这是个平衡树,可以看到基本...

2018-05-24 19:28:40 337 0

转载 linux内存映射mmap原理分析

一直都对内存映射文件这个概念很模糊,不知道它和虚拟内存有什么区别,而且映射这个词也很让人迷茫,今天终于搞清楚了。。。下面,我先解释一下我对映射这个词的理解,再区分一下几个容易混淆的概念,之后,什么是内存映射就很明朗了。 原理首先,“映射”这个词,就和数学课上说的“一一映射”是一个意思,就是建立一种...

2018-05-17 21:04:37 212 0

转载 mysql insert锁机制(insert死锁)

一、前言上周遇到一个因insert而引发的死锁问题,其成因比较令人费解。于是想要了解一下insert加锁机制,但是发现网上介绍的文章比较少且零散,挖掘过程比较忙乱。本以为只需要系统学习一个较完全的逻辑,但是实际牵扯很多innodb锁相关知识及加锁方式。我好像并没有那么大的能耐,把各种场景的加锁过程...

2018-05-07 00:11:29 22171 8

转载 MongoDB命令行模式下,格式化find()的返回结果,pretty()

使用 db.demo.find() 返回数据,每一条占一整行,不便于阅读,寻找能格式化输出结果的方法, 其实MongoDB本身提供了该方法,在find()方法后直接追加pretty()方法即可,如下: 补充个一劳永逸的方法,在 shell 里执行下列代码: echo "D...

2020-05-25 11:12:01 45 0

转载 一次 Young GC 的优化实践

这个 GC 案例比较有意思,排查问题有点像侦探断案,先分析各种可能性,再按照获得的一个个证据,去排除各种可能性、然后定位原因,最终解决问题。 问题 某同学在微信上问我,有没有办法排查 YoungGC 效率低的问题?听到这话,我也是不知从何说起,就让他说下具体情况。 具体情况是: 有个服务在没...

2020-05-19 00:06:39 69 0

转载 什么是JIT

一些其他解释的网站:http://www.sohu.com/a/169704040_464084 1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static ...

2020-05-09 20:33:55 76 0

转载 JVM 默认参数

uintx AdaptiveSizeDecrementScaleFactor = 4 {product} uintx AdaptiveSizeMajorGCDecayTimeScale =...

2020-05-07 16:21:09 107 0

转载 垃圾优先型垃圾回收器调优

了解如何针对评估、分析和性能来调整和调优 G1 GC。 2013 年 8 月发布 垃圾优先型垃圾回收器 (G1 GC)是适用于 Java HotSpot VM 的低暂停、服务器风格的分代式垃圾回收器。G1 GC 使用并发和并行阶段实现其目标暂停时间,并保持良好的吞吐量。当 G1 GC 确定有必...

2020-05-06 16:48:31 89 0

转载 jvm:优化-栈上分配

转载请注明博客来处:https://blog.csdn.net/qq_42709262/article/details/84800251 几乎所有的对象实例,都是在堆上分配的,但存在部分例外,栈上分配就是这种除了堆上分配的例外。 1.栈上分配指的是什么? ①将线程中的私有对象打散(即图中...

2020-05-06 13:58:54 154 0

转载 关于栈上分配和TLAB的理解

引言 我们知道,一般在java程序中,new的对象是分配在堆空间中的,但是实际的情况是,大部分的new对象会进入堆空间中,而并非是全部的对象,还有另外两个地方可以存储new的对象,我们称之为栈上分配以及TLAB 栈上分配 为什么需要栈上分配 在我们的应用程序中,其实有很多的对象的作用域都不...

2020-05-06 13:44:52 64 0

转载 Kafka提交offset机制

在kafka的消费者中,有一个非常关键的机制,那就是offset机制。它使得Kafka在消费的过程中即使挂了或者引发再均衡问题重新分配Partation,当下次重新恢复消费时仍然可以知道从哪里开始消费。它好比看一本书中的书签标记,每次通过书签标记(offset)就能快速找到该从哪里开始看(消费)。...

2020-04-24 21:30:13 98 0

转载 java new一个对象的过程中发生了什么

java在new一个对象的时候,会先查看对象所属的类有没有被加载到内存,如果没有的话,就会先通过类的全限定名来加载。加载并初始化类完成后,再进行对象的创建工作。 我们先假设是第一次使用该类,这样的话new一个对象就可以分为两个过程:加载并初始化类和创建对象。 一、类加载过程(第一次使用该类) ...

2020-04-23 18:15:15 74 0

转载 Java new一个对象的过程

1,首先到常量池中找类的带路径全名,然后检查对应的字节码是否已被加载,解析,验证,初始化,如果没有先执行类加载过程(class.forname())。 2,类加载过程完成后,虚拟机会为对象分配内存。分配内存有两种方式,根据使用的垃圾收集器的不同使用不同的分配机制。 (1)指针碰撞,当虚拟机使用...

2020-04-23 18:13:48 42 0

转载 Java中new一个对象是一个怎样的过程?JVM中发生了什么?

Java中new一个对象的步骤: 1.当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能在常量池中能否定位到一个类的符号引用(即类的带路径全名),并且检查这个符号引用代表的类是否已被加载、解析和初始化过,即验证是否是第一次使用该类。如果没有(不是第一次使用),那必须先执行相应的类加载...

2020-04-23 18:12:02 117 0

转载 Java中new一个对象是一个怎样的过程?JVM中发生了什么?

Java中new一个对象的步骤: 1.当虚拟机遇到一条new指令时候,首先去检查这个指令的参数是否能在常量池中能否定位到一个类的符号引用(即类的带路径全名),并且检查这个符号引用代表的类是否已被加载、解析和初始化过,即验证是否是第一次使用该类。如果没有(不是第一次使用),那必须先执行相应的类加载...

2020-04-23 18:11:31 85 0

转载 Java中SPI机制详解

本文转载于高级开发必须理解的Java中SPI机制 本文通过探析JDK提供的,在开源项目中比较常用的Java SPI机制,希望给大家在实际开发实践、学习开源项目提供参考。 一、 SPI是什么 SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或...

2020-04-19 17:59:51 49 0

转载 SpringFactoriesLoader ServiceLoader区别

两者实现的功能很类似,不过 Spring 提供的功能更灵活一些。 IoC 并不仅限于解决模块内类与类之间的依赖耦合问题,其同样适用于模块与模块之间。OSGi 一直致力于这方面的工作。但其实 Java 和 Spring 都提供了对 IoC 的支持。 Java Service Loader Ja...

2020-04-19 17:57:26 51 0

转载 Serializable:明明就一个空接口!为什么还要实现它?

文章来源:https://mp.weixin.qq.com/s/d2lagx9uPjGUZzkfyie29w 作者:沉默王二 对于 Java 的序列化,我一直停留在最浅显的认知上——把那个要序列化的类实现 Serializbale 接口就可以了。我不愿意做更深入的研究,因为会用就行了嘛。 ...

2020-04-18 15:50:55 111 0

转载 JMX monitoring + Java custom metrics.

In this tutorial we are going to learn how to instrument Java code to expose application metrics using JMX monitoring. Following the code examples, y...

2020-04-18 15:08:26 76 0

转载 RestTemplate设置通用header

增加interceptor public static class UserAgentInterceptor implements ClientHttpRequestInterceptor { @Override public ClientHttpRespon...

2020-04-16 15:41:18 39 0

转载 Spring Boot缓存实战 Caffeine

Caffeine和Spring Boot集成 Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代Guava。如果出现Caffeine,CaffeineCacheManager将会自动配置。使用spring.cache.cache-names属性可...

2020-04-13 00:13:04 73 0

转载 Java之——使用JMX监控Tomcat

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/51547408 2016年5月的最后一天,今天我将和大家分享Java中如何使用JMX来监控Tomcat的各种状态。好了,不多说了,我们直接进入主题 一、激活Tomcat的JMX远...

2020-04-12 17:48:09 90 0

转载 Tomcat Monitoring

Permalinkto this page:https://cwiki.apache.org/confluence/x/eColBg Table of Contents Monitoring Tomcat JVM Information Heap and other Memory...

2020-04-12 17:47:31 48 0

转载 真香!我终于干掉了该死的if-else

if else 是所有高级编程语言都有的必备功能。但现实中的代码往往存在着过多的 if else。 图片来自 Pexels 虽然 if else 是必须的,但滥用 if else 会对代码的可读性、可维护性造成很大伤害,进而危害到整个软件系统。 现在软件开发领域出现了很多新技术、新概念,...

2020-04-11 22:37:59 341 0

转载 K8s - 免费的Kubernetes在线实验平台介绍

kubernetes(简称K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用。 在之前的文章中,我介绍如何通过Docker为我们提供的实验网站Play with Kubernetes(PWK)来搭建Kubernetes集群(点击查看)。 但如果每次学习时都需要重新搭建一个K8s集群还...

2020-04-11 18:12:44 109 0

转载 k8s 免费测试环境分享

k8s 免费测试环境分享 ​ 开始学k8s会面临两个拦路虎: GFW和基础环境的投入。 谷歌镜像下载 ​ GFW就不多谈了。作为一个良民,不再多说。但是kubernetes的基础镜像基本来自谷歌,那怎么办呢: 先查看安装kubernetes版本对应的镜像: kubeadm con...

2020-04-11 18:09:57 72 0

转载 Monitoring Tomcat – MBean Metrics Part I

In this blog post I will show you how to use the JavaApp to monitor application servers like Tomcat, JBoss and FUSE. We’ll start off with Tomcat, sin...

2020-04-10 22:55:32 67 0

转载 JMX获取tomcat监控信息

最近用JAVA写了个获取tomcat信息资源的代码,随便保存一下。 大致的步骤全在这了,可以获取到任何想要的指标: 首先可以用JDK提供的工具jconsole来供我们查看,这个在服务端配置下catalina.bat文件,加入以下内容: Linux下要监控的java进程需要配置参数: ...

2020-04-10 22:11:28 80 0

转载 Zabbix使用jmx监控tomcat

前提:编译zabbix server时需要提供java支持,即添加--enable-java该选项。 1、zabbix server段配置java支持。此处编译安装zabbix的目录为/usr/local/zabbix。 编辑/usr/local/zabbix/sbin/zabbix_jav...

2020-04-10 22:10:38 30 0

转载 Monitoring and Managing Tomcat

Table of Contents Introduction Enabling JMX Remote Manage Tomcat with JMX remote Ant Tasks JMXAccessorOpenTask - JMX open connection task JMXAcc...

2020-04-10 22:08:45 26 0

转载 三十一、Springboot整合JMX(监控)

(一)JMX规范和应用场景介绍   参见Java分布式应用学习笔记08JMX规范与常用的监控场景 (二)Springboot整合JMX 1、暴露MBean @Component @ManagedResource( objectName = "org.pc.jmx:type=S...

2020-04-10 19:36:06 43 0

转载 什么是MBean?什么是JMX架构?

# 什么是MBean - MBean就是一种规范的JavaBean,通过集成和实现一套标准的Bean接口,这种叫MBean,Mbean注册到MBeanServer中。之后将被MBeanServer中注册过的Adapter(比如渲染为HTML的HtmlAdapter)渲染为直观的页面将MBean的属...

2020-04-10 14:51:19 61 0

转载 SpringCloud Ribbon组成和负载均衡规则

Ribbon饥饿加载 默认情况下Ribbon是懒加载的。当服务起动好之后,第一次请求是非常慢的,第二次之后就快很多。 解决方式:开启饥饿加载 ribbon: eager-load: enabled: true #开启饥饿加载 clients: server-1,server-...

2020-04-09 21:50:41 38 0

转载 HikariCP MBean (JMX) Monitoring and Management

The JMX MBean for HikariCP exposes: Idle Connection count Active Connections (in use) Total Connections The number of threads waiting for a conne...

2020-04-09 10:17:47 88 0

转载 Feign的各种超时时间(含局部方法设置超时案例)

关于Feign的超时记录: 在Spring Cloud微服务架构中,大部分公司都是利用Open Feign进行服务间的调用,而比较简单的业务使用默认配置是不会有多大问题的,但是如果是业务比较复杂,服务要进行比较繁杂的业务计算,那后台很有可能会出现Read Timeout这个异常。 1、关于hy...

2020-04-05 19:20:54 369 0

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