EMQX 是一款「无限连接,任意集成,随处运行」的大规模分布式物联网接入平台,同时作为一个高性能、可扩展的 MQTT 消息服务器,它可以为物联网(IoT)应用提供可靠的实时消息传输和设备连接解决方案。 1 EMQX 的安装 以 CentOS7 为例,介绍 EMQX 的安装方法。 # 安装所需要的依赖包 yum install -y yum-utils device-mapper-persisten… 阅读全文

1 安装 使用的端口: 8086: C/S 架构下的 HTTP 通信 8088: 备份、恢复数据的 RPC 服务使用 yum install influxdb service influxdb start # 也可以 yum install influxdb systemctl start influxdb 2 入门指南 创建数据库 # 执行influx命令行 influx -precision … 阅读全文

有时候使用 SSH 工具连接服务器执行命令,SHH 连接由于各种原因会中途断开,这时可以使用 screen 将命令挂在后台执行,本文将对 screen 的安装及使用进行介绍。 通常情况下,screen创建的虚拟终端,有两个工作模式: Attached:表示当前screen正在作为主终端使用,为活跃状态。 Detached:表示当前screen正在后台使用,为离线状态。 1 screen 的安装 1… 阅读全文

1 常用线程安全类型* 1.1 JDK 基础数据类型与集合类 1.2 ArrayList 基本特点:基于数组,便于使用 index 随机访问,超过数组容量时需要扩容,扩容成本较高。 用途:大部分情况下操作一组数据都可以用 ArrayList。 原理:使用数组模拟列表,默认大小10,扩容x1.5,newCapacity = oldCapacity + (oldCapacity >> 1)。 安全问题… 阅读全文

1 Java并发包(JUC) 1.1 JDK 核心库的包 其中,Java 的并发工具类定义在 java.util.concurrency 包中。 1.2 java.util.concurrency JUC 包中主要包括一下几种类: **锁机制类Locks : **Lock, Condition, ReentrantLock, ReadWriteLock,LockSupport **原子操作类Ato… 阅读全文

1 多线程基础 1.1 为什么会有多线程 本质原因是摩尔定律失效,CPU 的单核性能没有办法快速提高,从而导致多核+分布式的时代的来临。 多 CPU 核心意味着操作系统有了更多的并行计算资源可以使用。操作系统以线程作为基本的调度单元。单线程是最好处理的。线程越多,管理复杂度越高,跟我们程序员都喜欢自己单干是一个道理。《人月神话》里说加人可能干得更慢,可见多核时代的编程更有挑战。 1.2 Java … 阅读全文

1 单线程、任意创建线程与线程池的对比 分别使用单线程、任意创建线程的多线程以及线程池的方式实现一个简单的 HTTP Server,使用 Super Benchmark 对其进行压力测试。 单线程 任意创建线程 使用固定大小的线程池 2 NIO 模型与相关概念 通信模型 阻塞、非阻塞:可以理解为做一件事情能否立即得到返回结果,能立即得到就是非阻塞,不能立即得到就是阻塞。 同步、异步:完成一系列任务… 阅读全文

JVM 核心技术 —— 调优分析 1. GC 日志解读与分析 * 任务: 1)模拟一下OOM (测试使用的 GCLogAnalysis.class 是一个字节码文件,该文件在5秒内持续创建对象,并随机地将一些对象缓存起来,这部分对象无法被 GC 回收) 2)分别使用512m,1024m/1g,2048m/2g,4096m/4g,观察 GC 信息的不同 1.1 Paralle… 阅读全文