自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jackhu专栏

永远在路上

  • 博客(36)
  • 资源 (4)
  • 收藏
  • 关注

原创 谈谈面试中的自我介绍

工作这些年,面试过别人,也被别人面试过,就想简单的谈谈面试中的自我。面试中我最常遇到的就是,我最近在某某公司,然后做XX 项目,用某某技术, 然后就完了。 每当听到这种自我介绍,作为面试官我都有一种本能的愤怒:连面试自我介绍都做不好的人,就不要进入下一环节了。首先,面试是双发的第一次见面,作为面试官的我,我会先说“你好”,我是XXX,我负责XX,为了对你有一个快速的了解,请您自我介绍下。我如此的尊重候选人,但是候选人连一个基本的”你好“这样的礼貌回应都没有。再次, 作为程序员也好、软件工程师也.

2021-09-19 22:52:55 406

原创 Netty的inBound事件的处理过程分析

为便于后续阐述,写贴一段分析过程中要用到的源码 public static void main( String[] args ) { EventLoopGroup boss = new NioEventLoopGroup(1); EventLoopGroup worker = new NioEventLoopGroup(); ...

2020-01-09 14:25:48 829 1

原创 Netty服务端accept()过程源码解析

本文将解答如何accept(), 即新的客户端连接上来之后如何创建对应的socket一 基本的编程模型socket serverSocket = CreateServerSocket(); //创建服务端Socketbind(serverSocket) // 绑定listen(serverSocket) //监听select(serverSocket) //1. IO 多路复用...

2020-01-08 15:13:39 495

原创 Netty服务端socket创建和线程池启动过程

一.类图和时序图为便于理解,先上一幅UML 类图下面我们分析服务端线程启动过程,先列出时序图,然后看着时序图来分析相关代码(大部分其它分析源码的文章都是上来就贴源码,根本就没有一个整体的概念,相信没有多少人愿意去看这样的分析文章二 NioEventLoop的创建过程写贴一段简单的服务端源码 public static void main( String[...

2020-01-07 11:21:49 746

原创 Netty支持的Reactor 线程模型

理论上Netty 也支持单线程、多线程模型、主从多线程模型 模型,但从实际测试上来看,并不实际支持主从多线程模型 EventLoopGroup boss = new NioEventLoopGroup(4); //boss线程池, 4个线程 EventLoopGroup worker = new NioEventLoopGroup();//工作线程池,数量为CPU数...

2020-01-06 22:01:11 128

原创 Reactor的三种线程模型

理解Reactor 线程模型是理解Netty 的关键步骤之一,下面我将以一个通俗的例子来讲解Reactor 3种线程模型我们以实际生活中吃饭的例子来做解释通常去餐馆吃饭、例如海底捞是需要排队的,排队完成,有服务员来接待你,然后带领你去落座吃饭这里面的服务员有多少个,是发现你来后直接带你找个空闲座位然后给你端茶倒水完了,再去迎接其它顾客;还是接待你的服务员在门口吆喝一声:里面的服务员...

2020-01-06 22:00:06 6669 2

原创 用Netty实现单机百万TCP长连接

一 服务实现模型单机百万连接有多种方式, 这里采用一个netty server 占用8888 端口,用客户端机器模拟百万客户端连接 模拟实现的方式以下是示意图 如果一台客户端模拟3万个连接,那么100万连接,大致需要33台主机,找到33台主机的确是个困难,但是这种模型定下来,能够先实现若干台主机模拟连接也行,毕竟模型定了,剩下的只是客户主机数量的问题。二...

2019-08-23 15:03:17 15684 9

原创 Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程

系列博客地址Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建Centos 7 环境hive3.1.1 搭建Centos 7 环境Spark 2.4.3 完全分布式集群的搭建过程Centos 7 环境HBase 2.1.5 完全分布式集群的搭建过程Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程一 搭建Zookeepe...

2019-08-22 12:37:37 797

原创 Centos 7 环境 HBase 2.1.5 完全分布式集群的搭建过程

系列博客地址Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建Centos 7 环境hive3.1.1 搭建Centos 7 环境Spark 2.4.3 完全分布式集群的搭建过程Centos 7 环境HBase 2.1.5 完全分布式集群的搭建过程Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程一 环境...

2019-08-21 18:11:05 1304

原创 Centos 7 环境 Spark 2.4.3 完全分布式集群的搭建过程

系列文章地址Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建Centos 7 环境hive3.1.1 搭建Centos 7 环境Spark 2.4.3 完全分布式集群的搭建过程Centos 7 环境HBase 2.1.5 完全分布式集群的搭建过程Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程注意:Spark 集群的...

2019-08-21 16:09:32 1726

原创 Centos 7 环境 hive3.1.1 搭建

系列文章地址Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建Centos 7 环境hive3.1.1 搭建Centos 7 环境Spark 2.4.3 完全分布式集群的搭建过程Centos 7 环境HBase 2.1.5 完全分布式集群的搭建过程Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程在上面 博客中Cent...

2019-08-21 14:10:21 662

原创 Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建

系列文章地址Centos 7 环境 hadoop 3.2.0 完全分布式集群搭建Centos 7 环境hive3.1.1 搭建Centos 7 环境Spark 2.4.3 完全分布式集群的搭建过程Centos 7 环境HBase 2.1.5 完全分布式集群的搭建过程Centos 7 环境 Storm 2.0.0 完全分布式集群的搭建过程本博目录一. 3台...

2019-08-21 09:28:59 1407 1

原创 ZkClient subscribeDataChanges 注意事项

由于zkClient创建连接的时候指定了默认的序列化类-new SerializableSerializer(),所以存储在节点上的值也是序列化后的字节数组,当使用zkCli.sh在控制台set /xxx/xx的值时,存储的是普通的字符串字节数组。当set值时虽然触发了值改变事件,但zkClient无法反序列化这个值。要使zkCli.sh的值也能被zkClient读取必须通过实现ZkSerial...

2019-04-18 15:18:43 2175

原创 链接和加载:符号解析和地址定位的过程

一 如何确定符号所对应的地址?  先看如下一段代码simpleSection.c,对于这段代码的问题是,如果定位到global_init_var2,  global_init_var3 的地址呢?int printf(const char* fromat, ...);int global_init_var = 84;int global_init_var2 = 85;int gl...

2018-12-22 14:21:20 958

原创 JVM 之从不同视角看JVM运行时内存分布

 不论何种语言,内存总是亘古不变的话题,想掌握JAVA ,掌握JVM, JVM 内存更是绕不开的知识点,这篇博文是自己学习JVM内存分布的一些归纳总结,目的是提起JVM 能够对主要的环节了然于胸。一 从数据存放角度看二  从线程角度看 从不同的角度来看,最终区域划分都是这些区域花费,围绕这些区域划分,疑问随之而来 学习JVM 可能就是围绕着这些问题死磕,磕明白了,J...

2018-12-20 10:00:22 305

原创 函数调用栈实例分析,有图有真相

函数调用栈是理解函数调用的关键一环,也是理解递归思想的重要基础,本博文综合源码,汇编语言,寄存器,内存进行详细阐述目录一 源码二 汇编语言预计调用栈分析2.1 编译器进入调试状态,并查看源码和对应的汇编代码2.2 分析main 函数的函数栈2.3. add 函数的调用和返回三 总结一 源码int add(int a, int b){ return a + b...

2018-12-19 13:37:25 592

原创 windows 下 Thingsboard 源码编译

目录一 源码的下载二 源码的编译让 node 运行起来编译 API 组件安装cassandra 数据库 用 idea 打开项目编译后运行验证thingsboard 是一款优秀的物联网平台软件,具体介绍请登录 https://thingsboard.io/docs/getting-started-guides/what-is-thingsboard/ 查看, 赞美的话...

2018-08-10 16:37:48 5913 4

原创 centos 下 libeven 的安装编译以及简单demo

 1. 安装      执行 yum -y install libevent-devel      当然也可用源码编译安装,从libevent  http://libevent.org/  官网下载安装,我这里选择直接安装2.  从一个最简单的demo 开始, 代码取自 https://www.ibm.com/developerworks/aix/library/au-libev/...

2018-07-24 16:49:03 375

原创 避开微信官方支付的另类方法

在很多的物联网项目中,例如咖啡售卖机、娃娃机等等,设备拥有者的核心需求有两点能够用微信支付或者支付宝支付 支付后当前能够到到设备拥有者的个人银行账户对于第一点,其实并没有太大的难度,拿微信支付来说,首先要开通微信公众号(服务号),开通之后再申请开通微信支付即可。但是要达到第二点则比较困难,因为申请开通微信支付的主体是公司,绑定的银行账号也是对公证号,微信支付的钱最终是到了对公账号上的,所以...

2018-07-23 15:57:31 1521

原创 摩拜单车开锁实现原理剖析

1.开锁技术可能性分析1  mqtt 实现 摩拜服务器作为broker, 手机APP 和  智能锁作为 subcriber/publisher, 过程如下1.  智能锁和摩拜云端保持长连接,订阅开锁消息(根据ID)2. APP 用mqtt 登录上 摩拜borker后 携带智能锁号订阅 请求开锁消息(根据ID)3. borker 收到 开锁消息后,经过业务处理,向

2017-04-21 15:39:26 29458 6

原创 用mqtt.fx 和 wireshark 深入学习MQTT 协议

有时候协议制定者想把协议写的很清楚很明白,但看文档可能看的没有头绪,更好的办法就是结合协议文档和协议内容来学习 ,先看协议文档 https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/02-ControlPacketFormat.html配置maqq.fx 和 wireshark 可

2017-04-18 21:26:48 1596

原创 mosquitto 集群配置

mosquitto 集群配置

2017-04-15 23:06:26 2703 1

原创 Mosquitto 单向SSL配置

Mosquitto 单向SSL配置

2017-04-14 06:56:06 1596

原创 mosquitto 单向SSL 协议内容抓包简单分析

这篇文章主要介绍mosquitto SSL加密前后包内容的区别,首先,不加密,观察包内容1. 未加密前通过client 向borker 发送 的topic 为test, 内容为tomcat2. 加密后第6帧 是 borker 向 client 发送证书第15帧是client 向borker 发送内容,可以看到消息已经被加密

2017-04-13 18:48:16 1656 1

原创 微信开发之自定义菜单

微信开发早在一年前就进行了,但是由于当时未做记录,现在有些淡忘,现在重新回忆起来1. 开启微信自定义菜单插件2. 获取access_token获取access_token 需要  https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&sec

2017-04-12 16:06:49 555

原创 eclipse 配置远程调试

1. 环境客户端:windows eclipse,server 端: 阿里云centos6.5 , tomcat 2. server 端配置编辑 catalina.sh, 增加 CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=

2017-04-12 11:50:22 664

原创 Centos 6.5下 mosquitto 阿里云单机压力测试

上篇文章 MQTT之centos6.5 下编译Mosquitto 我们让 mosquitto 正常运行,那么单机环境下mosquitto 能承载多少长连接呢?为此需要靠压力测试说话,用什么进行压力测试呢?经过寻找,找到了一个测试工具 https://github.com/emqtt/emqtt_benchmark, 此工具是用erlang 编写的,但不影响测试测试环境:brok

2017-04-11 20:36:01 2223

原创 从源码角度分析java 的 sleep()和wait()究竟有什么区别?

要知道根本区别,最好的还是看源代码1. sleep() 的根本实现jvm sleep()---->jni sleep()-------->  最终会进入系统的sys_pasue()调用,而sys_pause() 则会调用 schedule(), schedule() 则会主动放弃cpu 时间片,进入等待队列asmlinkage int sys_pause(void){

2017-04-10 21:23:10 3147 1

原创 MQTT 之 mosquitto 对websocket 的支持

上一篇文章centos6.5 下编译mosquitto 写明了如何编译mosquitto, 如何让mosquitto 支持websocket。有了websocket 我们就可以让页面成为mqtt 的客户端,比如开发微信小程序,在小程序上和mqtt 另外的客户端进行交互1. eclipse 新建 web项目项目本身不需要java 代码,只需要 引入mqttws31.js, 并在ind

2017-04-09 15:59:16 8882

原创 MQTT之centos6.5 下编译Mosquitto

Mosquitto 使用C++ 语言编写的MQTT broker 端,详情可参考官网 http://mosquitto.org/ ,本文主要讲述centos 6.5 环境下如何编译 mosquitto1. 下载源码wget   http://mosquitto.org/files/source/mosquitto-1.4.11.tar.gz  2.安装依赖库yum inst

2017-04-09 09:11:08 1468

原创 我为什么要写技术博客

博客很早就出现了,但是自己一直没有动力去写,现在终于去想写了。略微想想,写作其实是有四个原因让他人知道我知道        我们中国人常讲酒香不怕巷子深,我们也对那种功力深厚,但不显山露水的世外高人格外的佩服。于是乎我们仿佛相信只要你自己能力够强,够牛逼,还怕什么呢?假如在古代,你的确是练武之人,那么你可能真的需要把自己隐起来,俗话讲人怕出名猪怕壮,木秀于林而风

2017-04-07 15:59:49 688

原创 物联网应用之在线水质监测

物联网应用之在线水质检测

2017-04-07 13:38:50 1685

原创 什么是物联网

每隔一段时间,各行各业总会有新的名词产生,比如曾经的智慧地球,物联网这个词最早出现在 1999年, 美国麻省理工学院(MIT)的Kevin Ash-ton教授首次提出物联网的概念,从概念提出到现在已经将近20年,但这个词没有从大众眼中消失,反而变得越来越火热。1.什么是物联网就这个三个字,随便搜索,能搜索出不计其数的文章, 这些文章看的人演化缭乱,看完之后好像啥都看了,但是

2017-04-06 20:39:42 914

原创 利用MemoryAnalyzer分析内存泄露

在上篇文章5分钟直观了解JAVA内存泄露我们对JAVA的内存泄露有了直观的认识,这篇文章将介绍如何用MemoryAnalyzer分析内存泄露在实际项目中我们不可能盯着屏幕看到outofmemoryerror, 而是希望当发生内存泄漏时将虚拟机堆内存打印出来,对堆内存进行分析,从而定位出问题首先我们将代码稍加改变,让程序自动发生内存泄露1. 自动产生内存泄露i

2017-04-06 17:18:37 643

原创 5分钟直观了解JAVA内存泄露

内存泄露

2017-04-05 11:47:16 523

原创 一个高级java开发工程师的基本修养

一张图说明问题

2017-04-03 19:23:51 450

hmacmd5.zip

hmacmd5 加密 C语言实现

2019-05-22

中型创业公司的技术管理之痛

中型创业公司的技术管理之痛,中型创业公司的技术管理之痛,中型创业公司的技术管理之痛

2018-07-05

设计模式(c++语言示例)

c++描述 设计模式 ccccccccccccc

2010-02-01

PE 文件格式分析

简单的打印出 PE dll 中的函数名

2010-01-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除