akka-typed(8) - CQRS读写分离模式

前面介绍了事件源(EventSource)和集群(cluster),现在到了讨论CQRS的时候了。CQRS即读写分离模式,由独立的写方程序和读方程序组成,具体原理在以前的博客里介绍过了。akka-typed应该自然支持CQRS模式,最起码本身提供了对写方编程的支持,这点从EventSourcedBe ... »

kka-typed(5) - cluster:集群节点状态监视

akka-cluster对每个节点的每种状态变化都会在系统消息队列里发布相关的事件。通过订阅有关节点状态变化的消息就可以获取每个节点的状态。这部分已经在之前关于akka-cluster的讨论里介绍过了。由于akka-typed里采用了新的消息交流协议,而系统消息的发布和订阅也算是消息交换,也受交流协 ... »

akka-typed(4) - EventSourcedBehavior in action

前面提到过,akka-typed中较重要的改变是加入了EventSourcedBehavior。也就是说增加了一种专门负责EventSource模式的actor, 最终和其它种类的actor一道可以完美实现CQRS。新的actor,我还是把它称为persistentActor,还是一种能维护和维持运 ... »

akka-typed(3) - PersistentActor has EventSourcedBehavior

akka-typed中已经没有PersistentActor了。取而代之的是带有EventSourcedBehavior的actor,也就是一种专门支持EventSource模式的actor。EventSource的原理和作用在之前的博客里已经有了比较详细的介绍,这里就不再重复了。本篇直接从Even ... »

akka-typed(2) - typed-actor交流方式和交流协议

akka系统是一个分布式的消息驱动系统。akka应用由一群负责不同运算工作的actor组成,每个actor都是被动等待外界的某种消息来驱动自己的作业。所以,通俗点描述:akka应用就是一群actor相互之间发送消息的系统,每个actor接收到消息后开始自己负责的工作。对于akka-typed来说,t ... »

akka-typed(1) - actor生命周期管理

akka-typed的actor从创建、启用、状态转换、停用、监视等生命周期管理方式和akka-classic还是有一定的不同之处。这篇我们就介绍一下akka-typed的actor生命周期管理。 每一种actor都是通过定义它的行为属性behavior形成模版,然后由对上一层的父辈actor用sp ... »

akka-typed(0) - typed-actor, typed messages

akka 2.6.x正式发布以来已经有好一段时间了。核心变化是typed-actor的正式启用,当然persistence,cluster等模块也有较大变化。一开始从名称估摸就是把传统any类型的消息改成强类型消息,所以想拖一段时间看看到底能对我们现有基于akka-classic的应用软件有什么深层 ... »

写一个LRU算法的记录

今天简单记录一下,利用Scala解答的一道LRU题目,原题为LeetCode的第146题,是一道设计LRU的题目。 题目详情 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) 如果 ... »

search(16)- elastic4s-内嵌文件:nested and join

从SQL领域来的用户,对于ES的文件关系维护方式会感到很不习惯。毕竟,ES是分布式数据库只能高效处理独个扁平类型文件,无法支持关系式数据库那样的文件拼接。但是,任何数据库应用都无法避免树型文件关系,因为这是业务模式需要的表现形式。在ES里,无论nested或join类型的数据,父-子关系的数据文件实 ... »

闭包与内部类

闭包与内部类 中英文社区中,比较常见的对闭包的定义是 ` 引用了自由变量的一段代码或函数,被引用的自由变量和函数(一段代码)共同存在,即使离开了创造它的环境 ` 内部类 按照我的理解,scala/java中虽然并不存在语法级地支持或是定义,对于闭包而言,一些概念和闭包的概念一致。一般理解scala中 ... »

系统学习scala--基础

scala基础 安装scala(不推荐使用最新版本,2.11.x够用了) "scala官网" "2.11.12版本下载页面" 这里我选择2.11.12版本,在下载页面往下拉,选择scala 2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议用迅雷。 ... »

search(13)- elastic4s-histograms:聚合直方图

在聚合的分组统计中我们会面临两种分组元素类型:连续型如时间,自然数等、离散型如地点、产品等。离散型数据本身就代表不同的组别,但连续型数据则需要手工按等长间隔进行切分了。下面是一个按价钱段聚合的例子: POST /cartxns/_search { "size" : 1, "aggs": { "sal ... »

search(12)- elastic4s-聚合=桶+度量

这篇我们介绍一下ES的聚合功能(aggregation)。聚合是把索引数据可视化处理成可读有用数据的主要工具。聚合由bucket桶和metrics度量两部分组成。 所谓bucket就是SQL的GROUPBY,如下: GET /cartxns/_search { "size" : 2, "aggs": ... »

scala 隐式参数

def test(implicit name: String = "susu"): Unit ={ println(name);}三种调用方法如下:test("dudu"), 输出dudutest(),输出 susutest, 输出susu总结,有入参用入参,没有入参用隐式值,最后用默认值 ... »

search(11)- elastic4s-模糊查询

很多时候搜索用户对查询语句具有模糊感觉,他们只能提供大约的描述。比如一个语句的部分,或者字句顺序颠倒等。通过模糊查询可以帮助用户更准确的找出他们希望搜索的结果。 模糊查询包括前后缀,语句(phrase)查询。前缀查询在非文本查询和全文查询字段中使用是有着不同的效果:在非文本字段查询中我们需要严格按照 ... »