自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 记一次dubbo连接池打满的线上排查过程

现象:dubbo连接池爆满,dubbo接口接口不可用,日志和监控平台都显示显示dubbo连接池已满排查方式:/opt/souche/java/bin/jstack -l 94堆栈信息显示,有大量的redis连接waiting,命令查看redis连接池满了原因:redis连接池参数设置为8,等待超时时间为-1ms(即超时一直等待)。代码层面,由于线索接口分页查询,单次20条,然后每条数据查询都会走redis查询,redis的存储结构使用的是hash,遍历entry使用的是cur..

2021-09-29 15:30:00 824

原创 cpu负载和利用率

某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于 CPU,而正在或等待打电话的人就相当于任务数。 在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计平均负载情况,我们 5 秒钟统计一次人数,并在第 1、5、15 分钟的时候对统计情况取平均值,从而形成第 1、5、15 分钟的平均负载。 有的人拿起电话就打,一直打完

2021-09-29 15:23:16 180

原创 技术人的日常感悟

想要行多远的路,到达多高的高度,首先取决于我们有多少见识,有多大的野心,既然见识到了更高的星空,那么再不要只是像一个毫无城府的人喜怒形于色,如果只是想要安居一隅,如果只是局限于做一个庸人,又何必闹腾。但是如果选择了远方,便只顾得上风雨兼程。 其次,决定了我们以什么样的心态对待这个世界,对待身边的人,很多事情能够看的更开,那些阻碍团队前进,阻碍自己利益前行的,必然要一脚踢开,合情合理。但是态度也不必恶劣,控制好自己的情绪,用正确的方式做正确的事情。 这里谈到一个很重要的词,叫做“情...

2021-05-03 23:44:26 201

原创 b站流量回放实践

参考:https://www.bilibili.com/read/cv6168589

2021-04-21 16:36:05 139

原创 springboot java mail sender邮件发送超时

springboot java mail sender邮件发送超时正常来说,发送邮件在本地发送走25端口都不会有问题,但是部署到linux环境就失败?看过很多博主写的,大多相互抄袭,不妨看看下面的解决方案吧。1. 有关 SpringBoot 邮件服务Spring Framework 自己有一套基于JavaMail的邮件服务包org.springframework.mail,并通过 JavaMailSender 接口提供了一种简易的发送邮件的方式。这样,开发人员就可以不用操心底层的邮件系统...

2020-10-10 11:18:55 3248

转载 单点登录(SSO)原理

一、单系统登录机制1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通过浏览器访问服务器资源,如果想保护服务器的某些资源,必须限制浏览器请求;要限制浏览器请求,必...

2018-11-14 16:46:49 1248

原创 抓包软件的使用配置之Charles

目前抓包测试的软件主流的有2款: 1.charles 2.fiddler  均可以抓http+https的包,主要讲解Charles,Fiddler与Charles大同小异。简介Charles 是在 Mac 下常用的网络封包截取工具,在做 移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。 除了在做移动开发中调试端口外,Charles 也可以用于分析第三方应用...

2018-09-06 15:01:53 157

原创 Netty从入门到放弃

什么是Netty?Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke's Choice Award,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司 Face...

2018-08-29 01:16:53 230

转载 MQ消息幂等

一、缘起MQ消息必达,架构上有两个核心设计点:(1)消息落地(2)消息超时、重传、确认 再次回顾消息总线核心架构,它由发送端、服务端、固化存储、接收端四大部分组成。为保证消息的可达性,超时、重传、确认机制可能导致消息总线、或者业务方收到重复的消息,从而对业务产生影响。举个栗子:购买会员卡,上游支付系统负责给用户扣款,下游系统负责给用户发卡,通过MQ异步通...

2018-07-20 18:29:06 556

原创 线程池详解

