论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
最全Java开发架构篇:领域驱动设计架构基于SpringCloud ...
最全Java开发架构篇:领域驱动设计架构基于SpringCloud搭建微服务,透彻分 ...
小秦哥
金牌会员
|
2024-10-7 11:54:42
|
显示全部楼层
|
阅读模式
楼主
主题
801
|
帖子
801
|
积分
2403
最后
这份清华大牛整理的进大厂必备的redis视频、口试题和技术文档
祝大家早日进入大厂,拿到满意的薪资和职级~~~加油!!
感谢大家的支持!!
本文已被CODING开源项目:【一线大厂Java口试题剖析+核心总结学习条记+最新解说视频+实战项目源码】收录
需要这份体系化的资料的朋侪,可以点击这里获取
======
微服务不是泥球小单体,而是具备更加清晰职责界限的完整一体的业务功能服务。领域驱动设计的头脑通过Domain的功能域设计,可以把核心功能与支撑功能很好的区分开。而在MVC的设计模式尝尝是把所有的;数据服务、定义的属性类、提供的功能都在一条线上,这样是非常快速的开发方式但在作为服务部署时候却很贫苦。
按照不同的业务场景可能设计出软件在数据库利用上会有单库单表大概分库分表,假如是一个体量足够需要分库分表设计的体系,在扩容时候它是否能满足你的需求包括;
核心盘算不涉及库扩容,但是体系功能都在一起怎么办,已扩容都扩容了很浪费
所有的扩容都涉及到数据库连接数增加,但并不是每个行为都直到达所有库表
持续发展的业务会带来数据激增,将来怎么举行扩展,重新洗数据并不是很好的选择
那么实际开发大泥球架构时,不只是会遇到上面的问题,还可能会遇到工期很赶加个人也不提拔效率,反复交接代码扶不过三代等等,因此我们将服务拆分为独立单体具备此核心域完整功能的体系是非常须要的。
如图,是微服务数据库利用的一种头脑,我们希望路由层从最开始就被执行,用户分群动态扩展
二、案例目的
======
本案例通过利用SpringCloud将我们的服务架构扩展为通过路由调用的微服务
首先通过Eureka作为服务注册与发现中央
然后利用Feign模式作为调用API接口
最后依赖于zuul设置路由转发功能
为了方便测试,本案例会在itstack-demo-ddd-03中建4个工程;itstack-demo-ddd-case{基于DDD的微服务}itstack-demo-ddd-eureka-server{服务注册与发现}itstack-demo-ddd-feign{调用方,通过API接口调用}itstack-demo-ddd-zuul{网关路由组件}
三、开发情况
======
jdk1.8
springboot 2.0.6.RELEASE 以及SpringCloud相干服务
idea + maven
四、代码示例
======
1. itstack-demo-ddd-case | 基于DDD的微服务 {本段代码在上一章节已经演示}
=====================================================
itstack-demo-ddd-case
└── src
├── main
│ ├── java
│ │ └── org.itstack.demo
│ │ ├── application
│ │ │ ├── MallRuleService.java
│ │ │ └── MallTreeService.java
│ │ ├── domain
│ │ │ ├── rule
│ │ │ │ ├── model
│ │ │ │ │ ├── aggregates
│ │ │ │ │ │ └── UserRichInfo.java
│ │ │ │ │ └── vo
│ │ │ │ │ ├── DecisionMatter.java
│ │ │ │ │ ├── EngineResult.java
│ │ │ │ │ ├── TreeNodeInfo.java
│ │ │ │ │ ├── TreeNodeLineInfo.java
│ │ │ │ │ └── UserSchool.java
│ │ │ │ ├── repository
│ │ │ │ │ └── IRuleRepository.java
│ │ │ │ └── service
│ │ │ │ ├── engine
│ │ │ │ │ ├── impl
│ │ │ │ │ └── EngineFilter.java
│ │ │ │ ├── logic
│ │ │ │ │ ├── impl
│ │ │ │ │ └── LogicFilter.java
│ │ │ │ └── MallRuleServiceImpl.java
│ │ │ └── tree
│ │ │ ├── model
│ │ │ │ ├── aggregates
│ │ │ │ │ └── TreeCollect.java
│ │ │ │ └── vo
│ │ │ │ ├── TreeInfo.java
│ │ │ │ └── TreeRulePoint.java
│ │ │ ├── repository
│ │ │ │ └── ITreeRepository.java
│ │ │ └── service
│ │ │ └── MallTreeServiceImpl.java
│ │ ├── infrastructure
│ │ │ ├── common
│ │ │ │ └── Constants.java
│ │ │ ├── dao
│ │ │ │ ├── RuleTreeDao.java
│ │ │ │ ├── RuleTreeNodeDao.java
│ │ │ │ └── RuleTreeNodeLineDao.java
│ │ │ ├── po
│ │ │ │ ├── RuleTree.java
│ │ │ │ ├── RuleTreeConfig.java
│ │ │ │ ├── RuleTreeNode.java
│ │ │ │ └── RuleTreeNodeLine.java
│ │ │ ├── repository
│ │ │ │ ├── cache
│ │ │ │ │ └── RuleCacheRepository.java
│ │ │ │ ├── mysql
│ │ │ │ │ ├── RuleMysqlRepository.java
│ │ │ │ │ └── TreeMysqlRepository.java
│ │ │ │ ├── RuleRepository.java
│ │ │ │ └── TreeRepository.java
│ │ │ └── util
│ │ │ └── CacheUtil.java
│ │ ├── interfaces
│ │ │ ├── dto
│ │ │ │ ├── DecisionMatterDTO.java
│ │ │ │ └── TreeDTO.java
│ │ │ └── DDDController.java
│ │ └── DDDApplication.java
│ └── resources
│ ├── mybatis
│ └── application.yml
└── test
└── java
└── org.itstack.demo.test
└── ApiTest.java
2. itstack-demo-ddd-eureka-server | 服务注册与发现
============================================
itstack-demo-ddd-eureka-server
└── src
├── main
│ ├── java
│ │ └── org.itstack.demo
│ │ └── EurekaServerApplication.java
│ └── resources
│ └── application.yml
└── test
└── java
└── org.itstack.demo.test
└── ApiTest.java
EurekaServerApplication.java | 启动服务
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run( EurekaServerApplication.class, args );
}
}
application.yml | 服务配置
server:
port: 8989
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http:// e u r e k a . i n s t a n c e . h o s t n a m e : {eureka.instance.hostname}: eureka.instance.hostname:{server.port}/eureka/
spring:
application:
name: itstack-demo-ddd-eureka-server
3. itstack-demo-ddd-feign | 调用方,通过API接口调用
==========================================
itstack-demo-ddd-feign
└── src
├── main
│ ├── java
│ │ └── org.itstack.demo
│ │ ├── domain
│ │ │ └── TreeDTO.java
│ │ ├── service
│ │ │ └── MallService.java
│ │ ├── web
│ │ │ └── FeignController.java
│ │ └── FeignApplication.java
│ └── resources
│ └── application.yml
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为本身想要的与本身所学的匹配不上,这也就意味着本身学得远远不敷。无论是学习还是工作,都应该有主动性,所以假如拥有大厂梦,那么就要本身努力去实现它。
最后祝愿各位身材健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东口试题答案整理在了PDF文档里
本文已被CODING开源项目:【一线大厂Java口试题剖析+核心总结学习条记+最新解说视频+实战项目源码】收录
需要这份体系化的资料的朋侪,可以点击这里获取
体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东口试题答案整理在了PDF文档里
[外链图片转存中…(img-NZtro6CZ-1715569730386)]
[外链图片转存中…(img-EVRI7oC7-1715569730386)]
[外链图片转存中…(img-lvy9MAbC-1715569730386)]
本文已被CODING开源项目:【一线大厂Java口试题剖析+核心总结学习条记+最新解说视频+实战项目源码】收录
需要这份体系化的资料的朋侪,可以点击这里获取
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
小秦哥
金牌会员
这个人很懒什么都没写!
楼主热帖
Python教程(5)——Python的第一个程序 ...
Kubernetes(k8s)安装以及搭建k8s-Das ...
网易云信实时视频直播在TCP数据传输层 ...
〖Python接口自动化测试实战篇⑤〗- 接 ...
从 Stream 到 Kotlin 再到 SPL
海量监控数据处理如何做,看华为云SRE ...
java递归简介说明
开发一个二方包,优雅地为系统接入ELK ...
day07-
Redis设计与实现3.1:主从复制 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表