随笔分类 - 50@Network&Distributed
摘要:MQTT -MQ Telemetry Transport轻量级的 machine-to-machine 通信协议。publish/subscribe模式。基于TCP/IP。支持QoS。适合于低带宽、不可靠连接、嵌入式设备、CPU内存资源紧张。是一种比较不错的Android消息推送方案。FacebookMessenger采用了MQTT。MQTT有可能成为物联网的重要协议。消息体MessageTypeCONNECTTCP连接建立完毕后,Client向Server发出一个Request。如果一段时间内接收不到Server的Response,则关闭socket,重新建立一个session连接。如果一个
阅读全文
摘要:工作队列:Working Queue工作队列这个概念与简单的发送/接收消息的区别就是:接收方接收到消息后,可能需要花费更长的时间来处理消息,这个过程就叫一个Work/Task。几个概念分配:多个接收端接收同一个Queue时,如何分配?消息确认:Server端如何确定接收方的Work已经对消息进行了完整的处理?消息持久化:发送方、服务端Queue如何对未处理的消息进行磁盘持久化?Round-robin分配多个接收端接收同一个Queue时,采用了Round-robin分配算法,即轮叫调度——依次分配给各个接收方。消息确认默认开启了消息确认(接收方接收到消息后,立即向服务器发回确认)。消息接收方处理
阅读全文
摘要:在某种意义上,WebService、REST均是RPC的实现,那么RPC的发展过程如何呢?本文参考了wikipedia,对RPC做一下简要摘记。RPC(RemoteProcedureCall),是进程间通信(IPC,Inter-Process Communication)的一种技术,一般指不同机器上的进程间通信。在采用C等古老语言编程的时候,RPC被称作了对S端的“子程序”的调用,所以称“过程调用”。在OOP出现后,RPC也可以称为远程方法调用(RemoteMethodInvocation),或者远程调用(RemoteInvocation)。RPC过程可以是同步的,也可以是异步的。同步方式:C
阅读全文
摘要:ChannelChannel用来操作数据块,写入buffer或者从IO中读到buffer。SocketChannel创建// 创建,并阻塞等待连接SocketChannel sc = SocketChannel.open(new InetSocketAddress("abc.com",80));// 创建,使用connect()连接SocketChannel sc = SocketChannel.open();sc.connect(new InetSocketAddress("abc.com",80)); // blocking// 创建,非阻塞Sock
阅读全文