Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
ChatGPT
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
GitHub工具
更多话题
通过cache来发挥同步与异步的优势
12-08-02
brighthas
大家好,我是利奥。同步和
异步
各有用途,那么我们如何结合呢?
以最近开发的
CQRS
-NODE的CQRS框架,我采用了cache方式来管理异步与同步,让他们成为我的奴隶。
大家知道node的JS代码部分是在一个进程中运行的,那么I/O部分是非堵塞异步的,这里就出现一个问题。
比如,我的eventStore,也就是事件的DB,在store时会和数据库异步交互,这就可能出现数据不一致的现象。
我的解决方法是在 EventStore 组件内部加入一个 cache ,这样的话我就可以把领域发来的 event 数据原子的加入到 cache中,那么还有个线程会监听 cache 是否有新的 event 加入,如果有,那么就会 to db 操作,而 to db 操作是异步的,又不影响主进程的运作。
希望对大家有力。
[该贴被brighthas于2012-08-02 09:12修改过]
banq
2012-08-02 11:13
2012-08-02 09:11 "@
brighthas
"的内容
ache 是否有新的 event 加入,如果有,那么就会 to db 操作,而 to db 操作是
异步
的 ...
很好,建议同时把对" to db 操作"事件也进行备份保存,可以将事件append到一个文件中,也可以保存到Cassandra中,以被回放:
http://www.jdon.com/44213
事件溯源EventSourcing
缓存设计