majinan3456
码龄8年
关注
提问 私信
  • 博客:26,306
    社区:46
    26,352
    总访问量
  • 15
    原创
  • 2,191,822
    排名
  • 4
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2017-03-21
博客简介:

majinan3456的博客

查看详细资料
个人成就
  • 获得8次点赞
  • 内容获得5次评论
  • 获得54次收藏
创作历程
  • 6篇
    2023年
  • 2篇
    2022年
  • 3篇
    2021年
  • 6篇
    2020年
  • 7篇
    2019年
成就勋章
TA的专栏
  • rabbitmq
    1篇
  • java基础
    5篇
  • Mysql
    3篇
  • spring Cloud
    6篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

353人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

HikariCP连接池优化配置小结

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

SpringCloud之Eureka服务端源码解析

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

SpringCloud之Eureka客户端源码解析

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

Rabbitmq 如果保证消息的可靠性

rabbitmq,消息持久性
转载
发布博客 2023.03.02 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql是如何保证持久性的

redo log, binlog,重做日志
转载
发布博客 2023.03.02 ·
1832 阅读 ·
3 点赞 ·
0 评论 ·
9 收藏

显示锁Lock与读写锁ReadWriteLock

ReentrantLock 公平锁加锁源码浅析
原创
发布博客 2023.01.31 ·
175 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

误删git分支恢复方法

恢复步骤如下:1.使用git log -g 找回之前提交的commit2.使用git branch recover_branch[新分支] commit_id命令用这个commit创建一个分支
原创
发布博客 2022.01.10 ·
454 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
2246 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

jstack+gceasy 查看jvm死锁问题

jstack+gceasy 查看jvm死锁问题将文件下载到本地,使用gceasy进行分析
原创
发布博客 2021.10.29 ·
165 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

nacos版本:2.2.01.AbstractAutoServiceRegistration实现了ApplicationListener接口,我们知道spring的监听机制当服务器启动后会调用ApplicationListener的onApplicationEvent方法,所以,nacos客户端是在项目启动后通过onApplicationEvent方法将本服务的实例信息发送给nacos的客户端的,我们看代码public abstract class AbstractAutoServiceRegis
原创
发布博客 2020.12.18 ·
256 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

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 ·
4222 阅读 ·
0 点赞 ·
0 评论 ·
5 收藏

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 ·
465 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Ribbon的Iping机制

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

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

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

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 ·
127 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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 ·
170 阅读 ·
1 点赞 ·
1 评论 ·
0 收藏

eureka服务注册与发现流程

客户端: spring-cloud-netfile-eureka-client-2.0.0.release主题流程: 1.相关配置赋值 2.备份注册中心的初始化,实际什么都没做 3.拉取server注册表中信息 4.注册前的预处理 5.向server注册自己 ...
原创
发布博客 2019.08.14 ·
1316 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏
加载更多