首页
学习
活动
专区
工具
TVP
发布

函数式编程语言及工具

专栏作者
283
文章
264416
阅读量
67
订阅数
alpakka-kafka(7)-kafka应用案例,消费模式
上篇描述的kafka案例是个库存管理平台。是一个公共服务平台,为其它软件模块或第三方软件提供库存状态管理服务。当然,平台管理的目标必须是共享的,即库存是作为公共资源开放的。这个库存管理平台是一个Kafka消费端独立运行的软件。kafka的生产方即平台的服务对象通过kafka生产端producer从四面八方同时、集中将消息写入kafka。库存管理平台在kafka消费端不间断监控kafka里新的未读过的消息并及时读取,解析消息获取发布者对库存管理的指令,然后按指令更新库存状态。
用户1150956
2021-08-19
4020
alpakka-kafka(8)-kafka数据消费模式实现
上篇介绍了kafka at-least-once消费模式。kafka消费模式以commit-offset的时间节点代表不同的消费模式,分别是:at-least-once, at-most-once, exactly-once。上篇介绍的at-least-once消费模式是通过kafka自身的auto-commit实现的。事后想了想,这个应该算是at-most-once模式,因为消费过程不会影响auto-commit,kafka在每个设定的间隔都会自动进行offset-commit。如果这个间隔够短,比整个消费过程短,那么在完成消费过程前就已经保存了offset,所以是at-most-once模式。不过,如果确定这个间隔一定大于消费过程,那么又变成了at-least-once模式。具体能实现什么消费模式并不能明确,因为auto-commit是无法从外部进行控制的。看来实现正真意义上的at-least-once消费模式还必须取得offset-commit的控制权才行。
用户1150956
2021-08-19
4840
alpakka-kafka(2)-consumer
alpakka-kafka-consumer的功能描述很简单:向kafka订阅某些topic然后把读到的消息传给akka-streams做业务处理。在kafka-consumer的实现细节上,为了达到高可用、高吞吐的目的,topic又可用划分出多个分区partition。分区是分布在kafka集群节点broker上的。由于一个topic可能有多个partition,对应topic就会有多个consumer,形成一个consumer组,共用统一的groupid。一个partition只能对应一个consumer、而一个consumer负责从多个partition甚至多个topic读取消息。kafka会根据实际情况将某个partition分配给某个consumer,即partition-assignment。所以一般来说我们会把topic订阅与consumer-group挂钩。这个可以在典型的ConsumerSettings证实:
用户1150956
2021-03-02
5760
alpakka-kafka(1)-producer
alpakka项目是一个基于akka-streams流处理编程工具的scala/java开源项目,通过提供connector连接各种数据源并在akka-streams里进行数据处理。alpakka-kafka就是alpakka项目里的kafka-connector。对于我们来说:可以用alpakka-kafka来对接kafka,使用kafka提供的功能。或者从另外一个角度讲:alpakka-kafka就是一个用akka-streams实现kafka功能的scala开发工具。
用户1150956
2021-03-02
9190
kakafka - 为CQRS而生
前段时间跟一个朋友聊起kafka,flint,spark这些是不是某种分布式运算框架。我自认为的分布式运算框架最基础条件是能够把多个集群节点当作一个完整的系统,然后程序好像是在同一台机器的内存里运行一样。当然,这种集成实现方式有赖于底层的一套消息系统。这套消息系统可以把消息随意在集群各节点之间自由传递。所以如果能够通过消息来驱动某段程序的运行,那么这段程序就有可能在集群中任何一个节点上运行了。好了,akka-cluster是通过对每个集群节点上的中介发送消息使之调动该节点上某段程序运行来实现分布式运算的。那么,kafka也可以实现消息在集群节点间的自由流通,是不是也是一个分布式运算框架呢?实际上,kafka设计强调的重点是消息的接收,或者叫消息消费机制。至于接收消息后怎么去应对,用什么方式处理,都是kafka用户自己的事了。与分布式运算框架像akka-cluster对比,kafka还缺了个在每个集群节点上的”运算调度中介“,所以kafka应该不算我所指的分布式运算框架,充其量是一种分布式的消息传递系统。实际上kafka是一种高吞吐量、高可用性、安全稳定、有良好口碑的分布式消息系统。
用户1150956
2020-11-26
5620
search(1)- elasticsearch结构概念
上篇提到选择了elasticsearch ES作为专业化搜索引擎的核心,这篇讨论一下ES的基本结构和应用概念。首先,从硬结构方面来讲:ES是在一个集群(cluster)环境里运行的,所以ES应该具备高可用和高扩展特性,因为系统可以分布在机器内无数个节点(node)服务器上运行。ES的索引(index)分布在集群中各node上。ES的index又可以向下分成多个shard分片。因为ES是基于lucent的,ES的shard就是一个完整的lucent index。所以,ES index是一个shard集合,也就是lucent index集合。在定义ES index时必须指定该index的shard(primary)数量,之后不得修改。这就意味着每个ES index需要占用一个以上shard,而shard是ES index操作的最小单元,也就是说一个shard只能存放一种ES index索引文件(document)。
用户1150956
2020-03-19
5710
Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave
对于akka-cluster这样的分布式软件系统来说,选择配套的数据库类型也是比较讲究的,最好也是分布式的,如cassandra,能保证良好的HA特性。前面的例子里示范akka-persistence时已经使用了cassandra作为journal和snapshot-store。一直以来基本上都在一部macbookpro上开发、测试akka-cluster相关软件。这次在腾讯云上租了两台8G,50G的服务器,安装了ubuntu 16.04.1 LTS操作系统,想着可以在一个真正的环境下试试cassandra cluster的安装部署和实际使用。先是试着在ubuntu上安装部署:
用户1150956
2019-05-25
8660
Akka(24): Stream:从外部系统控制数据流-control live stream from external system
 在数据流应用的现实场景中常常会遇到与外界系统对接的需求。这些外部系统可能是Actor系统又或者是一些其它类型的系统。与这些外界系统对接的意思是在另一个线程中运行的数据流可以接收外部系统推送的事件
