EMQ 使用的实践

近一年半在做物联网相关的项目,MQTT 是物联网技术中非常常见且协议。EMQ 是对 MQTT 协议实现的很不错的 Broker。当前的稳定版本是 V3.2.7; 下面我罗列一下使用中的一些实践和想法; 如何正确获得设备端连接断开事件 有三种做法: 订阅EMQ 的系统主题 $SYS/brokers/${node}/clients/{clientId}/disconnected; 使用 web hook »

JDK 的动态代理相关分析

最近做个动态代理测试,鬼畜地写了如下代码: public interface SayHello { String say(String message); } public class SayHelloInvocationHandler implements InvocationHandler { private SayHello target; public SayHelloInvocationHandler(SayHello target) { this.target = target; } @Override public »

Java8 lambda 要注意的四个地方

Java8 往函数式编程迈入了一大步;引入了函数式接口的概念;并使用 lambda 表达式在语法上大大简化函数式接口写法; 帖上一段简单的示例代码: Runnbale run = () -> System.out.println("Hello Jack!"); new Thread(run).start(); lambda可以粗暴看作为匿名类的实现,提供了轻量级的语法上的实现,但远不止如此,比喻还有改变 this 的指向; »

Java 中的强引用 、软引用、弱引用、虚引用

这里整理一下之前一直理解得不是很清楚的 Java 的引用; Java 开发不像 C 语言有指针,不能通过编码回收内存,完全靠垃圾回收器不定时来进行垃圾回收; 虽然垃圾回收器的工作是靠 JVM 来自动控制,但是做为 Java 程序员仍然可以通过编程在一定程序上与垃圾回收器进行交互,以帮助程序员稍微精细的控制内存回收,帮助垃圾回收器更好的管理内存的回收工作; Java 中有存在着四种引用类型:强引用 、软引用、弱引用、虚引用;四种类型的引用强度由强至弱,依次递减。 强引用 »

Auto proxy & Auto scan HTTP RPC library

周末在家,闲来无事,就想写一个服务器端自动扫描并注册,客户端自动扫描并代理的 RPC 组件,基于 Spring; 整理了一下思路,这个组件分三个部分:core、server和client;如下: 分三个步骤完成: - core:服务定义,数据序列化方式; - server:服务类自动扫描并注册、服务暴露; - client:客户端接口自动扫描并代理; 第一步 »