摘要:上篇文章 "ShutdownHook Java 优雅停机解决方案" 提到应用停机时需要释放资源,关闭连接。对于一些定时任务或者网络请求服务将会使用线程池,当应用停机时需要正确安全的关闭线程池,如果处理不当,可能造成数据丢失,业务请求结果不正确等问题。 关闭线程池我们可以选择什么都不做,JVM 关闭时 阅读全文
posted @ 2019-10-13 07:43 good_andyxu 阅读 (127) 评论 (1) 编辑
摘要:想象一下,如果你现在刚好在 word 上写需求文档,电脑突然重启。等待开机完成,你可能会发现写了一个小时文档没有保存,就这么没了。。。 一个正在运行 Java 应用如果突然将其停止,影响不止数据丢失,还会造成其他影响。比如: 请求丢失:内存队列中等待执行请求丢失 数据丢失:处于内存缓存中数据未持久化 阅读全文
posted @ 2019-10-12 07:48 good_andyxu 阅读 (294) 评论 (0) 编辑
摘要:聊起中断,大家可能最熟悉的例子就是线程休眠。下面就是一个线程休眠的 demo,在这个例子中,当我们调用 方法,该方法将会抛出一个需要捕获的中断异常,这里捕获该异常并直接返回。 java for (int i = 0; i An interrupt is an indication to a thre 阅读全文
posted @ 2019-10-09 20:45 good_andyxu 阅读 (168) 评论 (0) 编辑
摘要:线上某服务 A 调用服务 B 接口完成一次交易,一次晚上的生产变更之后,系统监控发现服务 B 接口频繁超时,后续甚至返回线程池耗尽错误 。因为服务 B 依赖外部接口,刚开始误以为外部接口延时导致,所以临时增加服务 B dubbo 线程池线程数量。配置变更之后,重启服务,服务恢复正常。一段时间之后,服 阅读全文
posted @ 2019-10-08 20:32 good_andyxu 阅读 (1656) 评论 (6) 编辑
摘要:摘要: 原创出处 http://studyidea.cn 「公众号:程序通事 」欢迎关注和转载,保留摘要,谢谢! 使用 Java 阻塞 I/O 模型读取数据,将会导致线程阻塞,线程将会进入休眠,从而让出 CPU 的执行权,直到数据读取完成。这个期间如果使用 jstack 查看线程状态,却可以发现J 阅读全文
posted @ 2019-09-30 18:04 good_andyxu 阅读 (205) 评论 (0) 编辑
摘要:上篇文章 "如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他" 大致了解了注册中心作用以及 Dubbo Registry 模块源码,这篇文章将深入 Dubbo ZooKeeper 模块,去了解如何实现服务动态的发现。 ps: 以下将 ZooKeeper 缩写为 zk。 一、dubbo 阅读全文
posted @ 2019-09-28 17:41 good_andyxu 阅读 (236) 评论 (0) 编辑
摘要:最近学习使用 rocketmq,需要搭建 rocketmq 服务端,本文主要记录 rocketmq 搭建过程以及这个过程踩到的一些坑。 准备工作 在搭建之前,我们需要做一些准备工作,这里我们需要使用 docker 搭建服务,所以需要提前安装 docker。此外,由于 rocketmq 需要部署 br 阅读全文
posted @ 2019-09-04 09:48 good_andyxu 阅读 (289) 评论 (1) 编辑
摘要:SPI(Service Provider Interfaces),中文直译服务提供者接口,一种服务发现机制。可能很多人都不太熟悉这个机制,但是平常或多或少都用到了这个机制,比如我们使用 JDBC 连接操作数据库的时候。 SPI 主要适用于功能扩展的场景,如一些框架提供某一部分功能可以由第三方开发人员 阅读全文
posted @ 2019-08-29 10:00 good_andyxu 阅读 (218) 评论 (2) 编辑
摘要:Dubbo 通过注册中心在分布式环境中实现服务的注册与发现,而注册中心通常采用 ZooKeeper,研究注册中心相关源码绕不开 ZooKeeper,所以学习了 ZooKeeper 的基本概念以及相关 API 操作。 ZooKeeper 相关概念 session 客户端与服务端采用 TCP 长连接,服 阅读全文
posted @ 2019-08-23 19:54 good_andyxu 阅读 (215) 评论 (0) 编辑
摘要:注册中心作用 开篇首先想思考一个问题,没有注册中心 Dubbo 还能玩下去吗? 当然可以,只要知道服务提供者地址相关信息,消费者配置之后就可以调用。如果只有几个服务,这么玩当然没问题。但是生产服务动辄成千上百,如果每个服务都需要手写配置信息,想象一下是多么麻烦。 好吧,如果上面的问题都不是事的话,试 阅读全文
posted @ 2019-08-21 12:15 good_andyxu 阅读 (506) 评论 (0) 编辑