专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

阿里开源COLA4。0Part3

  COLA分层架构
  COLA4。0架构分成COLA架构和COLA组件两个部分:COLA架构:关注应用架构的定义和构建,提升应用质量。COLA组件:提供应用开发所需要的可复用组件,提升研发效率。
  COLA4。0框架
  COLA架构:关注应用架构的定义和构建,提升应用质量。领域模型对设计能力要求很高,没把握用好,一个错误的抽象还不如不抽象,宁可不要用,也不要滥用,不要为了DDD而DDD。
  COLA架构各个包结构的简要功能描述,如下表所示:
  层次
  包名
  功能
  必选
  Adapter层
  web
  处理页面请求的Controller
  否
  Adapter层
  wireless
  处理无线端的适配
  否
  Adapter层
  wap
  处理wap端的适配
  否
  App层
  executor
  处理request,包括command和query
  是
  App层
  consumer
  处理外部message
  否
  App层
  scheduler
  处理定时任务
  否
  Domain层
  model
  领域模型
  否
  Domain层
  ability
  领域能力,包括DomainService
  否
  Domain层
  gateway
  领域网关,解耦利器
  是
  Infra层
  gatewayimpl
  网关实现
  是
  Infra层
  mapper
  ibatis数据库映射
  否
  Infra层
  config
  配置信息
  否
  ClientSDK
  api
  服务对外透出的API
  是
  ClientSDK
  dto
  服务对外的DTO
  是
  COLA组件:提供了一些框架级别的功能,提供应用开发所需要的可复用组件,提升研发效率。
  组件名称
  功能
  版本
  依赖
  colacomponentdto
  定义了DTO格式,包括分页
  1。0。0
  无
  colacomponentexception
  定义了异常格式,主要有BizException和SysException
  1。0。0
  无
  colacomponentstatemachine
  状态机组件
  1。0。0
  无
  colacomponentdomainstarter
  Spring托管的领域实体组件
  1。0。0
  无
  colacomponentcatchlogstarter
  异常处理和日志组件
  1。0。0
  exception,dto组件
  colacomponentextensionstarter
  扩展点组件
  1。0。0
  无
  colacomponenttestcontainer
  测试容器组件
  1。0。0
  无
  参考:《COLA4。0:应用架构的最佳实践》COLA框架职责划分
  COLA框架主要分为适配层、应用层、Client模块、领域层、基础设施层
  分层架构如下:
  COLA4。0分层架构
  分包结构如下:
  COLA4。0包结构模型
  1)适配层(AdapterLayer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统BS系统而言,adapter就相当于MVC中的controller;
  适配层代码结构
  2)应用层(ApplicationLayer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层;
  应用层代码结构
  3)Client模块(ClientModule):包含的代码应该是常见的服务接口Facade和DTO数据传输对象,如API、DTO、领域事件、Command和Query对象等等。
  Client模块
  4)领域层(DomainLayer):主要是封装了核心业务逻辑,并通过领域服务(DomainService)和领域对象(DomainEntity)的方法对App层提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;
  领域层包结构
  5)基础实施层(InfrastructureLayer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的App层和Domain层使用。
  基础实施层
  6)启动模块(StartModule):SpringBoot的启动类,应用入口。没有任何逻辑,只需要配置application。properties配置文件。
  启动模块CQRS架构模式
  CQRS架构模式,在DDD中是一种很常见的模式,它的用途在于将Command与Query功能进行分离,让一些复杂的查询摆脱领域模型的限制,以更为简单的DTO形式展现查询结果。服务可以独立部署,也可以拆分部署。数据库可以使用一个,也可以读写分离。
  CQRS架构
  在COLA4。0中,已经移除了CommandBus和QueryBus的处理,进一步简化了COLA架构。业务调用时序图
  我们通过分三个场景的UML时序图描述一下各模块之间的调用关系。主要差异在于应用层中的Command或Query执行器的处理过程。
  场景一:Command或Query执行器直接调用Gateway接口,处理业务请求。
  UML时序图:场景一
  场景二:Command或Query执行器,调用领域服务(DomainService),然后领域服务调用Gateway完成业务请求。
  UML时序图:场景二
  场景三:Command或Query执行器直接调用infrastructure层中定义的Mapper,完成业务逻辑处理。
  UML时序图:场景三
  下面说明整体调用过程和注意事项。Adapter接收CmdQry对象或者参数列表(RequestParam)。如果请求参数是参数列表,则构造CmdQry对象,然后调用AppService接口。App服务接收CmdQry对象,然后调用CmdQryExecutor(执行器),如上图所示,分为以下三种场景:
  2。1。CommandExecutor可以通过领域实体方法,以及Gateway接口,实现简单业务编排,完成业务请求。
  2。2。或者通过调用领域服务(DomainService)实现复杂业务逻辑处理,然后在领域服务通过Gateway访问数据的持久化。
  2。3。或者直接跳过Domain层,在QryExecutor中调用infrastructure中的Mapper接口,访问数据库持久化操作。App服务、CommandExecutor(命令执行器)以及DomainSerivce都是无状态服务,本身不存储任务信息。App服务负责实现对外暴露的API服务,然后调用CommandExecutor。DomainService负责封装一个领域中跨实体操作的业务逻辑。AppService负责封装跨领域实体操作的业务逻辑。Gateway接口用来隔离技术实现细节,GatewayImpl实现领域层定义的Gate接口,负责数据的CRUD操作,数据库测可以是MySQL、NoSql、Elasticsearch、Redis、甚至HadoopHBase等分层架构、包结构、业务调用关系
  下图将COLA分层架构、包结构、业务调用关系,整合在一张图中。
  COLA分层架构、包结构、以及业务调用关系图
  代码参考:《COLA4。x架构入门和项目实践》

