随笔分类 -  Java

摘要:ActiveMQ简介 概要 开源 JMS compliant 消息中间件message oriented middleware(MOM) 松耦合,相对于RPC的紧耦合 发送消息fire and forget EDA(event driven architecture) SOA(serive orie 阅读全文
posted @ 2017-01-05 20:13 SupremeHover 阅读(359) 评论(0) 推荐(0)
摘要:程序背景 程序是Java编写,基于Netty框架写的客户端及服务端。 现象 客户端大数据量持续发UDP数据,作为UDP服务器出现了部分数据频繁丢失触发程序自身重传逻辑。 通过GC日志对比发现丢包的时间点偶有处于Full GC,说明Java程序接收间歇性stop world的不是根因。 观察Udp的d 阅读全文
posted @ 2017-01-05 10:53 SupremeHover 阅读(4719) 评论(0) 推荐(0)
摘要:需求 前端请求的header里带有Prefer_Lang参数,向后端传递国际化信息,后端需要在处理业务之前(建立拦截机制),将Prefer_Lang保存于线程上下文。 思路分析 初次接收该需求时,为了不改变既有代码而捕获request中的Prefer_Lang参数,脑海中第一反应是拦截器的概念。 方 阅读全文
posted @ 2017-01-04 13:14 SupremeHover 阅读(1881) 评论(0) 推荐(0)
摘要:现象 Mqtt Consumer应该收到的消息少于预期,登录ActiveMQ的管理页面里的 Topics ,查看 Messages Enqueued 发现同样少于理应接收的数量。 定位问题 1. 怀疑是TCP丢包,通过 命令观察发送消息前后Tcp信息的输出 2. 对比两次Tcp信息的输出,发现 pa 阅读全文
posted @ 2017-01-03 16:57 SupremeHover 阅读(4167) 评论(0) 推荐(1)
摘要:将非maven项目转换为maven项目,首要第一步就是提取原工程依赖 jar 里的 pom.xml ,拼成 <dependency> 节点 "Classpath resource reader" "How do I get just the jar URL from a jar: URL 阅读全文
posted @ 2016-12-13 19:45 SupremeHover 阅读(3298) 评论(0) 推荐(1)
摘要:什么是线程 进程受CPU时间片的轮转调度,进而予人多任务并发的感觉。 线程在更低层次上扩展多任务概念,一个进程通常包含多个线程。 进程各自数据独立,而线程共享数据。 数据独立使进程相互通信变得繁难,共享数据又使线程并发暗藏风险。 创建线程的两种方式: 创建一个任务,受单独线程调度。 创建一个Thre 阅读全文
posted @ 2016-12-02 13:15 SupremeHover 阅读(293) 评论(0) 推荐(0)
摘要:Java官方的Logger.getGlobal().info无效 无效代码 解决方案(三选一): JAVA线程加载图片挂在 java.awt.MediaTracker.waitForID 问题发生时打印的日志一般如下所示 该问题属于JDK Bug,加载图片有较小几率会挂死当前线程。而挂死了UI线程等 阅读全文
posted @ 2016-11-18 00:39 SupremeHover 阅读(1572) 评论(0) 推荐(0)
摘要:两种类型的Out of Memory 1. java\.lang\.OutOfMemoryError: Java heap space error 当JVM尝试在堆中分配对象,堆中空间不足时抛出。一般通过设定JAVA启动参数 Xmx 最小可用内存解决。 2. java\.lang\.OutOfMem 阅读全文
posted @ 2016-11-16 21:51 SupremeHover 阅读(13076) 评论(0) 推荐(0)
摘要:解决步骤 1. 删除 /tmp/hsperfdata_{USER} 文件夹,如果是root用户登录,即为/tmp/hsperfdata_root 2. 通过 chown 、 chmod 命令保证执行jstat用户必定拥有对/tmp/hsperfdata_{USER}的rwx权限(/tmp当前目录的拥 阅读全文
posted @ 2016-08-29 23:40 SupremeHover 阅读(2514) 评论(0) 推荐(0)