java
西门吹雪碧
吹呀吹呀,我的骄傲放纵
展开
-
记一次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 · 867 阅读 · 0 评论 -
cpu负载和利用率
某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于 CPU,而正在或等待打电话的人就相当于任务数。 在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计平均负载情况,我们 5 秒钟统计一次人数,并在第 1、5、15 分钟的时候对统计情况取平均值,从而形成第 1、5、15 分钟的平均负载。 有的人拿起电话就打,一直打完原创 2021-09-29 15:23:16 · 193 阅读 · 0 评论 -
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 · 239 阅读 · 0 评论 -
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 · 228 阅读 · 0 评论 -
进程间通信的方式对比:信号、管道、消息队列、共享内存
多进程:首先,先来讲一下fork之后,发生了什么事情。由fork创建的新进程被称为子进程(child process)。该函数被调用一次,但返回两次。两次返回的区别是子进程的返回值是0,而父进程的返回值则是新进程(子进程)的进程 id。将子进程id返回给父进程的理由是:因为一个进程的子进程可以多于一个,没有一个函数使一个进程可以获得其所有子进程的进程id。对子进程来说,之所以f转载 2018-02-02 09:41:47 · 2115 阅读 · 0 评论 -
Java里的CompareAndSet(CAS)
注:(CAS的加锁方式为乐观锁,sychronized为悲观锁)Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的increm转载 2018-02-01 16:59:54 · 834 阅读 · 0 评论 -
Java泛型详解
1.为什么需要泛型泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍、总结了关于泛型的知识。希望能给你带来一些帮助。先看下面的代码: List list = new ArrayList(); list.add("CSDN_SEU_Cavin"); list.add(100); for (int i =转载 2017-07-05 19:15:54 · 173 阅读 · 0 评论 -
Java动态代理与反射详解
先来看看反射。java里的class文件加载分为两种情况,一种就是类型是编译器已知的,这种文件的.class文件在编译的时候,编译器会把.class文件打开检查,但是注意不是加载哦,第二种就是我们可能是从别的地方获取到了一个引用,然后动态的把这个未知类型的引用的对象的.class文件加载进jvm虚拟机里。那么我们称前者为RTTI,即Run- Time Type Identificati转载 2017-07-05 10:49:56 · 500 阅读 · 0 评论 -
静态代理、JDK与CGLIB动态代理
目录一、为什么需要代理模式二、静态代理三、动态代理,使用JDK内置的Proxy实现四、动态代理,使用cglib实现一、为什么需要代理模式假设需实现一个计算的类Math、完成加、减、乘、除功能,如下所示: 1 package com.zhangguo.Spring041.aop01; 2 3 public class Math { 4转载 2017-07-13 16:34:30 · 258 阅读 · 0 评论 -
RESTful 架构详解
1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一转载 2017-06-07 16:35:34 · 344 阅读 · 0 评论 -
Eclipse/MyEclipse 最最常用的快捷键
F 键类F2 显示详细信息F3 跳到声明或定义的地方Ctrl + 键类Ctrl+1 快速修复 ( 最经典的快捷键 , 就不用多说了 )Ctrl+D 删除当前行Ctrl+E 快速显示当前 Editer 的下拉列表 ( 如果当前页面没有显示的用黑体表示 )Ctrl+T 快速显示当前类的继承结构Ctrl+O 快速显示 OutLine原创 2017-03-01 10:45:12 · 395 阅读 · 0 评论