栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

For...

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

For...

整理记录一些计算机知识点 电商项目 商城项目简介

项目主要实现了一个模拟京东商城的分布式秒杀系统,
主要使用到了 nacos,用于服务注册,和配置管理,fegin用于远程调用,网关用于路由,sentinel哨兵 用于服务降级熔断,redis用来作缓存,
秒杀商品上架流程:
设置定时任务上架需要秒杀的商品(分布式锁防止重复上架)
封装最新的秒杀商品信息到redis中 商品的基本信息,商品的随机码,结束时间
设置秒杀商品的分布式信号量作为库存扣减的信息
结束
秒杀:
立即抢购
判定登录
合法性校验:秒杀时间,随机码,对应关系,幂等性
获取信号量
创建秒杀号,用户,订单号,商品 ->发送MQ消息
->收货地址确认,支付确认 结束

秒杀系统的公平性

可以将一定时间内的下单的客户暂存,然后使用一个抽签算法,可以保证一定的公平性/ 不算一个好的办法,后续补充

RabbitMQ没有提供延迟队列的功能,那怎么办呢?

那就是!TTL+死信队列组合的方式,实现和延迟队列一样的效果。订单系统在用户下单后发送了一条订单信息到MQ交换机交换机把这条消息根据routing key分发到了一个设置了30分钟过期时间队列中,但是该队列没有消费者,所以这些消息终将过期当消息过期变成死信后,会被转发给该队列绑定的死信交换机并根据死信routing key最终被分配到了一个死信队列中死信队列是有消费者的,这些死信消息将被这些消费者获取之后执行对应的业务逻辑

Nginx

在项目里面的作用是搭建域名访问环境,不能把服务器的外网ip暴露给外界,容易被攻击 屏蔽内网服务器信息
nginx 是一个http服务器。可以将服务器上的静态文件展现给客户端。速度更快,并发量会更高
nginx是一个反向代理服务器,可以代理外部网络主机访问内部网络,
nginx实现均衡负载,通过算法来处理请求流量
实现虚拟主机,将多个网站部署在同一服务器上

并发量存在的瓶颈在哪

中间件的个数, 中间件的个数越多,网络交互损失越大,延迟越高并发量就越小
业务逻辑中,重复查表
静态资源没有分离
客户端没有开启缓存
调优:
nginx动静分离,将项目的所有静态资源都放到nginx里(指定返回规则)
提高jvm的内存配置
优化业务逻辑,用redis缓存热点数据,数据库查询次数
优化数据库,对经常查询的数据简历索引,避免全表查询

jmeter作用

可以实现对服务器、网络、对象模拟巨大的负载,测试强度和分析整体性能

ElasticSearch

是分布式的全文搜索引擎,解决海量数据中查询效率地下的问题
为啥要使用:因为在商城中的数据,将来会非常多,所以采用以往的模糊查询,会放弃索引,导致全表查询,效率很低,如果用ES做一个全文索引,可以提高查询速度。
es采用倒排索引;如查找某个字符, 正排索引是遍历所有的内容, 看哪些里面含有要查找的内容,而倒排索引是将文章内容进行分词之后, 类似于以词作为key, 文章的索引作为value来存储, 搜索的时候就可以以关键字作为key来获取了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/752257.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号