自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (6)
  • 收藏
  • 关注

转载 HikariCP连接池优化配置小结

同样是收集信息用,这个属性收集的是连接池的健康状况。配置允许连接池达到的最大连接数(包括空闲和正在使用的),当池中连接达到maximumPoolSize,且都不空闲,当有新请求从池中申请连接池会阻塞等待可用连接,达到connectionTimeout还不能申请成功,则抛出SQLException。连接池会定时轮询检测哪些连接是空闲,并且空闲达到了idleTimeout配置的时间,但轮询间隔有时间差,一个空闲连接最大可空闲idleTimeout + 30s会逐出,平均是:idleTimeout + 15s。

2023-07-06 14:22:32 4019

转载 SpringCloud之Eureka服务端源码解析

是以每15分钟为临界点, 根据当前的服务总数 * 2(一分钟2次心跳) * 受保护的服务占比0.85 , 计算出 每分钟 期望收到的心跳次数的阈值, 如果开启了自我保护配置 并且最近一分钟收到的心跳次数 < 每分钟 期望收到的心跳次数的阈值 ,那么 将 触发自我保护,不移除任何服务。先计算所有服务的实例个数, 每个服务发送心跳的时间为 30s,那么每分钟期望接受到的心跳个数为 实例个数 * 2,每分钟 接受心跳的最小阈值 是每分钟期望接受到的心跳个数 * 0.85。

2023-04-06 15:58:52 371

转载 SpringCloud之Eureka客户端源码解析