一.为何要用线程池reason1:服务器应用程序中经常出现的情况是:单个任务处理的时间很短而请求的数目却是巨大的。构建服务器应用程序的一个过于简单的模型应该是:每当一个请求到达就创建一个新线程,然后在新线程中为请求服务。实际上,对于原型开发这种方法工作得很好,但如果试图部署以这种方式运行的服务器应用程序,那么这种方法的严重不足就很明显。每个请求对应一个线程(thread-per-r...

2018-07-19 15:29:04 526

转载 源码解读Spring IOC原理

pring IOC设计原理解析:本文乃学习整理参考而来一、 什么是Ioc/DI?二、 Spring IOC体系结构(1) BeanFactory(2) BeanDefinition三、 IoC容器的初始化1、 XmlBeanFactory(屌丝IOC)的整个流程2、 FileSystemXmlApplicationContext 的IOC容器流程1、高富帅IOC解剖2、 设置资源加载器和资源定位3...

2018-03-21 00:56:24 277

转载 Dubbo架构与底层实现

一、Dubbo的设计角色(1)系统角色Provider: 暴露服务的服务提供方。Consumer: 调用远程服务的服务消费方。Registry: 服务注册与发现的注册中心。1Monitor: 统计服务的调用次调和调用时间的监控中心。Container: 服务运行容器。(2)调用关系服务容器负责启动,加载,运行服务提供者。服务提供者在启动时,向注册中心注册自己提供的服务。...

2018-02-27 12:44:39 6130

转载 Java中为什么匿名内部类和局部内部类只能访问final变量?

一、为什么匿名内部类参数必须为final类型 ?​ 从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方法内部(可出现在形式参数定义处或者方法体处),因而访问方法中的局部变量(形式参数或局部变量)是天经地义的.是很自然的。二、 为什么JAVA中要加上一条限制:只能访问final型的局部变量? ,但是:编译技术是无法实现的或代价极高.​三、

2018-02-02 17:26:16 598 1

转载 进程间通信的方式对比:信号、管道、消息队列、共享内存

多进程:首先,先来讲一下fork之后,发生了什么事情。由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以f

2018-02-02 09:41:47 2091

转载 Java里的CompareAndSet(CAS)

注:(CAS的加锁方式为乐观锁,sychronized为悲观锁)Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的increm

2018-02-01 16:59:54 827

转载 SpringMVC

1.首先,导入SpringMVC需要的jar包。2.在 web.xml 中配置前端控制器 DispatcherServlet。[html] view plain copyxml version="1.0" encoding="UTF-8"?>  web-app xmlns:xsi="http://www.w3.org/2001/XML

2017-08-21 21:27:33 222

转载 tomcat8源码之架构解析

Catalina:与开始/关闭shell脚本交互的主类,因此如果要研究启动和关闭的过程,就从这个类开始看起。Server:是整个Tomcat组件的容器,包含一个或多个Service。 内容来自www.itxxz.comService:Service是包含Connector和Container的集合,Service用适当的Connector接收用户的请求,再发给相应的Cont

2017-07-14 11:22:01 1869

转载 Tomcat源码解析之catalina 、bootstrap

首先看下Catalina这个类中主要的方法:说白了,也就是启动、等待、停止几种情况,说到Catalina,不得不提到Bootstrap,这两个类可谓互为唇齿。Bootstrap是为加载Catalina而准备的一套线程守护类,之所以绕个弯路需要通过Bootstrap来加载,这是因为某些依赖jar包或者加载器(比如:XML parser)需要灵性加载。为了松耦合性,在启动了

2017-07-14 11:11:00 342

转载 静态代理、JDK与CGLIB动态代理

目录一、为什么需要代理模式二、静态代理三、动态代理,使用JDK内置的Proxy实现四、动态代理,使用cglib实现一、为什么需要代理模式假设需实现一个计算的类Math、完成加、减、乘、除功能,如下所示: 1 package com.zhangguo.Spring041.aop01; 2 3 public class Math { 4

2017-07-13 16:34:30 249

转载 Spring AOP详解

一.前言    在以前的项目中,很少去关注spring aop的具体实现与理论,只是简单了解了一下什么是aop具体怎么用,看到了一篇博文写得还不错,就转载来学习一下,博文地址:http://www.cnblogs.com/xrq730/p/4919025.htmlAOPAOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Obje

2017-07-13 10:46:43 165

转载 Java泛型详解

1.为什么需要泛型泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍、总结了关于泛型的知识。希望能给你带来一些帮助。先看下面的代码: List list = new ArrayList();  list.add("CSDN_SEU_Cavin");  list.add(100);  for (int i =

2017-07-05 19:15:54 169

转载 Java动态代理与反射详解

先来看看反射。java里的class文件加载分为两种情况,一种就是类型是编译器已知的,这种文件的.class文件在编译的时候,编译器会把.class文件打开检查,但是注意不是加载哦,第二种就是我们可能是从别的地方获取到了一个引用,然后动态的把这个未知类型的引用的对象的.class文件加载进jvm虚拟机里。那么我们称前者为RTTI,即Run- Time Type Identificati

2017-07-05 10:49:56 492

转载 RESTful 架构详解

1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一

2017-06-07 16:35:34 340

转载 jstack和线程dump分析

摘要: jstack和线程dump分析 jstack定义: jstack是java虚拟机自带的一种堆栈跟踪工具。 基本介绍: jstack用于生成java虚拟机当前时刻的线程快照。线程快照是当前java虚拟机内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。jstack和线程dump分析

2017-05-24 22:41:41 306

原创 Eclipse/MyEclipse 最最常用的快捷键

F 键类F2 显示详细信息F3 跳到声明或定义的地方Ctrl + 键类Ctrl+1 快速修复 ( 最经典的快捷键 , 就不用多说了 )Ctrl+D 删除当前行Ctrl+E 快速显示当前 Editer 的下拉列表 ( 如果当前页面没有显示的用黑体表示 )Ctrl+T 快速显示当前类的继承结构Ctrl+O 快速显示 OutLine

2017-03-01 10:45:12 390

原创 UML视图种类划分

1.UML的组成UML由视图(View)、图(Diagram)、模型元素(Model Element)和通用机制(General Mechanism)等几个部分组成。a) 视图(View): 是表达系统的某一方面的特征的UML建模元素的子集,由多个图构成,是在某一个抽象层上,对系统的抽象表示。b) 图(Diagram): 是模型元素集的图形表示,通常是由弧(关系)和顶点(其他

2015-09-06 17:13:42 30945

转载 软件开发模型介绍、总结归纳

瀑布模型描述:每个软件过程顺序衔接、一次性通过,最常用。优点:由文档和风险驱动,利于提高大型项目开发的质量和效率。缺点:建设周期长、风险大、难以满足用户需求。适用场合:需求明确且很少变更的项目,如二次开发或升级型项目。螺旋模型描述:以原型为基础沿螺线旋转、每转一圈都经过计划/风险分析/实施/评估等过程且得到相应新版本、经过若干次螺旋上升得

2015-09-06 17:01:49 1061

转载 Java NIO原理 图文分析及代码实现

Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:动态代理(...

2015-09-06 14:11:58 330

tomcat安装程序

tomcat是apache下的十分实用的服务器,为每个刚开始学习网络的新手必备软件

2013-09-13

空空如也

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

TA关注的人

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