腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
函数式编程语言及工具
专栏作者
举报
283
文章
264466
阅读量
67
订阅数
订阅专栏
申请加入专栏
全部文章(283)
scala(150)
数据库(52)
编程算法(39)
sql(31)
数据处理(31)
http(26)
数据结构(20)
api(18)
其他(16)
rpc(15)
json(14)
mongodb(14)
node.js(13)
分布式(13)
jdbc(11)
kafka(11)
react(7)
nosql(6)
网站(6)
大数据(6)
es(6)
go(5)
云数据库 MongoDB(5)
java(4)
javascript(4)
网络安全(4)
xml(3)
html(3)
android(3)
日志服务(3)
面向对象编程(3)
安全(3)
actor(3)
文件存储(2)
人工智能(2)
存储(2)
开源(2)
缓存(2)
date(2)
event(2)
histogram(2)
keyword(2)
map(2)
match(2)
sequence(2)
机器学习(1)
mac os(1)
c 语言(1)
c++(1)
python(1)
bash(1)
.net(1)
asp.net(1)
jquery(1)
unix(1)
windows server(1)
bash 指令(1)
TDSQL MySQL 版(1)
消息队列 CMQ 版(1)
SSL 证书(1)
图像处理(1)
企业(1)
容器(1)
压力测试(1)
spark(1)
jvm(1)
zookeeper(1)
tcp/ip(1)
socket编程(1)
数据分析(1)
windows(1)
https(1)
系统架构(1)
nest(1)
Elasticsearch Service(1)
action(1)
adt(1)
aggregation(1)
auto(1)
behavior(1)
boost(1)
case(1)
class(1)
command(1)
count(1)
debug(1)
dsl(1)
entity(1)
entitymanager(1)
extends(1)
filter(1)
free(1)
function(1)
int(1)
io(1)
key(1)
list(1)
max(1)
metrics(1)
min(1)
pool(1)
prefix(1)
process(1)
router(1)
row(1)
scalaz(1)
search(1)
sharding(1)
slick(1)
state(1)
string(1)
sum(1)
text(1)
title(1)
union(1)
worker(1)
zip(1)
数据类型(1)
统计(1)
语法(1)
搜索文章
搜索
搜索
关闭
akka-typed(8) - CQRS读写分离模式
scala
python
nosql
数据库
前面介绍了事件源(EventSource)和集群(cluster),现在到了讨论CQRS的时候了。CQRS即读写分离模式,由独立的写方程序和读方程序组成,具体原理在以前的博客里介绍过了。akka-typed应该自然支持CQRS模式,最起码本身提供了对写方编程的支持,这点从EventSourcedBehavior 可以知道。akka-typed提供了新的EventSourcedBehavior-Actor,极大方便了对persistentActor的应用开发,但同时也给编程者造成了一些限制。如手工改变状态会更困难了、EventSourcedBehavior不支持多层式的persist,也就是说通过persist某些特定的event然后在event-handler程序里进行状态处理是不可能的了。我这里有个例子,是个购物车应用:当完成支付后需要取个快照(snapshot),下面是这个snapshot的代码:
用户1150956
2020-06-29
411
0
search(9)- elastic4s logback-appender
jquery
es
日志服务
nosql
xml
前面写了个cassandra-appender,一个基于cassandra的logback插件。正是cassandra的分布式数据库属性才合适作为akka-cluster-sharding分布式应用的logger。所以,cassandra-appender核心功能就是对logback消息的存写部分了。同样,基于ES的logback-appender核心部分就是对ES的存写过程了。在ES里这个过程还附带了索引indexing过程。将来对历史消息的搜索、分析会更加方便。直接看看消息存写这部分elastic4代码:
用户1150956
2020-05-11
618
0
CassandraAppender - distributed logging,分布式软件logback-appender
json
日志服务
nosql
农历年最后一场scala-meetup听刘颖分享专业软件开发经验,大受启发。突然意识到一直以来都没有完全按照任何标准的开发规范做事。诚然,在做技术调研和学习的过程中不会对规范操作有什么严格要求,一旦技术落地进入应用阶段,开始进行产品开发时,只有严格按照专业的软件开发规范才能保证软件产品的质量。刘颖在meetup中提到了异常处理(exception handling)和过程跟踪(logging)作为软件开发规范中的重要环节。我们在这篇先讨论logging。logging通过记录软件运行过程帮助开发者跟踪软件运行情况,分析运算结果或者异常产生原因,是一个成功完整的软件不可缺少的环节。 logback应该是java生态链中最流行、最通用的logger了。虽然logback已经提供了STDOUT、FILE、DB等多种跟踪信息输出方式,即ConsoleAppender、FileAppender、DBAppender,但针对分布式应用的appender还是需要定制。因为分布式软件是跨系统运行的,跟踪信息自然也会在不同的系统中产生并存储,所以分布式应用需要分布式存储才能实现跟踪信息的全局管理。logback是一套开发架构,任何定制的appender可以很方便地整合入logback。那么我们就尝试开发一套基于cassandra的logback-appender。
用户1150956
2020-02-23
553
0
Akka-CQRS(7)- CQRS Reader Actor 示范
scala
数据库
sql
nosql
我们在这篇通过一个具体CQRS-Reader-Actor的例子来示范akka-persistence的query端编程和应用。在前面的博客里我们设计了一个CQRS模式POS机程序的操作动作录入过程,并示范了如何实现CQRS的写端编程。现在我们可以根据这个例子来示范如何通过CQRS的读端reader-actor读取由writer-actor所写入的操作事件并将二进制格式的事件恢复成数据库表的行数据。
用户1150956
2019-05-25
865
0
Akka-CQRS(6)- read-side
scala
数据库
sql
nosql
前面我们全面介绍了在akka-cluster环境下实现的CQRS写端write-side。简单来说就是把发生事件描述作为对象严格按发生时间顺序写入数据库。这些事件对象一般是按照二进制binary方式如blob存入数据库的。cassandra-plugin的表结构如下:
用户1150956
2019-05-25
596
0
Akka-CQRS(2)- 安装部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave
nosql
bash
bash 指令
node.js
mac os
对于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
866
0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档