随笔分类 -  akka-cluster

摘要:随着网上购物消费模式热度的不断提高,网上销售平台上各种促销手段也层出不穷,其中“秒购”已经是各种网站普遍流行的促销方式了。“秒购”对数据的实效性和精确性要求非常高,所以通过分布式运算实现高并发数据处理应该是正确的选择。不过,高并发也意味着高频率的数据操作冲突,而高频使用“锁”又会严重影响效率及容易造 阅读全文
posted @ 2022-02-16 17:24 雪川大虫 阅读(399) 评论(0) 推荐(0) 编辑
摘要:kafka具备的分布式、高吞吐、高可用特性,以及所提供的各种消息消费模式可以保证在一个多节点集群环境里消息被消费的安全性:即防止每条消息遗漏处理或重复消费。特别是exactly-once消费策略:可以保证每条消息肯定只被消费一次。换句话说就是在分布式运算环境里kafka的消息消费是能保证唯一性的。 阅读全文
posted @ 2022-01-28 12:37 雪川大虫 阅读(188) 评论(0) 推荐(0) 编辑
摘要:在进入具体的kafka应用设计之前我们先把kafka集群环境配置介绍一下。多节点kafka-cluster的安装、配置非常简单,所以应该不用太多篇幅就可以完成一个完整可用的kafka-cluster环境了: 1、安装Kafka之前需要安装zookeeper。无论zookeeper或者kafka,安装 阅读全文
posted @ 2021-06-15 11:46 雪川大虫 阅读(486) 评论(0) 推荐(0) 编辑
摘要:上一篇我们通过示范案例基本了解了一个独立交易类型的库存管理模块应该是怎样的一块业务。这篇我们讨论一些如何从技术上来实现这样的业务模块。讲确切点应该说如何借助kafka的特性来实现功能开发。 底层方面:多节点服务器集群、kafka分布部署。 对上一层主要关注partition相关的问题:partiti 阅读全文
posted @ 2021-03-26 11:02 雪川大虫 阅读(233) 评论(0) 推荐(0) 编辑
摘要:前段时间跟一个朋友聊起kafka,flint,spark这些是不是某种分布式运算框架。我自认为的分布式运算框架最基础条件是能够把多个集群节点当作一个完整的系统,然后程序好像是在同一台机器的内存里运行一样。当然,这种集成实现方式有赖于底层的一套消息系统。这套消息系统可以把消息随意在集群各节点之间自由传 阅读全文
posted @ 2020-11-25 18:44 雪川大虫 阅读(743) 评论(0) 推荐(0) 编辑
摘要:在使用akka-typed的过程中发现有很多地方都简化了不少,变得更方便了,包括:Supervision,只要用Behaviors.supervise()把Behavior包住,很容易就可以实现这个actor的SupervisorStrategy.restartWithBackoff策略了。然后集群 阅读全文
posted @ 2020-06-12 16:33 雪川大虫 阅读(897) 评论(0) 推荐(0) 编辑
摘要:先谈谈akka-typed的router actor。route 分pool router, group router两类。我们先看看pool-router的使用示范: val pool = Routers.pool(poolSize = 4)( // make sure the workers a 阅读全文
posted @ 2020-06-11 08:24 雪川大虫 阅读(658) 评论(0) 推荐(0) 编辑
摘要:akka-cluster对每个节点的每种状态变化都会在系统消息队列里发布相关的事件。通过订阅有关节点状态变化的消息就可以获取每个节点的状态。这部分已经在之前关于akka-cluster的讨论里介绍过了。由于akka-typed里采用了新的消息交流协议,而系统消息的发布和订阅也算是消息交换,也受交流协 阅读全文
posted @ 2020-06-07 22:28 雪川大虫 阅读(687) 评论(0) 推荐(0) 编辑
摘要:最近有同事提起想把网页上的图片存在MongoDB里,我十分赞同。比起把图片以文件形式存放在硬盘子目录的方式,MongoDB有太多的优势。首先,MongoDB是分布式数据库,图片可以跨服务器存储。在一个集群环境里通过复制集、分片等技术可以提高图片读取速度、实现数据的高可用和安全性。再就是对大量的图片可 阅读全文
posted @ 2019-08-22 08:50 雪川大虫 阅读(780) 评论(0) 推荐(0) 编辑
摘要:在云计算的推动下,软件系统发展趋于平台化。云平台系统一般都是分布式的集群系统,采用大数据技术。在这方面akka提供了比较完整的开发技术支持。我在上一个系列有关CQRS的博客中按照实际应用的要求对akka的一些开发技术进行了介绍。CQRS模式着重操作流程控制,主要涉及交易数据的管理。那么,作为交易数据 阅读全文
posted @ 2019-07-11 12:13 雪川大虫 阅读(615) 评论(0) 推荐(1) 编辑
摘要:上期讨论过OAuth2, 是一种身份认证+资源授权使用模式。通过身份认证后发放授权凭证。用户凭授权凭证调用资源。这个凭证就是一种令牌,基本上是一段没什么意义的加密文,或者理解成密钥也可以。服务方通过这个令牌来获取用户身份信息,也就是说服务端必须维护一个已经获得身份验证的用户信息清单。研究了一下JWT 阅读全文
posted @ 2019-07-09 12:19 雪川大虫 阅读(1004) 评论(0) 推荐(1) 编辑
摘要:上一篇讨论了SSL/TLS安全连接,主要是一套在通信层面的数据加密解决方案。但我们更需要一套方案来验证客户端。要把不能通过验证的网络请求过滤掉。 OAuth2是一套行业标准的网络资源使用授权协议,也就是为用户提供一种授权凭证,用户凭授权凭证来使用网络资源。申请凭证、然后使用凭证进行网络操作流程如下: 阅读全文
posted @ 2019-07-04 14:25 雪川大虫 阅读(764) 评论(0) 推荐(0) 编辑
摘要:到现在,我们已经完成了POS平台和前端的网络集成。不过,还是那句话:平台系统的网络安全是至关重要的。前一篇博客里我们尝试实现了gRPC ssl/tls网络连接,但测试时用的证书如何产生始终没有搞清楚。现在akka-http开发的ws同样面临HTTPS的设置和使用问题。所以,特别抽出这篇博文讨论一下数 阅读全文
posted @ 2019-06-24 08:42 雪川大虫 阅读(915) 评论(0) 推荐(0) 编辑
摘要:使用gRPC作为云平台和移动前端的连接方式,网络安全应该是必须考虑的一个重点。gRPC是支持ssl/tls安全通讯机制的。用了一个周末来研究具体使用方法,实际上是一个周末的挖坑填坑过程。把这次经历记录下来与各位分享。 gRPC的ssl/tls的原理是在服务端安装安全证书公用certificate和私 阅读全文
posted @ 2019-06-17 13:50 雪川大虫 阅读(1258) 评论(0) 推荐(0) 编辑
摘要:前面我们完成了一个CQRS模式的数据采集(录入)平台。可以预见:数据的产生是在线下各式各样的终端系统中,包括web、桌面、移动终端。那么,为了实现一个完整的系统,必须把前端设备通过某种网络连接形式与数据采集平台集成为一体。有两种方式可以实现需要的网络连接:Restful-api, gRPC。由于gR 阅读全文
posted @ 2019-06-12 09:07 雪川大虫 阅读(960) 评论(0) 推荐(2) 编辑
摘要:前面我们已经讨论了CQRS-Reader-Actor的基本工作原理,现在是时候在之前那个POS例子里进行实际的应用示范了。 假如我们有个业务系统也是在cassandra上的,那么reader就需要把从日志读出来的事件恢复成cassandra表里的数据行row。首先,我们需要在cassandra上创建 阅读全文
posted @ 2019-05-30 11:12 雪川大虫 阅读(848) 评论(0) 推荐(0) 编辑
摘要:我们在这篇通过一个具体CQRS-Reader-Actor的例子来示范akka-persistence的query端编程和应用。在前面的博客里我们设计了一个CQRS模式POS机程序的操作动作录入过程,并示范了如何实现CQRS的写端编程。现在我们可以根据这个例子来示范如何通过CQRS的读端reader- 阅读全文
posted @ 2019-05-21 08:55 雪川大虫 阅读(629) 评论(0) 推荐(0) 编辑
摘要:前面我们全面介绍了在akka-cluster环境下实现的CQRS写端write-side。简单来说就是把发生事件描述作为对象严格按发生时间顺序写入数据库。这些事件对象一般是按照二进制binary方式如blob存入数据库的。cassandra-plugin的表结构如下: 事件对象是存放在event里的 阅读全文
posted @ 2019-04-27 18:34 雪川大虫 阅读(374) 评论(0) 推荐(0) 编辑
摘要:上篇我们做了一个WriterActor的例子,主要目的是示范WriterActor如何作为集群分片用persistentActor特性及event-sourcing模式实现CQRS的写功能。既然是集群分片,那么我们就在这篇讲讲WriterActor的部署和测试,因为这个里面还是有些值得注意的地方。下 阅读全文
posted @ 2019-04-06 20:55 雪川大虫 阅读(692) 评论(0) 推荐(0) 编辑
摘要:我觉着,CQRS的写部分最核心、最复杂的部分应该是Writer-Actor了。其它的监管(supervising)、分片部署等都比较规范,没太多的变动。几乎Writer-Actor所有的业务逻辑都在Receive函数里,这个地方应该算是最复杂的地方。我的想法是搭建一个标准框架,保证可以运行Write 阅读全文
posted @ 2019-03-30 09:47 雪川大虫 阅读(704) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示