后端 RocketMQ1快速入门 学习RocketMQ的第一天,应该从官网的QuickStart案例开始,这一节就来介绍一下如何部署单机RocketMQ以及进行消息的收发。 0. 版本说明 使用RocketMQ需要有如下的硬件要求: 64位操作系统 JDK 1.8+ Maven 3.2.x Git 4GB+ 硬盘空间(broker 存储需要) 了解版本说明之后,我们就可以开始进行实战了。 Ps: RocketMQ版本为Rel…
后端 Java-枚举 读完这篇文章你将会收获到 枚举类的真正实现原理 为啥可以使用枚举类实现单例模式 Class 类中对枚举实例的缓存 概述 枚举是我们日常开发经常用到的一个类型 , 比如说我们有个用户系统 , 那么我们怎么判断这个是一个我们的忠实用户或者说是一个忠实粉丝呢 ? 我们就定义如下的行为枚举 {代码…} 如果说这个用户都具备上面…
后端 面试官换人他连-TCP-这几个参数都不懂 每日一句英语学习,每天进步一点点: 前言 TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操心系统提供的内核参数的理解与应用。 TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。 如何正确有效的使用这些参数,来提高 TCP 性能是一个不那么简单事情。我们需要针对 TCP 每个阶段的问题来对症…
后端 如何理解Systemoutprintln 所谓的人生赢家,不在于你在哪里做着什么,而在于你是否拥有强大的内心来支持你追求想要的生活。 如果你能自己读懂System.out.println(),就真正了解了Java面向对象编程的含义 面向对象编程即创建了对象,所有的事情让对象帮亲力亲为(即对象调用方法) {代码…} 首先分析System源码 System就是Java自定义的一个类out源…
后端 如何正确实现heartbeat协议 一些思考 为什么要实现heartbeat 为了确认链接, 通信channel是健康的, 为了尽快感知如下情况: TCP FIN包可能丢掉/没有发送 网络设备可能出现故障 应用出现故障 为什么要在应用层实现heartbeat 即, 为什么不使用tcp keepalive tcp keepalive 无法检测应用的状态 TCP的KeepAlive, 在a 开启对 b 的 keepalive 时, 可以验证:…
后端 我的工具箱 命令行工具 — cmder 支持右键新建一个新的命令行窗口、这不香 ? 这么好看的界面、不香?各种提示、不香? Kafka Tool 可以看到集群中的所有 broker , topic , consumer , 可以看到堆积情况、消息的 key、value 。支持多个平台(这个很重要) Jetbrains 全家桶之 — IntelliJ IDEA {代码…} 从上面的 plugin 中可以看到我…
后端 ZooKeeper-数据模型节点的特性与应用 zk的基础知识基本分为三大模块 数据模型 ACL 权限控制 Watch 监控 数据模型 默认配置文件 {代码…} tickTime client-server 通信心跳时间 zk 服务器之间或client 与服务器之间维持心跳的时间间隔、也就是每个tickTime 就会发送一个心跳、tickTime 以毫秒为单位 initLimit leader-follower 初始通信时限 集群中 follower…
后端 Zookeeper-Watcher-流程分析结合源码 ZK提供了分布式数据的发布/订阅功能,一个典型的发布/订阅模型系统定义了一种一对多的订阅关系,能够让多个订阅者同时监听某个主题对象,当这个主题对象自身状态发生变化时,会通知所有的订阅者。在ZK中引入了 Watcher 机制来实现这种分布式的通知功能。