基于SpringCloud的Microservices架构实战案例
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
QuickStart
基于SpringCloud架构体系实现,简单购物流程实现,满足基本功能:注册、登录、商品列表展示、商品详情展示、订单创建、详情查看、订单支付、库存更新等等。目前迭代第二版本,服务注册、发现、监控及分布式配置等基础服务已完成,购物流程可以通过Swagger提高的API顺序完成。后续将持续更新维护中。
源码地址:https://github.com/backkoms/simplemall
每个业务服务采用独立的MYSQL数据库,初期考虑用到如下组件:
服务注册、发现: eureka
配置管理:spring config , spring security
集群容错: hystrix(待实现)
API网关: zuul(待实现)
服务负载:feign+ribbon
api文档输出:swagger2
代码简化:lombok
消息队列:rabbitmq
分布式锁: redis (待实现)
链路跟踪:spring cloud sletuh ->zipkin
安全认证:oauth2/JWT(待实现)
服务监控:spring-boot-admin
各模块介绍
模块名称 | 端口 | 简介 |
---|---|---|
admin-server | 9002 | 服务监控中心,监控所有服务模块 |
conf-server | 9004 | 分布式配置中心,结合spring-security/rabbitmq同时使用 |
eureka-server | 9003 | 服务注册中心,提供服务注册、发现功能 |
sleuth-server | 9001 | SpringCloud实现的一种分布式追踪解决方案,兼容Zipkin |
zuul-server | 9005 | API网关模块 |
account-service | 8080 | 用户服务,提供注册、登录、地址等服务 |
product-service | 8081 | 商品服务,提供商品列表、详情、库存更新等服务 |
payment-service | 8082 | 支付服务,支付记录 |
order-service | 8083 | 订单服务,提供订单创建、详情、状态变更 |
msg-service | 8084 | 消息处理服务 |
front-app | 8088 | 前端服务,结合swagger2提供API管理 |
快速上手
1、先启动admin-server,eureka-server,conf-server三个基础服务
2、再依次启动payment/order/product/account基础业务服务
3、最后启动front-app服务,打开浏览器,输入http://localhost:8088/swagger-ui.html ,根据流程API依次可使用功能
4、后续有时间再提供页面,基于VUE2+BOOTSTRAP,将流程串起来
Release Version
v2.1
Release Date : 2017-08-29
1、引入swagger2,完成API接口文档管理完成整体业务数据流程流转
2、通过API接口完成整体业务数据
3、基于Spring-cloud-config引入配置中心,结合security加强安全配置,同时引入bus-amqp(rabbitmq)高效更新配置内容[配置中心数据结合sc-cloud-repo工程使用]
4、引入feign,满足客户端调用服务端的服务
5、引入ribbon,可以满足客户端的负载均衡调用后端服务
v1.0
Release Date : 2017-08-17
1、完成基本服务及业务子模块服务的搭建 ,业务子模块可正常运行
2、完成SpringBootAdmin业务模块的运行监控,及Eureka服务运行,满足各业务基础服务的注册、发现功能
3、可通过Front-app端,借助Feign组件发起login/signup等功能的 简单测试运行。
下一版本,将基于此版本之上,继续完善完整的购物实现,包括简单的页面、api管理/调用等等。
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);
基于SpringCloud的Microservices架构实战案例的更多相关文章
- 基于SpringCloud的Microservices架构实战案例-在线API管理
simplemall项目前几篇回顾: 1基于SpringCloud的Microservices架构实战案例-序篇 2基于SpringCloud的Microservices架构实战案例-架构拆解 3基于 ...
- 基于SpringCloud的Microservices架构实战案例-配置文件属性内容加解密
使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些.打开application.properties或application.yml,比如mysq ...
- 基于SpringCloud的Microservices架构实战案例-架构拆解
自第一篇< 基于SpringCloud的Microservices架构实战案例-序篇>发表出来后,差不多有半年时间了,一直也没有接着拆分完,有如读本书一样,也是需要契机的,还是要把未完成的 ...
- 基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例
QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册.登录.商品列表展示.商品详情展示.订单创建.详情查看.订单支付.库存更新等等. 每个业务服务采用独立的M ...
- 基于SpringCloud的微服务架构实战案例项目
QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册.登录.商品列表展示.商品详情展示.订单创建.详情查看.订单支付.库存更新等等. github源码地址:h ...
- 基于springCloud的分布式架构体系
Spring Cloud作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面,之前也写过一些关于Spring Cloud文章,主要偏重各组件的使用,本次分享主要解答这两个问题:Spring Cl ...
- 分布式事务之——tcc-transaction分布式TCC型事务框架搭建与实战案例(基于Dubbo/Dubbox)
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/73731363 一.背景 有一定分布式开发经验的朋友都知道,产品/项目/系统最初为了 ...
- springcloud与docker微服务架构实战--笔记
看了<微服务那些事>之后,Spring boot和Spring Cloud的关系理清楚了,Spring cloud各个模块的作用也了解了. 但是,Spring cloud 与Docker的 ...
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测.车距计算等基本功能,作为辅助驾驶入门级 ...
随机推荐
- 【必须知道】Enum_Flags
[Flags] enum AnyThings{ A=1, B=2, C=4, D=8 } 枚举赋值必须是2^n才可以,目的是实现他们的二进制表示中的 1 ,不要重叠,如 1=0001 2=0010 ...
- 给 Web 开发人员推荐的通用独立 UI 组件(二)
现代 Web 开发在将体验和功能做到极致的同时,对于美观的追求也越来越高.在推荐完图形库之后,再来推荐一些精品的独立 UI 组件.这些组件可组合在一起,形成美观而交互强大的 Web UI . 给 We ...
- DELPHI之关于String的内存分配(引)
在函数.过程或者方法中定义一个字符串变量时,由于我们知道在函数.过程或者方法中定义的变量为局部变量,它的内存 是在栈中分配的,但是这里有个小细节我们要注意,对于一个局部的字符串变量,它的大小为4字节, ...
- 使用PNG实现半透明的窗体(使用GDI+)
Delphi中标准控件是不支持png图片的,据说从Window2000后增加gdiplus.dll库处理更多的gdi图像,其中包括png. 关键的几个api GdipCreateBitma ...
- Qt给应用程序添加版本信息(对rc文件的设置,可利用QT内置变量)
作者:daodaoliang 时间:2016年7月11日16:12:09 版本:V 0.0.4 邮箱:daodaoliang@yeah.net 0. 环境说明 系统环境: win10 64位 Qt环境 ...
- 亿方云(用电话或者qq沟通是远远不够的,容易忘还不能反复催,最好的方式就是指定一个平台,团队内的人定期查看最新记录)
作者:城年链接:http://www.zhihu.com/question/20579359/answer/106319200来源:知乎著作权归作者所有,转载请联系作者获得授权. 更新,文字发完后,好 ...
- python列表和字典的迭代
1.列表和字典的迭代 程序开发中,对列表和字典进行迭代是非常常见的事情. 字典一般可以选择对key进行迭代.对value迭代和对key/value一起迭代 >>> d = {'a': ...
- jQuery框架 的四个入口函数
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 你所忽略的,覆盖equals时需要注意的事项《effective java》
我们都知道Object的equals的比较其实就是==的比较,其实是内存中的存放地址的比较.正常逻辑上:类的每个实例本质上都是唯一的. 在工作中我们实际的业务逻辑往往有可能出现一些相对特殊的需求需要对 ...
- SQL Server 2012链接服务器
第一步,在服务器对象,链接服务器那里新建链接服务器:输入要链接服务器的IP地址. 第二步,安全性输入连接数据的用户名和密码. 第三步,验证是不可以打开链接服务器库的表名,视图等数据. 第四步,如果要查 ...