用户1150956
2018-01-05
6650
Akka(25): Stream:对接外部系统-Integration
   在现实应用中akka-stream往往需要集成其它的外部系统形成完整的应用。这些外部系统可能是akka系列系统或者其它类型的系统。所以,akka-stream必须提供一些函数和方法来实现与各种不
用户1150956
2018-01-05
2K0
Akka(11): 分布式运算:集群-均衡负载
在上篇讨论里我们主要介绍了Akka-Cluster的基本原理。同时我们也确认了几个使用Akka-Cluster的重点:首先,Akka-Cluster集群构建与Actor编程没有直接的关联。集群构建是
用户1150956
2018-01-05
2.1K0
FunDA(11)- 数据库操作的并行运算:Parallel data processing
   FunDA最重要的设计目标之一就是能够实现数据库操作的并行运算。我们先重温一下fs2是如何实现并行运算的。我们用interleave、merge、either这几种方式来同时处理两个Stream
用户1150956
2018-01-05
9490
泛函编程(35)-泛函Stream IO:IO处理过程-IO Process
用户1150956
2018-01-05
9900
泛函编程(38)-泛函Stream IO:IO Process in action
该文介绍了如何使用Scala和Akka模块在Scala中实现一个简化的Actor,该Actor旨在处理异步消息。该Actor使用Akka.IO库来处理异步I/O操作,并使用Akka.Remote库来处理远程调用。该Actor还展示了如何使用Scala的Actor范式和Akka库来实现高可伸缩性、高性能的系统。此外,该文还介绍了如何使用Akka.NET实现类似功能。
用户1150956
2018-01-05
6950
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档