或许有一天我真的会把它做成一个可以使用的项目......
这是我的个人学习项目系列Another-Domain中的分布式项目(同时也是这个系列的主体)
为了能够包含尽可能多的知识点与功能让简历不至于太难看,
会尽可能地使用较多的技术栈虽然可能是不必要的,
与此同时也会对DDD落地进行个人层面的实践
主要是使用各种技术在服务端对:文字论坛/个人博客功能,IM,商城,AI聊天,个人云盘/图床等功能进行一个demo级别的实现
(这也是AnotherDomain这个项目名字的由来——我希望用户可以在一个站点就能完成个人展示+相互交流,
AnotherDomain——另一个领域,由互联网为您提供的专属于您的领域,您可以在这里获得人的认同,自我的满足)
语言:Kotlin
框架:SpringBoot
安全框架:SaToken
数据库:
- MySQL ORM:Jimmer
- Cassandra ORM:Spring Data Cassandra
分布式缓存:Redis Client:Redisson
本地缓存:Caffeine
注册中心/配置中心:Nacos
分布式事务:Seata
网关:Gateway
Rpc框架:Dubbo
限流:Sentinel
消息队列:RocketMQ
文件存储:Minio
微服务一致性:Saga(AT)
很多小伙伴在学习完单体项目后会产生想要独立尝试做一个分布式项目的想法(我也是这样的)
但是说实话,分布式项目根本就不适合初学者一个人去做,这是分布式的性质所决定的
同时,无法避免的是,在大环境下,为了面试,我们不得不去做一些分布式项目
所以如何让初学者从零写一个自己的伪分布式项目呢
我这边的建议是先从业务开始
模块内的内容其实和写单体项目并没有很大的区别,而模块间通信,就是引入一些技术栈(RPC/MQ)的来解决的事情,这些都相对简单
但是涉及到分布式问题,这些就会相对较难,同时这一部分其实也不太会影响代码的正常运行小规模使用问题不大,但其实生产过程中小规模项目也不会用分布式架构
先让模块跑起来,再让各模块顺利沟通,最后再解决分布式的各种问题,这或许会是一个好的方案
未完待续......
如果您觉得对您有帮助的话可以点个star