自第一篇《 基于SpringCloud的Microservices架构实战案例-序篇》发表出来后,差不多有半年时间了,一直也没有接着拆分完,有如读本书一样,也是需要契机的,还是要把未完成的工作做完,虽然并不是什么经典应用,还是有必要将simplemall的形成过程拆解下,也便于对此案例的理解。

服务拆分具体拆分到多细,业内没有一个统一的标准。当然也不能为了拆分而拆分,还要依据具体的业务场景应用情况而定,读过《淘宝技术这十年》的朋友,相信对淘宝的技术演进有一个很直观的感受。虽然当时微服务的概念并不今天这般火热,但实际已经在生产环境中运行。

simplemall项目的业务背景基于简单的购物场景,也即是常见的电商业务。实现完备的电商业务流程非常复杂庞大,此项目仅中拆分出基础的简单的5个基础服务,用户模块、订单模块、支付模块、产品模块、消息模块。实际的业务应用中可能拆解的更加细致,比如产品服务中还可以细分出库存、促销、价格、产品分类、推荐等等,本项目仅以最简单的服务展现,以达成简单了解并使用spring cloud组件的目的。

全部模块基于SpringBoot,采用maven进行项目管理。

项目架构结构图如下:

基础业务服务分为:

  • account-service用户子服务

  • product-service产品子服务

  • payment-service支付子服务

  • order-service订单子服务

  • msg-service消息子服务

  • front-app业务前端展示

每个业务服务有自己的单独的DB,数据存储基于mysql 5.6+,sql文件夹下面存放着基础的初始化脚本,直接执行即可。每个服务连接db的配置依本地配置为准。

基础支撑服务分为:

  • admin-server服务监控

  • conf-server配置中心

  • eureka-server服务注册中心

  • hystrix-dashborad服务熔断监控面板

  • sleuth-server链接跟踪监控

  • turbine-server服务熔断集合监控

  • zuul-server网关服务器

  • common-module基础模块

必备服务是eureka-server,用于服务注册、发现。其余基础服务模块是慢慢演变优化加入进去的。

common-module模块中存放redis的连接配置及相关模块的实体。有朋友问entity为何存储在common模块中,此种做法有利有弊。好处是所有子模块直接依赖此common模块,可以拿到所以模块相关的实体及接口,弊端是服务增多时,Java类繁多庞大,会引入很多无关代码。比较常见的做法时,每个子服务模块中独立一个api模块,存放实体及对外的api接口。如下图:

小节一下:本文介绍了simplemall项目的代码结构,重点述说了下子服务的实体及接口代码的存储,后续深入具体模块详细介绍。

源码地址:https://github.com/backkoms/simplemall

扩展阅读:

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

基于SpringCloud的Microservices架构实战案例-架构拆解的更多相关文章

  1. 基于SpringCloud的Microservices架构实战案例-在线API管理

    simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于 ...

  2. 基于SpringCloud的Microservices架构实战案例-配置文件属性内容加解密

    使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...

  3. 基于SpringCloud的Microservices架构实战案例

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  4. 基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例

    QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册.登录.商品列表展示.商品详情展示.订单创建.详情查看.订单支付.库存更新等等. 每个业务服务采用独立的M ...

  5. 基于SpringCloud的微服务架构实战案例项目

    QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册.登录.商品列表展示.商品详情展示.订单创建.详情查看.订单支付.库存更新等等. github源码地址:h ...

  6. springcloud与docker微服务架构实战--笔记

    看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...

  7. 【课程分享】基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构、自己定义工作流)

    基于plusgantt的项目管理系统实战开发(Spring3+JDBC+RMI的架构.自己定义工作流) 课程讲师:张弘 课程分类:Java 适合人群:中级 课时数量:37课时 用到技术:Spring  ...

  8. 基于SpringCloud分布式架构

    基于SpringCloud分布式架构 为什么要使用分布式架构 Spring Cloud 专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖 分布式/版本化配置 服务注册和发现 路由 Servic ...

  9. 基于springCloud的分布式架构体系

    Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...

随机推荐

  1. mage J和Graphpad如何对Western Blot条带灰度分析

    原文 mage J和Graphpad如何对Western Blot条带灰度分析 WB是研究蛋白表达的一个经典方法.对于一些时间点或者是不同组织蛋白表达量的分析就涉及到量的变化.一些凝胶成像软件带有此分 ...

  2. 解决iconv函数无法转换某些中文的问题

    原文: 解决iconv函数无法转换某些中文的问题 请先看以下代码,这个页面是GB2312编码的: $str = '陶喆';echo 'gb2312-'.$str;echo '<br />' ...

  3. JAVA SHA1加密

    public static String getSha1(String str){ if(str==null||str.length()==0){ return null; } char hexDig ...

  4. Qt发展历史及其特点简介(没有哪一种方案能够独霸Windows)

    Qt 是一个跨平台的C++应用程序框架,支持Windows.Linux.Mac OS X.Android.iOS.Windows Phone.嵌入式系统等.也就是说,Qt 可以同时支持桌面应用程序开发 ...

  5. Socket2实现tcp端口扫描

    主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...

  6. 【Linux】Linux下跟踪记录每个用户对主机服务器进行的操作

    linux中跟踪每个用户对主机的操作,看有人之前已经写过如此shell,可直接参考,参考如下: 1.记录操作信息 这个脚本需添加至/etc/profile 脚本如下: history USER_IP= ...

  7. Python字典的合并与拆分

    1.字典的合并 dict1={1:[1,11,111],2:[2,22,222]} dict2={3:[3,33,333],4:[4,44,444]} dictMerged2=dict(dict1, ...

  8. Netty源码分析--Reactor模型(二)

    这一节和我一起开始正式的去研究Netty源码.在研究之前,我想先介绍一下Reactor模型. 我先分享两篇文献,大家可以自行下载学习.  链接:https://pan.baidu.com/s/1Uty ...

  9. vue结合Ant Design实现后台系统的权限分配(支持无限子级嵌套)

    最近公司的业务需要,要做一个后台管理系统的管理系统类似于这样子 功能需求如下: 左边是权限菜单,右边对应的是具体权限. 1.父级权限菜单选中,父级权限菜单的权限包括其中所有子级权限菜单的权限也要选中, ...

  10. 转载 make版MYsql 5.5.13

    使用cmake安装mysql5.5.132014-04-09 12:59:42 分类: Mysql/postgreSQL 原文地址:使用cmake安装mysql5.5.13 作者:isqlw 安装cm ...