17家房企跌出财富中国500强,谁是第一?发展最稳定的是谁?文咕哒2022年财富500强榜单出炉,其中,中石化中石油中建仍位居前三,中国平安排名第四,仍是非国有企业第一位。两家民营上市企业京东和阿里巴巴的排名均有提升,其中京东升至第7位,首痛心!暑期刚开始,18名孩子不幸遇难!据统计全球每年因为溺水失去生命的人约有37。2万在我国,溺水一直都是儿童和青少年意外伤害的主要死因更加值得注意的是随着夏季的到来溺水事故也进入高发期最近就发生多起触目惊心的学生溺水日本男子天生没有四肢,靠一支笔成为全民偶像,恋上20岁混血少女2007年3月19日,日本东京都杉并区立杉并第四小学迎来了一位新的老师,同学们都对这位特殊的新老师好奇不已。只见这个新老师穿着一身帅气的黑色西装,大概只有二十多岁,脸上一直挂着积极老婆出差,视频通话时一直拿着勺子这是什么意思?哈哈哈哈哈我就知道它离不了电,没电它也一样是没用的。唐僧其实很想留下来陪女儿国国王。刘强东你藏得好深呀!这么洁白的牙齿,怎么会有口腔溃疡?谈了三年的网友,竟然不知道是哪个城市的,真是悲哀呀。警方官微求曝光这小子,网友却追问有女朋友吗?昨天中午,北京市公安局官微平安北京发帖,称求大家一起曝光这小子。附有四张图片。第一张,是这小子的朋友圈,说他第一次坐警车,因为他在地铁上看到一猥琐男偷拍女生,于是他上前控制住,后来关晓彤要进去陪吴亦凡了?还不止一个罪名,工作室赶紧回应关晓彤要进去陪吴亦凡了?还不止一个罪名,工作室赶紧回应7月15号晚上,微博热搜再次出现爆文,可是当我们点进去看的时候,发现只有简短的工作室回应的几句话,这不紧就勾起了各位读者的好奇杜海涛停工半年多终于营业,公园顶烈日健身录节目,瘦到容光焕发7月16日,有网友分享出在北京偶遇杜海涛录节目的画面,并附文杜海涛瘦了。停工半年多的海涛终于营业,引来不少网友关注。当日,现身公园的海涛身穿浅蓝色T恤搭配白色短裤,衣领处别着黑色小作为一名鉴黄师,工作时要经历些什么?网友看完后泪目导语鉴定师这个职业很神秘,但也很直接,我们对鉴定师的工作一无所知,但对鉴定师的工作,我们还是很清楚的。事实上,黄药师并不是我们在电视上看到的那样,他们穿着一身威风凛凛的制服,对着大网友曝出陈某志出国外逃,母亲是公安厅政治部副主任,真相是啥?唐山事件已经过去一个多月,但关于这件事的讨论依然没有停止。原本此事已经逐渐尘埃落定,但谁知又有风波掀起,此事再次在网上引起了热议。一位网名叫听雨廖书胜的网友,在网上写了一段话,顿时王毅同叙利亚外长米格达德视频会晤2022年7月15日,国务委员兼外长王毅同叙利亚外长米格达德举行视频会晤。王毅表示,中方愿同叙方共同落实好两国元首重要共识,推动中叙关系持续稳定健康发展,将继续为叙维护主权独立领土神回复我跟领导的聊天记录,你们看看有什么问题吗?在您阅读本文前,您可以点击关注,以后您就可以免费收到各种爆笑内容。感谢您的关注。神回复沙雕问题从被问及身高这一问题开始男的每沉默秒就从减cm沙雕问题我有个疑惑,为什么三国演义里,两
二十大特刊欠发达省份的脱贫故事中国经济周刊记者贾璇北京报道过去是树木被砍光水土流失光姑娘也跑光的三光村,现在是光荣脱贫光彩夺目光明前景的新三光村。这是党的二十大代表来自云南省西畴县蚌谷乡海子坝村村民谢成芬,讲述散文丨王亮古城的秋古城的秋文王亮零陵,是一座有着两千多年悠久历史的古城,也是国家级历史文化名城,岁月为它增添了许多神秘又赋予了独特的魅力。生于斯长于斯,自然对它有着一种如艾青所写因为我对这土地爱得深美景山东无棣古城融合齐燕河海等多种文化的千年古城美景山东,精彩无限。无棣古城位于山东省滨州市无棣县,规划总面积为3。1平方公里,现为国家AAAA级旅游景区。无棣是山东的千年古县之一。无棣一词最早见于左传僖公四年传。公元前656年荆州古城外一条道路将打通,老南门要大变样提到荆州老南门,你第一印象是什么?是觉得这里非常热闹很有烟火气呢?还是觉得这里有点脏乱差,跟古城风貌不协调。可能从不同的角度,你会得出不一样的结论。老南门,大名叫南纪门,城门上原本神秘银杏即将蜕变,哪张才是你的菜在曲江楼观生态文化旅游度假区宗圣宫内有一棵老子手植的银杏树据传,这棵银杏有2500多年树龄,且银杏树曾经遭遇火灾,树干中心部分烧毁中空。然而,即便如此,他依旧屹立不倒,年年叶落长安肇庆有座神秘岛屿800年来,不与外通,保留了古朴文化国庆小长假错峰出游,避开人流量大的景点和高速,从佛山出发,这次走到肇庆砚洲岛,自驾只需一小时,一路畅通无阻,骑车到农田边一片成熟的稀谷等着农民收成明清时期,百姓为纪念包公,在岛上修神秘的第六感头条创作挑战赛众所周知,人有五感,即视觉听觉嗅觉味觉触觉,但有人认为人类其实还具有第六种感觉,利用这种感觉,可以观察到一些平时看不见的事物,例如灵异事件,然而这种说法着实天马行空,嚣张将军当丞相后,要求娶皇后为妻,皇后我老了,把女儿嫁给你元朝是中国历史上最强大而又最缺乏存在感的朝代,这个威震世界的庞大王朝仅仅存在了98年的时间。紊乱的皇位继承,频繁的政治斗争,残酷的等级制度是这个王朝留给世人的最深印象。这个王朝发生10。27早盘预案一股神秘的东方力量收复大盘3000点?今天市场普涨行情,涨停家数也突破近期新高,达到80家市场一片欣欣向荣,我大宵哥更是在早盘就喊出一股刚强的力量收复3000点但是我们应该坚决不做市场追涨喊跌的弱者盲目跟从只会让我们的不知火舞新皮肤绯月行上线,神秘商店上新,史诗皮肤宝箱名单出炉你好,我是小酒。王者荣耀七周年前的最后一次更新,放出了很多的东西,包括了七周年的奖励,以及刚曝光的新皮肤上线。不知火舞的新皮肤绯月行,终于正式爆料。海报中,一轮红月,还有很多小妖都赵丽颖一袭吊带小黑裙,大秀完美身材,神秘优雅,美呆了10月26日赵丽颖现身CL彩妆直播,一袭镶钻黑色吊带小黑裙,满满的性感诱惑!直播现场,赵丽颖虽然一身黑色性感装扮,可时不时低头抿嘴浅笑,又透露着点儿娇羞可爱!直播结束后,赵丽颖工作
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网