`
spartan1
  • 浏览: 360622 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论
文章列表

amqp简介

消息生产者(producer)将消息发送给交换机(exchange),交换机根据配置的规则(binding),将消息路由到消息队列(queue),消息消费者如果订阅了某个队列的消息,则将消息发送给该消费者,或者由消费者直接从队列中取消息。其中exchange,binding,queue都在消息中间件(message broker)中。   rabbitMQ是一个可编程的环境,即是说,其exchange,binding和queue都是由客户端(消费者或生产者)创建并进行操作的。

erlang(7) -- record

record类似C中的struct,格式为:-record(Name, {Field1 [=DefaultValue1], ..., FieldN [=DefaultValueN]}).如果没有默认值,则为undefined。创建一个record实例:#Name{Field1=Value1,...FieldN=ValueN)

erlang(6) -- macro

erlang中的预处理类似C中的预处理:   包含:-include(File).File是一个表示路径的字符串,其中可以含有$VAR表示的环境变量引用,可以是绝对路径,也可以是相对路径,相对路径的话,将从当前工作目录cwd,当前正在编译的文件所在的路径以及include选项指定的系列路径中依次按顺序寻找。   宏:-define(Const, Replacement). -define(Func(Var1,...,VarN), Replacement).引用宏时使用?Const或?Func(Arg1,...,ArgN)的方式进行引用。宏还可以使用如下方式进行定义:erlc -Ddebu ...

erlang(5)

erlang代码由module组成。每一个Module由一系列attribute和函数定义组成,attribute和function都以.结尾。模块属性(module attribute)由一个tag和一个value组成:-Tag(Value). 函数定义由函数头部(function clause)和一系列函数子句(function clause)组成,函数子句由分号分隔,函数子句由一系列表达式(expression)组成,expression由逗号分隔。 函数头部由函数名(是一个atom),函数参数列表(每个参数是一个模式(pattern))以及可选的when子句组成。   只有在pa ...

erlang(4)

10.6: amazon EC2中用了rabbitMQ

erlang(3)

10.5: erlang/OTP分为几个应用(application),一个application通常包括多个erlang模块(module),但有些应用,比如C接口erl_interface,是由其他语言写的,没有erlang模块。 atom一般是以小写字母开头,如果以大写字母开头,或者包含特殊符号,需要以单引号括起来。erlang中tuple和list的标准定义:tuple是包含固定项数的复合类型,list是包含可变项数的复合类型。erlang中没有boolean类型,boolean类型通过原子true和false表示。

erlang(2)

这是10.4的: erlang过程编程知识:erlang中,函数定义的->前,可以使用when xxx限定该clause的使用范围。这里的xxx称为guard。erlang中的等号“=”,称为匹配操作符(match operator),其作用不单单是对变量进行初次赋值,主要是说明等号两侧的对象是匹配的,同时也可以对左侧的初次定义的变量进行赋值。因为是匹配操作符,而不是赋值操作符,所以可以使用5=M这种表达式(这里的M必须已经赋值了)erlang中的if condition1->action1; condition2->action2 end结构相当于java和C中的switc ...

erlang(1)

国庆期间上网不易,为了学习rabbitmq,重新复习了erlang语言,把这几天的一些学习笔记分批次发上来。   erlang的语句都是以“.”结尾,一个函数可以有好几个子句(clause),每一个clause的参数值可以不一样,但参数个数必须是一样的,因为在erl文件的-export语句中,通过函数名和参数个数来唯一标示一个函数。 erlang中有变量(以大写字母开头),原子(就是一个单纯的名字,没有值)以小写字母开头。多个元素可以通过{}组合在一起,其内部顺序不能改变,成员间以逗号分隔,组成一个tuple. tuple类似C语言中的结构,java和C++中的类。多个元素可以通过[]组合 ...
AMQP协议是互联网开放协议,最底层定义了高效点对点协议,用以在跨网络两个进程间传输消息。另外使用具体标准编码定义了抽象消息格式,任何符合AMQP协议的客户端都可以使用这种标准编码方式收发消息。   AMQP协议分层定义:传输层,消息层,事务层,安全层。   AMQP协议1.0在2011.8发布终稿,全书分为五部分:类型系统、传输层、消息层、事务层以及安全层,后续分别介绍。

博客系统

刚刚用了下网易博客,发现它有几个非常好用的特色: 1. 第一次登录时有一个帮助演示,演示上面的几个按钮分别是干什么的,一步步下来,非常方便 2. 纸张页面风格,感觉非常好 3. 可以添加查看权限,能够分公开、博友以及私人三种权限,类似public,friend private和private三种类型,非常有用 4. 当然自动保存功能虽是大路货,仍然觉得非常不错。
既然要做分布式系统,就不得不说分布式消息通信系统。分布式系统的基础是各个分布式单元能够以各种方式互相通信,分布式消息中间件比较有名的开源实现有rabbitMQ,zeroMQ(库),ActiveMQ等,本篇先考察一下著名的消息中间件 ...
zeroMQ,又称0MQ,是一个非常简单的通信库,它扩展了传统BSD socket能力,提供简单的基于消息的通信。zeroMQ不解析消息体,没有序列化能力,或者说你可以使用任何第三方序列化库比如google的protocol buffer。   iMatix公司,AMQP协议的制定者,在2010年退出了AMQP工作组,其CEO Pieter Hintjens 认为AMQP从根本上就有不可修改的缺陷,太复杂了,目前转而支持zeroMQ,iMatix 2011年后不再维护其AMQP软件OpenAMQP。   在zeroMQ的guide中,将现在(将来)的软件类比人类的大脑,几万亿个神经元互相 ...
分布式系统可以比喻为一个跨节点的操作系统,包括:     分布式通信系统     分布式存储系统     分布式计算系统     分布式监控系统     分布式部署系统     分布式调度系统   其中后三者可以归类到分布式管理系统中,后续对这几部分分别进行考察。   分布式通信系统是分布式系统的基础,分布式系统依赖节点之间的相互通信,而通信方式可以是点对点、订阅通知、广播等各种类型,通信失败后可以丢弃、重发或超时处理,这些都是依赖分布式通信系统进行处理的。分布式通信系统主要有两大类,一类是以库的形式提供,没有一个中心或分布式地通信服务器,这类比较简单,但提供的功能也有限,z ...
每个公司都会有大量办公PC,这些PC一般整个白天都在开启状态(有些甚至晚上也是开启状态),并且绝大多数时间内的cpu占用率都小于1%,我们是否可以把这部分白白浪费的计算资源利用起来呢?   这里需要考虑这么几个问题: 1. 利用起来作甚么     有这么几个用途:信息备份,学习云计算、分布式,公司内部有一些大量处理的计算可以使用   2. 公司内部的信息安全     公司内部的信息,都会设置权限,让某些有权限的人才能看到。而计算、存储资源的共享,尤其是存储的共享,会让这种权限问题可能会失效,这部分必须要严格控制。   3. 员工个人的隐私安全     每个人都不希望自己的东西 ...
上一篇“如何将jar包中的jar文件添加到classpath中”里,讲了URLClassloader无法处理jar包中的jar,实际上就是无法处理“jar:file:/F:/share/ec2/test1.jar!/test.jar”这种类型的URL实际上是URL中嵌套了URL。那么jar in jar loader中的JarRsrcLoader是怎么处理这种情况的呢?很简单,JarRsrcLoader自己构造了一种URL协议rsrc,并且自己向URL注册了一个streamhandler,用来处理rsrc类型的协议处理。然后,使用这种协议格式来访问jar包中的jar或路径,之后照样构造一个URL ...
Global site tag (gtag.js) - Google Analytics