分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
最近一直在做一个电商项目,需要把原有单系统架构的项目,改造成基于服务的架构,SOA。
一、分层架构-总体图
1.服务提供方和服务调用方,通过接口交互,调用方并不需要知道怎么实现的。
2.层次划分
mapper:Mybatis接口映射,原子数据库操作
dao:数据访问层(或者换个更合适的名字)调用mapper,组装数据,比如商品详情信息,除了需要商品信息,还需要知道商品的品牌信息
service:业务逻辑层:订单支付,金额是否足够,是否能够参加这个优惠活动等
webservice: 由于我们的业务逻辑比较简单,直接把业务层的接口,稍微包装下,就暴露出去了,逻辑上可以说是一个层的。有些大型项目,可能把WebService作为service的上层,而非平级的。
3.同层之间不能相互调用,上层可以调用1个或多个下层的接口
4.面向接口编程
通过接口定义操作,不需要关注实现
二、分层架构-类图
1.以品牌Brand为例,针对外界3套系统,定义了3套WebService接口,FrontBrandService针对前端商城系统、MobileBrandService针对移动端App,BackendBrandService针对后端运营系统。
每个系统的接口,都是单独定义的,互补影响,前端商城系统调用方,只需要它应该有接口服务。
2.内部实现类BrandServiceImpl,一次性实现了3个接口,当然也可以定义3个实现类,分别实现。
三、系统架构图
1、接口服务,有商品、订单、用户等,每个服务都会针对3套系统,有3个接口实现。
2、接口服务,启动的时候,把服务信息注册到Zookeeper。
3、服务调用方,启动的时候,去Zookeeper查找服务。
4、服务调用方,比如前端商城系统,有自己的Controller和Service。
Controller响应请求,调用Service,在Service中调用WebService中的1个或多个服务,组装数据。
也就是说,服务调用方,基本没有业务逻辑,业务逻辑全部在接口提供方统一处理了。
另外,前端商城系统,虽说有自己的service,但是从实质上来说,这个地方的service和Controller都可以理解成是“展现层”的。
5.接口提供方,负责业务逻辑和底层实现,其它3个系统,只是响应URL,做下展示罢了。
个人观察
最近自己画了不少图,感觉画图比较费时间,但是效果会比较好,可以把总体的思路,清晰地展示出来。
具体到上面3个图,在做培训的时候,部分哥们有一些疑问,费了很大劲,才解释清楚。
对新人来说,反而更容易理解一些,因为他没有自己固有的思维定势,更容易接受新的架构思路。
怎么样,哥的架构设计还行吧。。。
感谢若干大牛对小弟的耐心指点。。。
有点挑战,做完了,会有很大进步。
本篇,以我亲自画的3个图,阐述一下架构设计。
本篇,以我亲自画的3个图,阐述一下架构设计。
一、分层架构-总体图
1.服务提供方和服务调用方,通过接口交互,调用方并不需要知道怎么实现的。
2.层次划分
mapper:Mybatis接口映射,原子数据库操作
dao:数据访问层(或者换个更合适的名字)调用mapper,组装数据,比如商品详情信息,除了需要商品信息,还需要知道商品的品牌信息
service:业务逻辑层:订单支付,金额是否足够,是否能够参加这个优惠活动等
webservice: 由于我们的业务逻辑比较简单,直接把业务层的接口,稍微包装下,就暴露出去了,逻辑上可以说是一个层的。有些大型项目,可能把WebService作为service的上层,而非平级的。
3.同层之间不能相互调用,上层可以调用1个或多个下层的接口
4.面向接口编程
通过接口定义操作,不需要关注实现
二、分层架构-类图
1.以品牌Brand为例,针对外界3套系统,定义了3套WebService接口,FrontBrandService针对前端商城系统、MobileBrandService针对移动端App,BackendBrandService针对后端运营系统。
每个系统的接口,都是单独定义的,互补影响,前端商城系统调用方,只需要它应该有接口服务。
2.内部实现类BrandServiceImpl,一次性实现了3个接口,当然也可以定义3个实现类,分别实现。
三、系统架构图
1、接口服务,有商品、订单、用户等,每个服务都会针对3套系统,有3个接口实现。
2、接口服务,启动的时候,把服务信息注册到Zookeeper。
3、服务调用方,启动的时候,去Zookeeper查找服务。
4、服务调用方,比如前端商城系统,有自己的Controller和Service。
Controller响应请求,调用Service,在Service中调用WebService中的1个或多个服务,组装数据。
也就是说,服务调用方,基本没有业务逻辑,业务逻辑全部在接口提供方统一处理了。
另外,前端商城系统,虽说有自己的service,但是从实质上来说,这个地方的service和Controller都可以理解成是“展现层”的。
5.接口提供方,负责业务逻辑和底层实现,其它3个系统,只是响应URL,做下展示罢了。
个人观察
最近自己画了不少图,感觉画图比较费时间,但是效果会比较好,可以把总体的思路,清晰地展示出来。
具体到上面3个图,在做培训的时候,部分哥们有一些疑问,费了很大劲,才解释清楚。
对新人来说,反而更容易理解一些,因为他没有自己固有的思维定势,更容易接受新的架构思路。
怎么样,哥的架构设计还行吧。。。
感谢若干大牛对小弟的耐心指点。。。
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow