架构图
不管是来自于客户端(PC或移动端)的请求,还是服务内部调用。一切对服务的请求都会经过Zuul这个网关,然后再由网关来实现 鉴权、动态路由等等操作。Zuul就是我们服务的统一入口。
配置
服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制
等功能。为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。
主要功能
身份认证与安全:识别每个资源的验证要求,并拒绝那些与要求不相符的请求。(对jwt鉴权)
动态路由:动态地将请求路由到不同的后端集群。
负载均衡和熔断
结合RSA的鉴权
授权中心的主要职责
功能需求
放入数据库
放入redis(采用)
流程图
这幅图主要描述了两个功能:新增商品到购物车、查询购物车。
新增商品:
无论哪种新增,完成后都需要查询购物车列表:
功能需求
表结构设计
parent和isparent字段是用来实现评论嵌套的。
实现
使用MongoDB存储评论,基本的CRUD。
需求
在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloudconfig ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。
使用SpringCloudBus来实现配置的自动更新。
组成结构
在spring cloud config 组件中,分两个角色,一是config server,二是config client。
Config Server是一个可横向扩展、集中式的配置服务器,它用于集中管理应用程序各个环境下的配置,默认使用Git存储配置文件内容,也可以使用SVN存储,或者是本地文件存存储
Config Client是Config Server的客户端,用于操作存储在Config Server中的配置内容。微服务在启动时会请求Config Server获取配置文件的内容,请求到后再启动容器
实现
创建配置中心,对Config Server进行配置,然后在其它微服务中配置Config Client。最后使用Github上的Webhooks进行配置的动态刷新,所以还要使用内网穿透工具,同时要在配置中心中添加过滤器,因为使用Webhooks提交请求时会加上一段Payload,而本地是无法解析这个Payload的,所以要将它过滤掉。
商品详情浏览量比较大,并发高,所以单独开启一个微服务用来展示商品详情,并且对其进行静态化处理,保存为静态html文件。在用户访问商品详情页面时,让nginx对商品请求进行监听,指向本地静态页面,如果本地没找到,才反向代理到页面详情微服务端口。
主要是对商品分类、品牌、商品的规格参数以及商品的CRUD,为后台管理提供各种接口。
主要接口有:
基本架构
主要功能就是对各种服务进行管理。
主要是对Elasticsearch的应用,将所有商品数据封装好后添加到Elasticsearch的索引库中,然后进行搜索过滤,查询相应的商品信息。
主要接口有:
秒杀的实现及其优化:
前端:秒杀地址的隐藏、使用图形验证码
后端:接口限流,使用消息队列,调用订单微服务执行下单操作。
TODO:需要改进~~~~~~~~~~~~~!!!!!!!!!!!!!
因为系统中不止注册一个地方需要短信发送,因此将短信发送抽取为微服务:leyou-sms-service
,凡是需要的地方都可以使用。
另外,因为短信发送API调用时长的不确定性,为了提高程序的响应速度,短信发送我们都将采用异步发送方式,即:
使用分布式文件系统FastDFS实现图片上传。
FastDFS架构
FastDFS两个主要的角色:Tracker Server 和 Storage Server 。
上传流程
下载流程
提供的接口:
在虚拟机中进行以下中间件的配置:
并将配置文件中所有和虚拟机相关的ip进行修改
本机中需要的配置:
具体请参照:https://blog.csdn.net/lyj2018gyq/article/details/83654179#2.1%20Nginx
我的版本是最老的一般,所以数据库可能会和新的不一致,关键就是在商品详情页面的显示上,可以参考我leyou-goods-web
中的写法,最终效果一致。
另外在数据库中又多了几张表:tb_address
、tb_seckill_order
、tb_seckill_sku
,地址表建议保留,其他的可以连同秒杀微服务一起删掉(如果你不需要的话)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。