通信连接
gao634209276
这个作者很懒,什么都没留下…
展开
-
Thirft框架介绍
1、前言Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltal转载 2016-05-26 11:56:53 · 369 阅读 · 0 评论 -
Java NIO使用及原理分析(三)
在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等。在本文中我们来看一下缓冲区一些更细节的内容。缓冲区的分配在前面的几个例子中,我们已经看过了,在创建一个缓冲区对象时,会调用静态方法allocate()来指定缓冲区的容量,其实调用 allocate()相当于创建了一个指定大小的数组,并把它包装为缓冲转载 2016-07-26 20:04:40 · 198 阅读 · 0 评论 -
Java NIO使用及原理分析 (四)
在上一篇文章中介绍了关于缓冲区的一些细节内容,现在终于可以进入NIO中最有意思的部分非阻塞I/O。通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为每个客户端请求建立一个线程,由该线程单独负责处理一个客户请求。这种模式带来的一个问题就转载 2016-07-26 20:05:24 · 200 阅读 · 0 评论 -
Kafka入门经典教程
一、基本概念介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。这个独特的设计是什么样的呢?首先让我们看几个基本的消息系统术语:Kafka将消息以topic为单位进行归纳。将向Kafka topic发布消息的程序成为producers.将预订topics并消费消息的程序成为consumer.Kafk转载 2016-07-21 20:08:32 · 339 阅读 · 0 评论 -
Akka框架基本要点介绍
Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive)应用程序的平台。本文基本上是基于Akka的官方文档(版本是2.3.12),通过自己的理解,来阐述Akka提供的一些组件或概念,另外总结了Akka的一些使用场景。Actor维基百科这样定义Actor模型:在计算科学领域,Actor模型是一个并行计转载 2016-08-17 09:51:56 · 342 阅读 · 0 评论 -
Akka Cluster原理与应用
Akka集群原理Akka集群支持去中心化的基于P2P的集群服务,没有单点故障(SPOF)问题,它主要是通过Gossip协议来实现。对于集群成员的状态,Akka提供了一种故障检测机制,能够自动发现出现故障而离开集群的成员节点,通过事件驱动的方式,将状态传播到整个集群的其它成员节点。状态转移与故障检测Akka内部为集群成员定义了一组有限状态(6种状态),并给出了一个状态转移矩阵,代码如转载 2016-08-17 09:55:47 · 491 阅读 · 0 评论 -
Akka入门编程实践
Akka是使用Scala语言开发一个编程库,基于事件驱动的架构实现异步处理,它能够简化编写分布式应用程序。Akka中最核心的概念是Actor模型,它为编写分布式/并行计算应用程序提供了高层次抽象,在实际编程实践中,开发人员可以从对复杂网络通信细节的处理、多线程应用场景下对锁的管理中解脱出来。Akka能够给应用程序带来的几个重要的特性是:容错性可伸缩性异步性事件驱动架构(EDA)远程透明转载 2016-08-17 10:02:43 · 687 阅读 · 0 评论 -
apache kafka技术分享系列(目录索引)
目录索引:Kafka使用场景1.为何使用消息系统2.我们为何需要搭建Apache Kafka分布式系统3.消息队列中点对点与发布订阅区别kafka开发与管理:1)apache kafka消息服务2)kafak安装与使用3)apache kafka中server.properties配置文件参数说明4)Apa转载 2016-08-17 12:08:24 · 383 阅读 · 0 评论 -
Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式
Spark-Streaming获取kafka数据的两种方式-Receiver与Direct的方式,可以从代码中简单理解成Receiver方式是通过zookeeper来连接kafka队列,Direct方式是直接连接到kafka的节点上获取数据了。一、基于Receiver的方式这种方式使用Receiver来获取数据。Receiver是使用Kafka的高层次Consumer API来实现转载 2016-08-17 12:10:37 · 365 阅读 · 0 评论 -
这几天折腾spark的kafka的低阶API createDirectStream的一些总结
大家都知道在spark1.3版本后,kafkautil里面提供了两个创建dstream的方法,一个是老版本中有的createStream方法,还有一个是后面新加的createDirectStream方法。关于这两个方法的优缺点,官方已经说的很详细(http://Spark.apache.org/docs/latest/streaming-kafka-integration.html),总之就是cr转载 2016-08-17 12:11:38 · 550 阅读 · 0 评论 -
Java NIO使用及原理分析(二)
在第一篇中,我们介绍了NIO中的两个核心对象:缓冲区和通道,在谈到缓冲区时,我们说缓冲区对象本质上是一个数组,但它其实是一个特殊的数组,缓冲区对象内置了一些机制,能够跟踪和记录缓冲区的状态变化情况,如果我们使用get()方法从缓冲区获取数据或者使用put()方法把数据写入缓冲区,都会引起缓冲区状态的变化。本文为NIO使用及原理分析的第二篇,将会分析NIO中的Buffer对象。在缓冲区中,最重要转载 2016-07-26 20:03:51 · 164 阅读 · 0 评论 -
Java NIO使用及原理分析 (一)
在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,系统一次一个字节地处理数据,一个输入流产生一个字节的数据,一个输出流消费一个字节的数据,面向流的I/O速度非常慢,而在Java 1.4中推出了NIO,这是一个面向块的I/O系统,系统以块的方式处理处理,每一个操作在一步中产生或者消费一个数据库,按块处理要比按字节处理数据快的多。在NIO中有几个核心对象需要掌握:缓冲区(Buffe转载 2016-07-26 20:03:11 · 217 阅读 · 0 评论 -
kafka笔记(精简容懂)
kafka笔记 1/kafka是一个分布式的消息缓存系统2/kafka集群中的服务器都叫做broker3/kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接4/kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载5/每转载 2016-07-24 10:11:08 · 353 阅读 · 0 评论 -
基于hadoop2.7.2 api代码简单模拟rpc通信
本文通俗易懂.rpc是远程或者跨进程调用方法或传输信息的一种通信,基本过程是Client通过RPC.getProtocolProxy()获取代理类ProtocolProxy然后调用Server,在Server端调用的方法运行,并讲Server的运行结果返回给Client;不多说下面开始代码演示,首先在eclipse中建立项目,加入hadoop中基本的jar包,这里为了方便我是使用的ecli原创 2016-05-21 14:10:30 · 392 阅读 · 0 评论 -
序列化和反序列化
序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更加易于调试、转载 2016-05-25 23:36:02 · 225 阅读 · 0 评论 -
使用Thrift RPC编写程序
1. 概述本文以C++语言为例介绍了thrift RPC的使用方法,包括对象序列化和反序列化,数据传输和信息交换等。本文采用了一个示例进行说明,该示例主要完成传输(上报日志或者报表)功能,该示例会贯穿本文,内容涉及thrift定义,代码生成,thrift类说明,client编写方法,server编写方法等。关于Thrift架构分析,可参考:Thrift架构介绍。关于Thrift文件转载 2016-05-26 12:01:16 · 253 阅读 · 0 评论 -
Thrift使用指南
1. 内容概要本文档比较全面的介绍了thrift(关于thrift框架的介绍,参考我这篇文章:Thrift框架介绍)语法,代码生成结构和应用经验。本文主要讲述的对象是thrift文件,并未涉及其client和server的编写方法(关于client和server的编写方法,可参考我这篇文章:使用Thrift RPC编写程序)。本文档大部分内容翻译自文章:“Thrift:The miss转载 2016-05-26 12:02:58 · 265 阅读 · 0 评论 -
浅谈Thrift内部实现原理
Thrift由两部分组成:编译器(在compiler目录下,采用C++编写)和服务器(在lib目录下),其中编译器的作用是将用户定义的thrift文件编译生成对应语言的代码,而服务器是事先已经实现好的、可供用户直接使用的RPC Server(当然,用户也很容易编写自己的server)。同大部分编译器一样,Thrift编译器(采用C++语言编写)也分为词法分析、语法分析等步骤,Thrift使用了开源转载 2016-05-26 12:04:05 · 208 阅读 · 0 评论 -
从浅到深了解Thrift(一)
由浅入深了解Thrift(一)一、 Thrift简单介绍1.1、 Thrift是什么?能做什么?Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式;用户通过Thrift的IDL(接口定义语言)来描述接口函数及数据类型,然后通过Thrift的编译环境生成各种语言类型的接口文件,用户可以根据自己的需要采用不同的语言开发客转载 2016-05-26 12:07:55 · 847 阅读 · 0 评论 -
从浅到深了解Thrift(二)
由浅入深了解Thrift(二)三、 Thrift的工作原理1.普通的本地函数调用过程例如,有如下关于本地函数的调用的java代码,在函数caller中调用函数getStr获取两个字符串的拼接结果:代码3.1 本地函数调用调用方和被调用方都在一个程序内部,只是cpu在执行调用的时候切换去执行被调用的函数,执行完被调用函数之后,再切换回来执行调用之后的代码,其转载 2016-05-26 12:09:13 · 594 阅读 · 0 评论 -
从浅到深了解Thrift(三)
由浅入深了解Thrift(三)五、 Thrift服务器端几种工作模式分析与总结Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下:1. TSimpl转载 2016-05-26 12:10:13 · 325 阅读 · 0 评论 -
【Thrift一】Thrift编译安装
什么是ThriftThe Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and s转载 2016-05-26 12:12:09 · 1493 阅读 · 0 评论 -
thrift的使用介绍
一、About thrift 二、什么是thrift,怎么工作?三、Thrift IDL 四、Thrift Demo 五、Thrift 协议栈 以及各层的使用(java 为例)六、与protocolbuffer的区别一、About thrift thrift是一种可伸缩的跨语言服务的发展软件框架。它结合了功能强大的软件堆栈的代码生转载 2016-05-26 12:14:05 · 333 阅读 · 0 评论 -
Apache Avro使用入门指南
Avro有C, C++, C#, Java, PHP, Python, and Ruby等语言的实现,本文只简单介绍如何在Java中使用Avro进行数据的序列化(data serialization)。本文使用的是Avro 1.7.4,这是写这篇文章时最新版的Avro。读完本文,你将会学到如何使用Avro编译模式、如果用Avro序列化和反序列化数据。一、准备项目需要的jar包 文原创 2016-06-27 21:55:13 · 625 阅读 · 0 评论 -
消息队列中点对点与发布订阅区别
背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1.Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息转载 2016-08-17 21:47:59 · 437 阅读 · 0 评论