首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(1)- Cluster Singleton 单例节点

    它可以是在任何节点上,具体位置由akka-cluster系统的leader节点根据一定规则选定。

    98330发布于 2018-12-03
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(3)- ClusterClient, 集群客户端

      上篇我们介绍了distributed pub/sub消息传递机制。这是在同一个集群内的消息共享机制:发布者(publisher)和订阅者(subscriber)都在同一个集群的节点上,所有节点上的DistributedPubSubMediator通过集群内部的沟通机制在底层构建了消息流通渠道。在actor pub/sub层面可以实现对象位置透明化。在现实里很多前端都会作为某个集群的客户端但又与集群分离,又或者两个独立的集群之间可能会发生交互关系,这是也会出现客户端与服务端不在同一集群内的情况,ClusterClient就是为集群外部actor与集群内部actor进行沟通的解决方案。

    2.2K20发布于 2018-12-25
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(4)- DistributedData, 分布式数据类型

    在实际应用中,集群环境里共用一些数据是不可避免的。我的意思是有些数据可以在任何节点进行共享同步读写,困难的是如何解决更改冲突问题。本来可以通过分布式数据库来实现这样的功能,但使用和维护成本又过高,不值得。分布式数据类型distributed-data (ddata)正是为解决这样的困局而设计的。akka提供了一组CRDT(ConflictFreeReplicatedDataType 免冲突可复制数据类型)和一套管理方法来实现分布式数据在集群中的免冲突共享共用。

    86330发布于 2018-12-28
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(2)- distributed pubsub mechanism 分布式发布订阅机制

    在集群环境里每个节点上akka-cluster系统都提供一个DistributedPubSubMediator实例作为该节点向外发布及订阅消息的渠道。

    1.6K40发布于 2018-12-10
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(0)- 分布式应用开发的一些想法

      当我初接触akka-cluster的时候,我有一个梦想,希望能充分利用actor自由分布、独立运行的特性实现某种分布式程序。 这些服务器都处于同一集群环境里,它们都是akka-cluster中的节点(node)。 akka-cluster的节点数量只需要通过系统配置方式按照计算能力要求随意增减,在集群上运行的分布式程序可以在不修改软件的情况下自动调整actors在各节点上的分布,重新平衡程序运算负载,不受任何影响继续运行 这些需要恰恰又是akka-cluster的特殊能力。所以决定开个akka-cluster的专题系列来具体讨论集群环境下的分布式软件开发模式。 但首先探讨一下如何通过配置文件来定义akka-cluster节点,实现集群规模调整。

    1K30发布于 2018-11-23
  • 来自专栏函数式编程语言及工具

    Akka(10): 分布式运算:集群-Cluster

       Akka-Cluster可以在一部物理机或一组网络连接的服务器上搭建部署。 Akka-Cluster是基于Akka-Remoting之上的新一代分布式运算环境,所以Remoting已经成为了Akka-Cluster的内部支持功能,在生产环境中的分布式运算应该尽量使用Akka-Cluster 当然,更重要的是相对Akka-Remoting而言,Akka-Cluster提供了一整套更安全、更高效的分布式运算环境。 简单来说Akka-Cluster将多个JVM连接整合起来,实现消息地址的透明化和统一化使用管理,集成一体化的消息驱动系统。 InternalClusterAction.AddOnMemberRemovedListener(callback) } 下面我们就用个例子来示范Akka-Cluster的运作过程: 首先需要Akka-Cluster

    2.1K90发布于 2018-01-05
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(6)- Cluster-Sharding:集群分片,分布式交互程序核心方式

    这是因为通过akka-cluster能够把很多服务器组合成一个虚拟的整体系统,编程人员不需要知道负责运算的actor具体在那台服务器上运行。 akka-cluster提供的actor位置透明化机制能在系统崩溃、增减集群节点时自动重新部署所有的actor以达到负责均衡。 akka-cluster提供的方法是通过定义一个空转时间值idle-timeout,如果空转超出此时间段则可以进行passivate。

    1.7K20发布于 2019-05-25
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(0)- 基于akka-cluster的读写分离框架,构建gRPC移动应用后端架构

    上一篇我们讨论了akka-cluster的分片(sharding)技术。在提供的例子中感觉到akka这样的分布式系统工具特别适合支持大量的带有内置状态的,相对独立完整的程序在集群节点上分布运算。 考虑到akka-cluster集群分布式运算可扩展能力特性,处理万级POS同时在线应该不成问题。当然,每个POS开单销售的过程都存放在内存作为每单销售的状态。

    76920发布于 2019-05-25
  • 来自专栏函数式编程语言及工具

    Akka-Cluster(5)- load-balancing with backoff-supervised stateless computation - 无状态任务集群节点均衡分配

    细分的任务相互之间可以有关联或者各自为独立运算,使用akka-cluster可以把任务按照各节点运算资源的负载情况进行均匀的分配,从而达到资源的合理充分利用以实现运算效率最大化的目的。 selectedChild")) scala.io.StdIn.readLine() testSystem.terminate() } 好了,现在我们就开始实现一个在集群中进行数据库操作的例子,看看akka-cluster "com.typesafe.akka" %% "akka-actor" % akkaVersion, "com.typesafe.akka" %% "akka-cluster

    1.7K20发布于 2019-01-07
  • 来自专栏函数式编程语言及工具

    Akka(11): 分布式运算:集群-均衡负载

    在上篇讨论里我们主要介绍了Akka-Cluster的基本原理。同时我们也确认了几个使用Akka-Cluster的重点:首先,Akka-Cluster集群构建与Actor编程没有直接的关联。 Akka-Cluster提供的Adaptive-Group是一种比较智能化的自动Routing模式,它是通过对各集群节点的具体负载情况来分配任务的。 "com.typesafe.akka" %% "akka-actor" % akkaVersion, "com.typesafe.akka" %% "akka-cluster akka-actor" % akkaVersion, "com.typesafe.akka" %% "akka-remote" % akkaVersion, "com.typesafe.akka" %% "akka-cluster

    2.5K70发布于 2018-01-05
  • 来自专栏函数式编程语言及工具

    kakafka - 为CQRS而生

    好了,akka-cluster是通过对每个集群节点上的中介发送消息使之调动该节点上某段程序运行来实现分布式运算的。那么,kafka也可以实现消息在集群节点间的自由流通,是不是也是一个分布式运算框架呢? 与分布式运算框架像akka-cluster对比,kafka还缺了个在每个集群节点上的”运算调度中介“,所以kafka应该不算我所指的分布式运算框架,充其量是一种分布式的消息传递系统。 常常看到网上有朋友抱怨akka-cluster的一些处理方式太底层或太基础了。用户往往需要自己来增加一些方法来确保使用安全。

    77920发布于 2020-11-26
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave

    对于akka-cluster这样的分布式软件系统来说,选择配套的数据库类型也是比较讲究的,最好也是分布式的,如cassandra,能保证良好的HA特性。 一直以来基本上都在一部macbookpro上开发、测试akka-cluster相关软件。

    1.2K20发布于 2019-05-25
  • 来自专栏函数式编程语言及工具

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

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

    76730发布于 2020-06-09
  • 来自专栏函数式编程语言及工具

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

    作为后台数据服务调用的唯一入口,平台应该是个分布式软件,那么采用akka-cluster目前是唯一的选择,毕竟前期搞过很多基于akka-cluster的应用软件。

    73330发布于 2020-05-29
  • 来自专栏维C果糖

    Akka 指南 之「集群的使用方法」

    -- sbt --> libraryDependencies += "com.typesafe.akka" %% "akka-cluster" % "2.5.19" 简单的项目 你可以查看「集群示例」项目 /akka-cluster <node-hostname> <jmx-port> <command> ... /akka-cluster localhost 9999 is-available . /akka-cluster localhost 9999 join akka.tcp://MySystem@darkstar:2552 . /akka-cluster localhost 9999 cluster-status 配置 集群有几个配置属性。有关更多信息,请见「参考配置」。

    5.4K60发布于 2019-05-29
  • 来自专栏函数式编程语言及工具

    alpakka-kafka(9)-kafka在分布式运算中的应用

    akka-cluster里,每一个分片都就等于一个命名的actor。还有一个问题是如果涉及大量的唯一账号,或者商品号,比如超百万的唯一编号又该怎么办呢?

    50810编辑于 2022-05-10
  • 来自专栏函数式编程语言及工具

    Akka-CQRS(6)- read-side

    前面我们全面介绍了在akka-cluster环境下实现的CQRS写端write-side。简单来说就是把发生事件描述作为对象严格按发生时间顺序写入数据库。

    78130发布于 2019-05-25
  • 来自专栏函数式编程语言及工具

    Akka(13): 分布式运算:Cluster-Sharding-运算的集群分片

    Akka-Cluster还可以根据整个集群中节点的增减按当前集群节点情况进行分片在集群节点调动来重新配载(rebalance),包括在某些节点因故脱离集群时把节点上的所有Actor在其它在线节点上重新构建 akka-actor" % akkaversion, "com.typesafe.akka" %% "akka-remote" % akkaversion, "com.typesafe.akka" %% "akka-cluster

    1.8K80发布于 2018-01-05
  • 来自专栏函数式编程语言及工具

    SDP(0):Streaming-Data-Processor - Data Processing with Akka-Stream

    最近刚完成了对整个akka套装(suite)的了解,感觉akka是一套理想的分布式编程工具:一是actor模式提供了多种多线程编程方式,再就是akka-cluster能轻松地实现集群式的分布式编程,而集群环境变化只需要调整配置文件

    65410编辑于 2022-05-10
  • 来自专栏函数式编程语言及工具

    akka-grpc - 应用案例

    由于终端数量多、图像处理又特别消耗内存、CPU等计算资源、又要求快速响应,所以第一考虑就是使用akka-cluster把图像处理任务分割到多个节点上并行处理。

    1.1K10发布于 2020-09-01
领券