源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 实现功能 依据用户配置的不同的Listener(TcpListener.TlsTcpListener.WebsocketListener.TlsWebsocketListener),为pipeline中加入不同的Handler 实现步骤 1.依据Listener不同,生成不同的Handler 2.加入到pipeline中.让其为每个client服务 类图 由上图能够看出针对不同的Lis…
Netty SSL安全配置 [TOC] 摘要 在研发蜂鸟部署平台的过程中,涉及到平台网关和前置agent的通信加密,虽然目前软件在内网中,但是由于蜂鸟平台和agent的特殊性,一旦被控制,部署的软件就会受到很大威胁,蜂鸟平台网关采用Netty开发,下面主要介绍一下netty的ssl配置和安全软件扫出的Diffie-Hellman弱密码问题解决方法 主要名词解释 英文名称或缩写 Netty OpenSSL KeyTool Diffie-Hellman SSL常用认证方式介绍 单向认证 双向认证 C…
Spring IOC源代码具体解释之容器初始化 上篇介绍了Spring IOC的大致体系类图,先来看一段简短的代码,使用IOC比較典型的代码 ClassPathResource res = new ClassPathResource("beans.xml"); DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader = new XmlBea…
Spring IOC源代码具体解释之容器依赖注入 上一篇博客中介绍了IOC容器的初始化.通过源代码分析大致了解了IOC容器初始化的一些知识.先简单回想下上篇的内容 加载bean定义文件的过程.这个过程是通过BeanDefinitionReader来完毕的.当中通过 loadBeanDefinition()来对定义文件进行解析和依据Spring定义的bean规则进行处理 - 其实和Spring定义的bean规则相关的处理是在BeanDefinitionParserDelegate中完毕的,完毕这个…
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 面向群体 想自己实现MQTT Broker的朋友 对现有开源的MQTT Broker或多或少有些不惬意的朋友 简介 HiveMQ是企业级MQTT Broker,提供高性能.高可用.高扩展.高安全性的企业级服务. 它是纯Java实现的. 官网地址:http://www.hivemq.com 基于它如上的描写叙述.所以兴许我们就是基于它的高性能.高可用.高扩展.高安全性这几个特点来分析它的…
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 实现功能 将全部放在plugins文件夹下的全部符合plugin编写规范的plugin jar包载入到整个guice context中 实现步骤 1.找到全部plugin文件夹下的全部jar包 2.分别找到jar包中META-INF/services/com.hivemq.spi.HiveMQPluginModule文件读取第三方plugin配置的HiveMQPluginModule子…
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 基于netty实现Webscoket相对来说就是相当简单,所以本讲中就不搞太复杂的了,给大家看一个类图,和一段给pipeline加入handler,就能够全然了解hivemq怎样处理的了,事实上跟差点儿全部须要使用netty去支持websocket的处理一致. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaW5ldDEyMw==/f…
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 既然是Cluster,node之间肯定是须要交互的,那么肯定是须要序列化和反序列化.HiveMQ是採用kryo来进行序列化的,详细为什么採用kryo兴许我们能够专门写一篇博客来进行详细分析.这里就不做过多的说明了,整体来说有框架处理.那么代码相对来说就会比較简单,假设单就使用来说,用起来就会相当简单. 类图 如上类相对来说比較多,但大家能够通过类名来归类整理.就会发现事实上相当简单.比…
TLS算法组合 在TLS中,5类算法组合在一起,称为一个CipherSuite: 认证算法 加密算法 消息认证码算法 简称MAC 密钥交换算法 密钥衍生算法 比较常见的算法组合是 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 和  TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 都是ECDHE 做密钥交换,使用RSA做认证,SHA256做PRF算法. 一个使用AES128-CBC做加密算法,用HMAC做MAC. 一个使用AES128-GCM做…
Spring ICO具体解释之整体结构 IOC介绍 IOC, spring的核心.贯穿Spring始终.直观的来说.就是由spring来负责控制对象的生命周期和对象间的关系,将对象之间的关系抽象出来.通过spring容器控制对象生成时机,降低对象之间的耦合度. 开启Spring IOC源代码学习 SpringIOC 的主要依赖源代码是 spring-beans 和 spring-context两个包.前面文章中曾今讲到了怎样编译spring源代码,接下来将maven后的project导入ecli…
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 简单介绍 HiveMQ的Persistence提供配置包含File和Memory,以解决不同场景的不同需求,使用者能够自行配置六种信息的PersistenceMode 就代码来讲.又分为LocalPersistence和Cluster/SinglePersistence.LocalPersistence主要是作本地的Persistence:Cluster/SinglePersisten…
netty提供的例子中有secury的实现,不过是一个伪证书.修改了一下其中的SecureChatSslContextFactory类,使用证书的方式实现ssl.修改后代码如下: public final class SecureChatSslContextFactory { private static final String PROTOCOL = "SSL"; //private static final String PROTOCOL = "TLS"; pr…
本文章由vector03原创, 转载请注明出处. 邮箱地址: mmzsmm@163.com, 欢迎来信讨论. 3.4 sys_alloc sys_alloc是dlmalloc中向系统获取内存的主要接口. 因为涉及到mmap, top-most segment, top chunk的交互, 相对要更复杂. 我们相同先介绍主要分配算法, 再具体分析子函数. 3.4.1 核心算法 基本上sys_alloc分为四个步骤, 1. 首先检查请求大小nb是否超出mmap_threshold的阈值. 假设是,…
商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 下面代码是THREE.JS 源代码文件里Math/Quaternion.js文件的凝视. 很多其它更新在 : https://github.com/omni360/th…
本文章由vector03原创, 转载请注明出处. 邮箱地址: mmzsmm@163.com, 欢迎来信讨论.     3. 分配及实现 本章节介绍dlmalloc的分配算法和实现.由于存在多mspace的情况, dlmalloc使用了两套API.一套相应默认的mspace,以dl前缀开头,如dlmalloc, dlrealloc等.假设创建了自己定义的mspace,则使用mspace开头的API,如mspace_malloc, mspace_realloc等.但两套API在基础算法上是一致的.我…
在前几节我们学习过处理粘包和拆包的问题,用到了Netty提供的几个解码器对不同情况的问题进行处理.功能很是强大.我们有没有去想这么强大的功能是如何实现的呢?背后又用到了什么技术?这一节我们就来处理这个问题.了解一下编码解码到底是如何处理的. 通常说的编码(Encoder)也就是发生在发送消息的时候需要将消息编译成字节对象,在Netty中即编译成ByteBuf对象.在java中我们将这种编译称之为序列化(Serializable),即将对象序列化为字节数组,然后用于传输或是持久化啊之类的.那么自然…
1.简单介绍 MediaScannerJNI的在MediaScanner中的地位可參考 Android MediaScanner 总纲 MediaScanner JNI文件名称: android_media_MediaScanner.cpp 位置: frameworks\base\media\jni\android_media_MediaScanner.cpp android_media_MediaScanner是JAVA层和server层沟通的一个桥梁 android_media_MediaS…
参阅官方文档 http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/topic/com.ibm.mq.csqzau.doc/ts21220_.htm HTTP POST puts a message to a queue, or a publication to a topic. The HTTPPOST Java sample is an example an HTTP POST request of a message to a queue.…
/* * 以int类为例 * 其它的类必须能够比较 * */ //二叉搜索树的节点点 class BSTNode{ int item; BSTNode lc; BSTNode rc; BSTNode p; public BSTNode(int item){ this.item = item; } } public class BST{ //BST的根 transient BSTNode root; //树的大小 transient int size = 0; public BST(){ root…
Thrift採用了TServer来作为server的抽象,提供了多种类型的server实现.用TServerTransport作为server的Acceptor抽象,来监听端口.创建clientSocket连接 先来看看TServerTransport.主要有两类 1. TNonblockingServerTransport和TNonblockingServerSocket作为非堵塞IO的Acceptor,封装了ServerSocketChannel 2. TServerSocket作为堵塞同步…
keytool -genkeypair -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/keystore  //创建私钥和证书文件提示输入密码为:123456 //-genkeypair生成密钥对 -alias tomca密钥别名 -keyalg RSA 密钥算法为RSA算法 -keystore密钥文件存储位置 [root@web1 ~]# keytool -genkeypair -alias tomcat -keyalg RSA -k…
参考链接:http://blog.csdn.net/lingshi210/article/details/52439050 mqtt 的ssl配置可以参阅 http://houjixin.blog.163.com/blog/static/35628410201432205042955/ 然后注意开启防火墙端口. mqtt的命令和Java端的ssl 必须同时要带上ca.crt.clilent.crt.client.key三个文件,即CA证书.客户证书.客户私钥. 由于java 端不支持client…
购买证书 在七牛ssl 首页点击购买 购买限免证书 补全订单信息 免费证书,随意填写,问题不大 购买成功,查看订单详情,获取 TXT 值信息 添加 DNS TXT 验证 根据上一步,查看证书订单详情,获取 TXT 值信息 添加 DNS TXT 验证,注意记录值是_dnsauth.pub.下图是通过代码添加,也可以直接在控制台添加.具体图示和代码如下: #!/usr/bin/env python #coding=utf-8 import os import sys # 入参格式 python ad…
原文链接:https://excaliburhan.com/post/use-qiniu-ssl-and-cdn.html 申请七牛SSL证书 其实,七牛在很早之前就支持CDN使用https,但是他要求证书的有效期是一年及以上,而我的主站用了Let's Encrypt的免费SSL证书,有效期90天,自动续签的形式.所以,为了使CDN的图片也是https的,一直采用了七牛默认的xxx.qnssl.com域名. 在11月,七牛发布了免费SSL证书,亚洲诚信的DV证书.申请起来也很简单,参见七牛SSL…
虽然我们在内部rpc通信中使用的是基于认证和报文头加密的方式实现安全性,但是有些时候仍然需要使用SSL加密,可能是因为对接的三方系统需要,也可能是由于open的考虑.中午特地测了下netty下集成ssl的功能,关于ssl的握手过程以及java安全框架中的相关组件说明,请参考如下链接: http://www.cnblogs.com/zhjh256/p/6262620.html http://www.cnblogs.com/zhjh256/p/6104537.html 网上搜了下,并没有看到完整的n…
工作中会用到netty,有随手整理笔记的习惯,故学习整理下,之前看过了理论知识,接下来就看下源码了,先来编译下 个人 fork git:https://github.com/ending06/netty netty 学习wiki记录:https://github.com/ending06/netty/wiki/Netty%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E2%80%94%E2%80%94MAC-OS 1. 下载源码 https://github.com/n…
文章首发于我的公众号「程序员cxuan」,欢迎大家关注呀- 说到做到! 之前有位读者给我留言说想要了解一下什么是 MQTT 协议,顺便还把我夸了一把,有点不好意思啦. 那么读者的要求必须要满足啊,所以现在 @一下这位小姐姐,来听课啦! 什么是 MQTT 协议 MQTT 协议的全称是 Message Queuing Telemetry Transport,翻译为消息队列传输探测,它是 ISO 标准下的一种基于发布 - 订阅模式的消息协议,它是基于 TCP/IP 协议簇的,它是为了改善网络设备硬件的…
http://wenku.baidu.com/link?url=R-QoZXhc918qoO0BX6eXI9_uPU75whF62vFFUBIR-7c5XAYUVxDRX5Rs6QZR9hrBnUdMdVHNSHdjYtv7i28lCSng1iuWO620ML_wqJZYFge Hadoop源代码分析(一) 关键字: 分布式云计算 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算设施. GoogleCluster:http://research.g…
Hadoop源代码分析(一) 关键字: 分布式云计算 Google的核心竞争技术是它的计算平台.Google的大牛们用了下面5篇文章,介绍了它们的计算设施. GoogleCluster:http://research.google.com/archive/googlecluster.html Chubby:http://labs.google.com/papers/chubby.html GFS:http://labs.google.com/papers/gfs.html BigTable:ht…
Spring源代码解析(一):IOC容器:http://www.iteye.com/topic/86339 Spring源代码解析(二):IoC容器在Web容器中的启动:http://www.iteye.com/topic/86594 Spring源代码解析(三):Spring JDBC:http://www.iteye.com/topic/87034 Spring源代码解析(四):Spring MVC:http://www.iteye.com/topic/87692 Spring源代码解析(五…