hangscer

hangscer

elixir

Akka中的Message Stash

    Akka是JVM平台上构建高并发、分布式以及高度容错应用的工具包,其基于Actor模型实现了m:n的线程模式(m大于n,m是actor实例的个数,n是线程数量)。akka程序中每个actor实例都扮演一种角色或者实现某一个功能,每一个actor实例都有对应的消息邮箱,actor从自己的邮箱中消费消息,actor之间通过向对方的邮箱发送消息互相交流。常常遇到这样一种情形:某个actor需要在A和B两种状态下切换,以及分别在每种状态下接收并处理各自对应的信息Messsage-A类型和Messsage-B类型的消息实例。由于当处于A状态时,仍然会...

scala的反射

  如果当初Scala没有选择基于Jvm,那么Scala是否还能取得今天的成就吗?Jvm为Scala带了稳健强大的性能,同时也无法避免类型擦除的约束。  作为Jvm上的先进语言,Scala在生成字节码时,编译器附加了额外的类型信息,及时class的泛型参数被擦除了,scala仍然可以获取泛型信息。主要存在三种api: TypeTag,可获取一个类型的全部信息,包括高阶类型,比如List[List[List[String]]]类型。 ClassTag,可获取类型的部分信息。ClassTag[List[List[String]]],仅可得到类型擦除后...

Akka Cluster简介

  akka集群是高容错、去中心化、不存在单点故障以及不存在单点瓶颈的集群。它使用gossip协议通信以及具备故障自动检测功能。 Gossip收敛  集群中每一个节点被其他节点监督(默认的最大数量为5)。集群中的节点互相监督着,某节点所监督的状态也正在被其他监督着。通过gossip协议,节点向其他节点传递自己所见节点的最新状态(Up、Joining等等),同时节点也在接收来自其他节点的信息,这些信息包括哪些节点以及这些节点对应的状态,并这些节点加入到自己的seen表里去,表示自己已经看见了这些节点的最新状态了,当所有的节点都把其他节点“看见”了后...

对于akka系统中的dispatcher的理解

对于akka系统中的dispatcher的理解One        计算机组成原理中,对时间片的解释是:cpu给每个线程分配一个时间段,成为线程的时间片,通过必要的调度算法,达到微观串行,宏观并行的多线程效果。对于akka框架的actor实现,本人的理解是这样的: actor就像时间片,但是不同的是,这个“片”的度量是该actor处理消息的数量衡量,比如现有配置说每个actor处理完100个消息后,需要把线程资源让出给下一个actor使用(非抢占式调度),这样就实现了actor并发,也就得到了actor:t...
蒋航
知难行易
FRIENDS
明嗨 高峰