- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 rabbitMq双节点高可用集群安装(亲测可用)
样例配置文件下载地址:https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq.conf.example。rababitmq包下载地址:https://packagecloud.io/rabbitmq/rabbitmq-server。erlang包下载地址:https://packagecloud.io/rabbitmq/erlang。通过地址:http://:15672 访问管理页面。
2024-11-05 08:28:33
1222
原创 最大线段重合问题
给定很多线段,每个线段都有两个数组[start, end],表示线段开始位置和结束位置,左右都是闭区间。题目要求:返回线段最多重合区域中,包含了几条线段。1)线段的开始和结束位置一定都是整数值。2)线段重合区域的长度必须>=1。
2024-05-25 16:46:21
479
原创 线程池原理
线程池是一种并发编程中常用的技术,用于管理和复用线程,以提高系统性能和资源利用率。:线程池在启动时创建一定数量的线程,并将它们保存在一个线程池中。当有任务到达时,线程池会分配一个空闲线程去执行任务,而不是每次任务都创建一个新线程。这样可以减少线程创建和销毁的开销,提高系统的响应速度和资源利用率。:线程池通常会维护一个任务队列,用于存放等待执行的任务。当有新任务到达时,线程池会将任务放入队列中,空闲线程会从队列中取出任务并执行。任务队列可以缓解任务的突发性,保持系统的稳定性。
2024-03-20 16:35:16
341
原创 架构师必备技术-负载均衡介绍
HAProxy是一种开源的、高性能的负载均衡器(Load Balancer)和代理服务器,常用于分发网络流量到多个后端服务器,以提高性能、可用性和可扩展性。它使用单一进程、多线程模型来处理并发连接,同时支持基于事件驱动的I/O处理,使其具有卓越的性能。:HAProxy提供了丰富的监控和统计信息,包括连接数、请求速率、响应时间等指标,可通过内置的统计页面、日志文件或集成监控工具进行监控和分析。:HAProxy支持动态加载配置,可以在不停止服务的情况下进行配置更改,从而实现灵活的配置管理和快速的部署更新。
2024-03-19 14:22:55
402
原创 分析线程dump文件的各种工具
Java dump 文件是指 Java 运行时环境生成的一种包含程序运行时状态信息的文件。这些信息包括线程堆栈、内存使用情况、对象的状态等。: Java dump 文件可以用于程序的调试和分析。通过分析 dump 文件,可以了解程序在运行过程中的状态,包括线程的堆栈信息、内存分配情况等,有助于发现程序中的问题和优化性能。: 当 Java 程序出现异常或崩溃时,可以生成 dump 文件来记录程序在崩溃前的状态信息。这对于诊断问题、定位故障原因非常有帮助,有助于开发人员快速定位并修复问题。
2024-03-18 13:26:00
7809
原创 java系统运行缓慢排查思路
这得运用一下jstack命令了,(具体用法,请参考之前的文章),可以导出程序运行的堆栈信息。简单的说,堆栈就是线程的运行信息。2.第二步,找到了进程还交不了差,进程就像台大机器,里面有大大小小的零件,都在耗费着资源,得找到具体是哪个零件着耗费资源。那么,首先想一下,一台linux服务器,资源是固定的,运行慢的原因,无非是资源被消耗殆尽,那么我们要揪出凶手,哪个进程里的哪个线程,耗费cpu资源比较多。4.第四步,根据第二步找到的线程号,转换为16进制后,正第三步中找到对应的线程号,可以定位到具体的代码行数。
2024-03-15 20:25:01
1328
1
原创 JVM常用监控工具(3)-jstack
是 JDK 自带的一个工具,用于生成 Java 进程的线程快照(也称为堆栈跟踪)。它可以用于诊断 Java 应用程序中的线程问题,比如死锁、线程阻塞等。:表示线程被阻塞,通常是由于它试图获取一个对象的监视器锁(synchronized 代码块或方法)而被其他线程持有该锁,也可能是由于调用了。:表示线程正在等待某个条件的发生,如等待另一个线程的通知,或者等待某个条件的满足而进入休眠状态。参数可能会增加线程快照的大小,并稍微增加生成线程快照的时间,但通常这种额外的信息对于定位问题非常有帮助。
2024-03-15 11:41:24
519
1
原创 JVM常用监控工具(2)-jmap
是 Java Virtual Machine Memory Map 命令的一个工具,用于生成 Java 运行时内存映射的快照。它可以帮助诊断 Java 应用程序的内存使用情况,特别是在分析内存泄漏时非常有用。好了,help已经说的很清楚了,本教程结束。3.生成 Java 堆转储文件:使用 此命令时需要谨慎,,并且最好在对应用程序进行备份或者其他措施的情况下使用。下图为执行命令的结果,可以看出哪个对象占用的内存最多。关于导出的文件该用什么工具分析,且听下回分析。命令的基本用法:在命令行输入 jmap。
2024-03-14 20:28:27
595
1
原创 k8s部署springboot项目实战
k8s环境1.k8s 部署redis apiVersion: apps/v1kind: StatefulSetmetadata: name: redis labels: app: redis annotations: security.alpha.kubernetes.io/unsafe-sysctls: net.core.somaxconn=65535spec: #securityContext: #privileged: true...
2022-01-19 17:36:42
1943
原创 k8s 部署springboot+redis报无法从string转化为 int问题
在用k8s部署springboot项目时,碰到一个问题,卡了1天多。在启动springboot时,控制台输出错误, ${REDIS_HOST:6379} 无法从string转化为 int,REDIS_HOST的值为 tcp:xxx.xxx.xxx:6379 。网上查询一番后,说是环境变量的问题,spring配置有个生效优先级属性文件的读取顺序大概是:java se运行时系统属性 >系统环境变量属性>bootstrap.properties> bootstrap-dev.p
2021-12-23 16:17:38
1742
1
原创 链表反转
public static ListNode reverseList(ListNode head) { if(head == null) return null; //前一个结点 ListNode pre = null; //后节点 ListNode next = null; //head 当前节点 while (head != null){ ...
2021-05-18 15:15:42
85
原创 最小栈
155. 最小栈难度简单901设计一个支持push,pop,top操作,并能在常数时间内检索到最小元素的栈。push(x)—— 将元素 x 推入栈中。 pop()—— 删除栈顶的元素。 top()—— 获取栈顶元素。 getMin()—— 检索栈中的最小元素。解答:思路,用链表来实现栈,将最小值直接存在top节点,可实现o(n)复制度。class MinStack { Node top = null; class Node{ in...
2021-05-14 23:27:12
87
原创 zookeeper分布式锁原理
在分布式锁中,zookeeper分布式锁被广泛使用,那么,它的底层是如何实现的呢,在分析之前,我们首先要知道zookeeper临时顺序节点的一些特性临时性 当客户端失去连接时,此节点会自动删除。保证了客户端失去连接后,释放锁顺序性在zookeeper中,创建了一个临时顺序节点,那么他的子节点的序号都是按照创建顺序递增的。这2个特性保证了zookeepre分布式锁的实现。基本原理是想要获取锁的线程会各自创建一个临时顺序节点,并判断当前节点是否是序号最小的,如果是最小的,则锁获取成功,执行业..
2021-03-05 13:53:31
191
原创 spring源码分析 加载bean流程(一)
先来简单回顾下如何使用spring的ioc功能,首先在application.xml中配置一个bean A。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:conte...
2021-03-02 14:15:09
171
原创 springboot服务异常宕机
早上被通知服务挂了,于是去查服务器日志,最后的日志终止于一个job。运用 linux 命令 sudo dmesg -T | grep "java" 查询到日志为linux内存一共是4g,jvm服务用了差不多接近4g,系统的防御性机制导致jvm被系统强制杀死。至于jvm为什么用了这么多内存,还有待排查...
2021-02-24 10:16:20
1203
原创 微信公众号对接支付宝教程
1.微信公众号中的网页如何调用支付宝支付宝沙箱环境https://open.alipay.com/platform/appDaily.htm?tab=info基本流程1.前端页面调用后台下单接口,后台接口返回支付宝支付url。2.前端跳转后台返回的支付宝url,跳转到支付宝付款页面3.用户支付订单,支付成功后,支付宝异步回调我们在支付宝后台配置的应用网管URL。4....
2019-05-20 16:28:02
8935
阿里巴巴Java编码规范.pdf
2018-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人