gydtep 发表于 2022-9-12 08:01:57

大部分核心的业务逻辑需要下沉到 domain 层中。实际一开始进行这种方式的开发的时候非常的不习惯,但是当你实际沉下心来做的时候会发现

gydtep 发表于 2022-9-13 14:00:43

实现一体化前我们先从理论上分析一下问题和可行性。我们知道,无论是终端消息还是服务端消息,其实就是一种通信方式,从通信的层面看要解决的基础问题简单总结就是:协议、匹配、触达。

gydtep 发表于 2022-9-14 16:23:19

上图中还有一个 Cache 模块用于做消息队列 cache,因为在大广播比场景下如果为每个终端设备都去发起队列 Pull 请求则对 broker 读压力较大,既然每个请求都去读取相同的 Topic 队列,则可以复用本地队列 cache。

gydtep 发表于 2022-9-15 14:27:09

上图描述的接受我们的队列存储模型,消息可以来自各个接入场景(如服务端的 MQ/AMQP,客户端的 MQTT),但只会写一份存到 commitlog 里面,

gydtep 发表于 2022-9-16 14:29:31

所以在队列数量上可以达到十万级。然而这终端设备队列场景下,十万级的队列数量还是太小了,我们希望进一步提升一个数量级,达到百万级队列数量,我们引入了 Rocksdb 引擎来进行 CQ 索引分发。

gydtep 发表于 2022-9-18 09:44:00

从领域和代码实现的角度来理解,领域模型绑定了领域和代码实现,确保了最终的代码实现就一定是解决了领域中的核心问题的。因为:1)领域驱动领域模型设计;2)领域模型驱动代码实现。

gydtep 发表于 2022-9-19 15:23:30

对领域内的各种业务场景和各种业务规则也非常清楚,总之,对这个领域内的一切业务相关的知识都非常了解。所以,他们自然就有能力表达出系统该做成什么样子。

gydtep 发表于 2022-9-20 15:27:39

把他的产品充分设计好,从各个方面去考虑,如何设计一个产品,才能更好的解决用户的核心诉求,即领域内的核心问题。如果对领域不够了解,如果想不清楚用户到底要什么,如果思考问题不够全面,谈何设计出一个合理的产品呢?

gydtep 发表于 2022-9-21 10:06:12

领域建模的方法
通过上面我介绍的细化子域的内容,现在再来谈该如何领域建模,我觉得就方便很多了。我的主要方法是:

gydtep 发表于 2022-9-22 08:59:51

随着互联网而兴起的新兴数据库产品很多都兼容了MySQL协议,因此成为替代MySQL的一个可选项。而这些分布式数据库产品大部分采用了分布式Share Nothing的方案
页: 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31
查看完整版本: 免费领取阿里云大礼包3150元和0.26折优惠