这个接口 我们也可以 自己手动调, 如果 我们明确知道某个实例出现故障下线了,然后 那个实例 的定时器 还没有到 发送心跳给服务端的时间点 ,还没有把自己down的状态发给服务端, 那么, 其他 新上线的 服务从服务端 拉取到的服务列表里,这个实例的状态还是UP, 那么调用的时候 还有可能调到他, 就会产生一次失败的调用。(服务端 把这个实例更新成DOWN之后,其他服务拉取服务列表的定时器还没到时间点, 本地的服务列表还是旧的,这个实例的状态还是UP,那么还会调到它,最终失败。

2023-04-06 15:32:59 301

转载 Rabbitmq 如果保证消息的可靠性

rabbitmq,消息持久性

2023-03-02 15:54:30 156

转载 mysql是如何保证持久性的

redo log, binlog,重做日志

2023-03-02 11:04:07 1631

原创 显示锁Lock与读写锁ReadWriteLock

ReentrantLock 公平锁加锁源码浅析

2023-01-31 17:51:42 145

原创 git误提交到本地分支的回退

以此文记录下在IDEA中如何回滚项目历史版本,并提交远程大致分为两步:第一步,回滚本地代码;第二步,回滚远程代码;首先,我们先来回滚本地代码按照下图的步骤,获取你要回滚的历史版本的版本号然后项目根目录右键 Git->Repository->Reset HEADReset Type 有三种:mixed 默认方式,只保留源码,回退commit和index信息soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commi

2022-03-03 14:24:15 2182

原创 误删git分支恢复方法

恢复步骤如下:1.使用git log -g 找回之前提交的commit2.使用git branch recover_branch[新分支] commit_id命令用这个commit创建一个分支

2022-01-10 10:29:21 422

原创 charles 抓包-手机

一、Charles设置1、让电脑和手机处于同一个局域网下,即电脑和手机连接同一个WiFi【电脑开WiFi给手机连接也可以】;2、打开Charles,点击菜单栏中Proxy –> Proxy Settings···,设置代理端口是8888【默认】,可以不修改端口号, 点击OK::3、在cmd中ipconfig可以看到电脑的IP:4、如果要对HTTPS抓包的话,还需要设置Proxy -> SSL Proxying Settings -> SSL Proxying -> Ad

2021-12-30 18:06:33 2138

原创 jstack+gceasy 查看jvm死锁问题

jstack+gceasy 查看jvm死锁问题将文件下载到本地,使用gceasy进行分析

2021-10-29 16:40:24 122

原创 浅谈对Rabbitmq失败通知和生产者确认的理解

Rabbitmq的失败通知和生产者确认机制,对于初学者来说总是不那么好理解,咱们先看一下消息发布时候的权衡从图中可以看出投递速度由快到慢,消息安全由低到高的权衡,我们可以看到失败通知和生产者确认在其中的位置,先总的了解下,接下来我们通过代码来理解下什么是失败通知,什么是生产者确认。1.先创建配置类import com.controller.MyAckReceiver;import org.springframework.amqp.core.*;import org.springf.

2021-06-18 12:13:36 508

原创 nacos客户端注册流程源码分析

nacos版本:2.2.01.AbstractAutoServiceRegistration实现了ApplicationListener接口,我们知道spring的监听机制当服务器启动后会调用ApplicationListener的onApplicationEvent方法,所以,nacos客户端是在项目启动后通过onApplicationEvent方法将本服务的实例信息发送给nacos的客户端的,我们看代码public abstract class AbstractAutoServiceRegis

2020-12-18 16:23:44 212 2

原创 nacos适配mysql8及以上版本

最近公司使用nacos作为注册于配置中心,在将配置持久化到mysql数据库的时候发现报错这是因为nacos与mysql的版本不对应导致的nacos无法加载数据源,我使用的是nacos是1.3.0的,1.4.0以下使用的mysql驱动是8.0以下的,1.4.0以上使用的驱动就是8.0以上的了,所以在家在使用的nacos的时候要注意与mysql的对应版本问题。 那么怎么才能让nacos1.4.0以下的版本支持mysql8呢?看一下步骤1.https://github.co...

2020-12-16 13:55:22 3986

原创 ribbon的IRule是如何实现默认覆盖的

通过https://blog.csdn.net/majinan3456/article/details/108768906这边文章我们已经了解了ribbon的配置类是怎么注册进IOC容器的,Rule的作用是根据规则选择一台服务进行调用,那么我们找到ribbon选择服务的方法RibbonLoadBalancerClient.choose(String serviceId)方法 @Override public ServiceInstance choose(String serviceId)

2020-09-24 17:31:28 430

原创 Ribbon的Iping机制

https://blog.csdn.net/majinan3456/article/details/108768906这篇文章已经讲了ribbon是如何一步一步将配置类加载进IOC容器并作用的,有了对前面的基础,那么Iping就容易的多了首先Iping和获取服务列表一样,是ribbon第一次调用服务的时候初始化的定时任务,并且是在初始化ILoadBalancer对象的时候初始化进去的,看代码,打开RibbonClientConfiguration配置类,啰嗦一句,还记得RibbonClientConf.

2020-09-24 16:39:05 1550

原创 Ribbon 菜鸟高手都能看的懂的获取服务列表的源码分析

我不怎么喜欢说废话,能看到这篇文章的人多少都要知道ribbon是干什么的,这个不做赘述,我只讲一下我在使用ribbon的疑惑以及跟源码的过程。1.ribbon的配置类到底是怎么一步一步注册进去的?2.ribbon到底是初始化的时候去注册中心取服务列表的还是第一次调用服务的时候去的服务列表?1. ribbon有两个重要的配置类RibbonAutoConfiguration和RibbonClientConfigurationRibbonAutoConfiguration:这个配置类初始化了.

2020-09-24 14:44:24 1033 1

原创 java中static final 与 final 的区别

java中static final 与 final 的区别废话不多说,直接上代码public class ProductServiceImpl implements IProductService { private final int a = new Random().nextInt(); private static final int b = new Random().nextInt(); @Resource private ProductMapper p

2020-09-22 10:07:26 95

原创 windows安装rabbitmq(按步操作,绝对成功)

这两天由于系统崩坏,导致本已经装好的rabbitmq需要重新安装,上次是完全按照网上的说法没有总结,所以这次导致安装过程中遇到很多的坑,折腾了一天终于搞定了,所以记录一下1.rabbitmq是基于二郎写的,所以安装之前需要安装erlang,rabbitmq与erlang有严格的版本一致性要求,我用的是erlang 22.1版本,rabbitmq用的是3.8.1,具体的版本对应可以...

2019-11-04 23:17:46 718 1

原创 mysql开启binlog日志

1.检查binlog日志是否开启show variables like '%log_bin%';如果是OFF,则表示未开启2.修改 /etc/my.cnfvim/etc/my.cnf,添加如下两行 /usr/local/mysql/mysqlBinLog 即为日志存放路径3.给这个路径赋予权限chown -R mysql.mysql /usr/l...

2019-08-23 16:07:35 137 1

原创 eureka服务注册与发现流程

客户端: spring-cloud-netfile-eureka-client-2.0.0.release主题流程: 1.相关配置赋值 2.备份注册中心的初始化,实际什么都没做 3.拉取server注册表中信息 4.注册前的预处理 5.向server注册自己 ...

2019-08-14 18:11:16 1249

转载 No instances available for localhost

使用RestTemplate类调用其他系统的url的时候,加上ribbon的注解@LoadBalanced上这个注解之后访问,就报错了。报错如下:因为这里你不能直接访问地址,需要把地址改成你所调用的ur在eureka上注册的application.name将代码修改为如下,就可以访问了具体原因,我查看了一下源码和网上找了一下,貌似是在加...

2019-08-12 23:10:46 1744

转载 MVCC简介

MVCC简介1. MVCC简介1.1 什么是MVCCMVCC是一种多版本并发控制机制。1.2 MVCC是为了解决什么问题?大多数的MYSQL事务型存储引擎,如,InnoDB,Falcon以及PBXT都不使用一种简单的行锁机制.事实上,他们都和MVCC–多版本并发控制来一起使用. 大家都应该知道,锁机制可以控制并发操作,但是其系统开销较大,而MVCC可以在大多数情况下代替行级锁...

2019-08-08 17:18:41 121

转载 spring security过滤器的创建与注册原理

一、Spring Security过滤器的创建原理  让我们首先看下MySecurityConfig类@EnableWebSecurity@Configurationpublic class MySecurityConfig extends WebSecurityConfigurerAdapter { @Autowired public void confi...

2019-08-07 17:54:12 353

转载 rmi与jstatd远程监控虚拟机

由于我们的生产系统架构是一台与主机挂了四台tomcat,主机内存8G,我担心访问量大了之后会OOM,所以想用jvisualVM把虚拟机监控起来,于是乎网上一顿找,基本上讲的都是分两类监控模式,一种是rmi,一种是jstatd,rmi的很顺利的完成了,但是关于jstatd的监控却始终不行,下面湿解决rmi与jstatd监控的终级办法。1 配置前的准备我们需要先检查linux的h...

2019-07-17 14:06:10 354

jvm原理与调优

该文档是关于java虚拟机的原理,描述及调优视频,其中,详细讲述了jvm的运行机制,类装载器,GC算法,性能监控工具,堆,锁等内容。

2018-05-27

防止XSS攻击解决办法

防止XSS攻击简单实用的解决办法,直接复制两个过滤器,然后配置web.xml即可实现

2018-01-20

Apache_Struts2漏洞(S2-045,CVE-2017-5638)

关于解决 Apache_Struts2漏洞(S2-045,CVE-2017-5638),包含说明与所需资源

2018-01-20

intellij idea 集成jRebel

intellij idea 集成jRebel,内附jRebel压缩包,快速实现热部署

2017-03-23

intellij idea 集成tomcat

intellij idea 集成tomcat

2017-03-23

MySql5.7.17 windows版的安装

MySql5.7.17 windows版的安装

2017-03-21

空空如也

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

TA关注的人

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