学习乐优商城中遇到的坑

面试(三)针对乐优项目提出问题2 前言 本章主要讲述根据乐优商城项目,面试可能会问到的一些问题 问题 1.你如何理解分布式服务 我们的项目就是分布式服务,按照自己的话来说,就是把核心业务提取出来,例如订单管理,购物车管理都需使用商品管理的业务,只需要商品管理自己去对数据库进行增删改查,而购物车和订单管理直接调用商品管理即可. 这样做的优点在于:将基础服务进行提取,系统间相互调用,提高了代码的复用和代码的开发效率。 但也存在着缺点:... 阅读详情

本人暑假期间学习了乐优商城这个项目,历时二十天,遇到了许多的麻烦,应该会有挺多人遇到。所以想记录一下,让大家跳坑。

首先,我建议jar包的版本,都选择和老师的一样,不然会出现一些莫名奇妙的报错。

在本项目进行到在liunx装软件的时候,如果装不上或者本机连接不上,可以选择装在本机,或者换成和老师版本一样的虚拟机,虚拟机上记得装对应的jdk

https://blog.youkuaiyun.com/u010590120/article/details/94736800 安装jdk教程

1.maven下载jar包过慢

可以选择换成阿里云的镜像

  <mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>
    <url>https://maven.aliyun.com/repository/public</url>
  </mirror>
</mirrors>

在这里插入图片描述

在这里插入图片描述

2.mysql的版本必须要5.6不然导入heima.sql会出错

安装教程

https://blog.youkuaiyun.com/y5946/article/details/78434525

3.day14的组织商品详情页详情页的 ,查询特殊的规格参数 方法List params = this.specificationClient.queryParams(null, spu.getCid3(), false, null); 这个方法,第三个参数为false,第四为null,而笔记上是第三个null,第四个为flase,导致查出来的商品规格参数名称不匹配

4. 整合rabbitmq出现 java.util.concurrent.TimeoutException异常

需要在window的etc/hosts文件下配置如下:

127.0.0.1 localhost RabbitMQ服务IP地址 主机名

主机名即是RabbitMQ服务IP地址那台服务器的主机名

示例: 127.0.0.1 localhost 192.168.10.125 Sky

修改的时候要管理员用户打开,并且把只读去掉

5.org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect

这个错误是我idea连接liunx上的rbbitMQ报的错,浏览器能访问到
解决办法: 在本机安装rbbitmq即可,本机安装很简单,一直下一步就完事了
下面链接是和老师一样的版本

https://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/

6.Error creating bean with name ‘eurekaAutoServiceRegistration’: Singleton bean creation not allowed while singletons

这个错误,有可能是端口被占用
window+R键,然后输入cmd点击确定
查看8083端口被占用的进程
netstat -aon|findstr “8083”
taskkill /pid 26476 /f

https://blog.youkuaiyun.com/Ydada_/article/details/102795067

7.day19下单Long类型数据返回前台js出现精度损失问题,订单号精度丢失的问题

老师教的解决办法是重写axios对响应的处理回调函数
{
transformResponse: [
function(data){
return data;
}
]
}

其实我们只需要在订单实体的订单id字段上加一个注解就行了
在这里插入图片描述

@Id
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long orderId;// id

8.Access to XMLHttpRequest athttp://api.leyou.com/api/item/category/list?pid=0

访问页面的时候注意不要带端口号访问
比如http://manage.leyou.com:9001/#/index/dashboard
这样访问会出现跨域问题,你写了配置类也会报错。直接域名manage.leyou.com访问

p88插入"黑马"在数据库变成??的,有两种解决方法:①改变自己数据库的编码,改为默认的GBK编码,这个不推荐,②在yml文件中连接数据库的配置中url属性后面追加?useUnicode=true&characterEncoding=utf-8

解决乐优商城登录后购物车合并问题 这篇文章主要说一下登录账号后购物车商品合并问题。一般我们浏览商品添加到购物车有两种状态,未登录账号,这里存储商品在web本地的LocalStorage中,另一种是登录账号,这个我们需要编写后台,存储在数据库中。由于购物车的数据存在高频率的增改商品,我们将它写入redis数据库中。 因为两种状态的主要区别在于有无登录账号,即判断是否登录后,我们选择不同的储存位置。 解决合并商品的主要思路如下: 当... 阅读详情

相关推荐

ERPS协议原理

目录 1、ERPS概述: 2、ERPS名词概念解释: 3、ERPS协议报文: 4、ERPS单环基本原理: 5、单环多实例原理: 6、多环原理: 1、ERPS概述: ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching)协议报文和保护倒换机制。 ERPS目前支持v1和v2两

weixin_44880796的博客 1万+

乐优商城(一)介绍和项目搭建

乐优商城是一个全品类的电商购物网站(B2C)用户可以在线购买商品、加入购物车、下单可以评论已购买商品管理员可以在后台管理商品的上下架、促销活动管理员可以监控商品销售状况客服可以在后台处理退款操作希望未来 3 到 5 年可以支持千万用户的使用。

you4580的专栏 1535

【STM32】433MHz OOK信号软解码实战:从EV1527协议到嵌入式实现

本文详细介绍了基于STM32微控制器实现433MHz OOK信号软解码的完整实战过程。文章从EV1527协议解析入手,重点阐述了利用STM32的GPIO和定时器进行信号采样、脉宽还原、同步头识别以及数据位判决的核心算法,并提供了对抗无线干扰的容错优化策略,帮助开发者深入理解并掌握低成本无线通信的嵌入式实现方案。

weixin_29299807的博客 783

day06.md

0.学习目标 使用资料搭建后台系统 会使用nginx进行反向代理 实现商品分类查询功能 掌握cors解决跨域 实现品牌查询功能 1.搭建后台管理前端 1.1.导入已有资源 后台项目相对复杂,为了有利于教学,我们不再从0搭建项目,而是直接使用课前资料中给大家准备好的源码: 我们解压缩,放到工作目录中: 然后在Intellij idea中导入新的工程: 选中我们的工程: 这正是一个用vue...

ghy5051073的博客 938

S32K144 ADC硬件触发实战:PDB模块配置与DMA传输全流程解析

本文详细解析了S32K144微控制器中ADC硬件触发的全流程实现。通过配置PDB模块产生精确的定时触发信号,并联动DMA实现转换数据的自动搬运,构建了一个无需CPU干预的高效、低抖动数据采集系统。文章深入讲解了时钟配置、模块初始化、DMA引擎搭建及实战调试技巧,为汽车电子和工业控制应用提供了可靠的解决方案。

weixin_29174141的博客 225

物理信息神经网络(PINNs)在交通运输领域的应用

物理信息神经网络(PINNs)在交通运输领域的应用研究结合了数据驱动与物理模型约束,通过嵌入交通流守恒定律等物理信息,显著提升了交通状态估计与预测的精度。该技术仅需少量观测数据(流量、速度、密度等),即可实现高精度建模,尤其适用于数据稀疏场景。研究重点包括:交通状态估计与预测、参数辨识、交通控制优化等领域,同时面临计算成本高、物理模型依赖性等挑战。未来需解决大规模异构数据处理问题,以进一步推动智能交通系统发展。

qq_49609070的博客 943

关于乐优项目总结以及面试

乐优商城的技术特点 技术范围广 技术新 高并发(分布式、静态化技术、缓存技术、异步并发、池化、队列) 高可用(集群、负载均衡、限流、降级、熔断) 数据量大 业务复杂 数据安全 常见的电商模式 B2C:商家对个人,如:亚马逊、当当等 C2C平台:个人对个人,如:咸鱼、拍拍网、ebay B2B平台:商家对商家,如:阿里巴巴、八方资源网等 O2O:线上和线下结合,如:饿了么、电影票、团购等 P2P:在线金融,贷款,如:网贷之家、人人聚财等。 B2C平台:天猫、京东、一号店等 项目介绍 乐优商城是一个全品

qq_43652793的博客 2461

百度地图街景图像批量获取

由于个人研究需要在最近试了一下使用API获取百度地图街景图片,在此介绍一下基于我个人需求的百度街景批量获取方法,本文以Python编码作为主要方法,如果对零编码工具有需要的可以关注一下UA城市分析小组刚刚发布的街景图片获取工具。 街景图像用作区域细粒度空间指标测度需要解决几个问题。 1. 首先就是调用额度的限制,现在百度对于个人认证开发者每天可用的街景图像调用额度为100张,在不考虑购买额度上限(1万张600元,其实有经费的前提下可以直接考虑钞能力)的情况下动辄几千上万张的爬取数量会大大增加需要爬取的时间周

boycetoon29的博客 1万+

乐优商城(四十七)秒杀总结

目录 一、缓存优化 1.1 页面缓存 1.2 对象缓存 1.3 页面静态化 1.4 静态资源优化 二、数据库优化 三、安全方面相关的优化 3.1 秒杀地址隐藏 3.1.1 创建秒杀路径 3.1.2 路径验证 3.2 接口限流 3.2.1 定义注解 3.2.2 添加拦截器 3.2.3 使用 四、相关知识 4.1 微服务架构如何保障高可用 一、缓存优化 1.1 页面...

lyj2018gyq的博客 2695

国密系列算法简介

众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现。其中SM1、SM7算法不公开,调用该...

HardessGod的博客 5774

PyTorch深度学习实战(6)——神经网络性能优化技术

神经网络性能优化技术是指通过改进神经网络的结构、参数初始化、正则化和训练过程等方面来提高其性能和泛化能力的方法。优化技术的选择和调试需要根据具体问题进行,通过不断实验和调整,找到最适合网络的优化策略。本节首先训练了一个简单的全连接网络,然后在此基础上介绍了简单有效的神经网络性能提升技巧。

盼小辉丶的博客 1万+

乐优商城(八)

乐优商城(八)——上传logo 创建目录如下: 分析 路径:/upload/image; 参数:file文件 请求方式:POST 三层架构 Controller package com.leyou; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.clou

qq_18609615的博客 341

Sigrity Power Tree如何进行直流压降仿真分析操作指导

Sigrity Power Tree模式可以用于前仿真,在没有layout文件的情况下对电源进行直流压降仿真分析,用于评估原理图设计以及器件选型是否合理。Model:设置为Equal Current,设置为等电源模型,意思该负载每个电源pin都是等电流的。Current:设置每个负载的电流,U30为3A,U3-U6各为1A。Nominal Current:设置能够承载的最大电流,设置为10A。Upper/ Lower Tol:设置为压降范围为5%Output Current:设置输出电流为10A。

weixin_54787054的博客 730

黑马乐优商城遇到前端页面加载不出图片,求大神帮忙!!!

#黑马乐优商城遇到前端页面加载不出图片,求大神帮忙!!! 第一次打开页面还是好好的,功能什么都是好的,再刷新就一直这样了!重启所有服务器都是这样!求大佬们看看问题出在哪里? 1.这是页面的效果,图片加载不了! 2.这是nginx配置 3.这是页面显示的404找不到图片! ...

focus_qzw的博客 1708

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

乐优商城中的注意事项

异常报错如下: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'leyou.jwt-com.leyou.com.leyou.auth.config.JwtProperties': Invocation of init method failed; ...

weixin_42030357的博客 832

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

乐优商城(十)

乐优商城(十)        这部分是logo上传的代码部分的修改,终于算是写完了这部分。 前期准备 pom文件 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> </depen

qq_18609615的博客 380

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

乐优商城(五)

乐优商城(五)       这一节主要是解决跨域问题,具体细节下面说 ———————————————————————————— 数据库部分       当前端可以通过nginx代理加载之后,我们就可以去尝试去从后端读一些东西显示在前端页面了。数据库连接放这了,大家可以下载:sql文件 ps:数据库设置在yml处,注意自己别写错了 datasource: url: jdbc:

qq_18609615的博客 239

虚拟机(Linux)安装Rabbitmq (乐优商城中的相关安装)

先上传三个文件 打开虚拟机 进入目录:可以看到这三个刚上传的文件 因为需要联网安装所以Ping一下百度检查一下网络 网络畅通然后执行安装命令: 其中需要输入Y 安装完成 安装第二个: 安装成功: 安装rabbitmq 完成 修改配置文件: 将配置文件模板复制到etc目录: 修改配置: 放开注释,删除最后的逗号,然后:wq保存 配置开机启动: 手动启动: 删除当前目录下安...

zcylxzyh的博客 567

解决乐优商城JWT+RSA登录时cookie跨域问题

问题 乐优商城JWT+RSA登录时cookie跨域问题 问题分析 postman测试时的结果 浏览器发起请求时的结果 在PostMan中测试时,清晰的看到了响应头中,有Set-Cookie属性,但是在浏览器中却什么都没有。而cors跨域时,跨域请求cookie生效的条件为: 服务的响应头中需要携带Access-Control-Allow-Credentials并且为true 响应头中的Acc...

weixin_44227355的博客 2486

乐优商城(08)--搜索过滤

乐优商城(08)–搜索过滤 一、过滤功能分析 首先看下页面要实现的效果: 整个过滤部分有3块: 顶部的导航,已经选择的过滤条件展示: 商品分类面包屑,根据用户选择的商品分类变化 其它已选择过滤参数 过滤条件展示,又包含3部分 商品分类展示 品牌展示 其它规格参数 展开或收起的过滤条件的按钮 顶部导航要展示的内容跟用户选择的过滤条件有关。 比如用户选择了某个商品分类,则面包屑中才会展示具体的分类 比如用户选择了某个品牌,列表中才会有品牌信息。 所以,这部分需要依赖第二部分

m0_60551090的博客 367

关于乐优商城中从数据库导入数据到elasticsearch出现空指针异常

是数据库数据结构的问题。。配套的sql文件竟然是错的,醉了。。

weixin_45744265的博客 817

lyshop学习笔记七-商品管理(添加商品)

title: 乐优商城学习笔记七-商品管理(添加商品) date: 2019-04-17 16:18:10 tags: - 乐优商城 - java - springboot categories: - 乐优商城 0.学习目标 独立实现商品新增后台 独立实现商品编辑后台 独立搭建前台系统页面 1.商品新增 1.1.页面预览 当我们点击新增商品按钮: ...

小武的Blog 2449

乐优商城(18)--延时消息

乐优商城(18)–延时消息 一、需求分析 卖家发货后后,默认7天用户确认收货 买家确认收货后72小时不评价,那么该订单自动评价为好评 订单未及时支付,将该订单关闭 1.1、方案一 cron定时任务 启动一个cron定时任务,每小时跑一次,将订单完成时间超过72小时的订单取出,置为好评,并把评价状态设置为已评价 缺点: 轮询效率比较低 每次扫描数据库,已经被执行过的记录任然会被扫描,导致重复计算 时效性不好,可能产生误差 1.2、方案二 延时消息 利用消息中间件实现延时消息,当用户确认收货则发

m0_60551090的博客 322

添加聚合和解析聚合

这里生成的分类和品牌的过滤,是搜素到的结果商品中聚合得到的。 下面是对规格参数的聚合: * 根据查询条件聚合规格参数 * @param cid * @param basicQuery * @return */ private List<Map<String, Object>> getParamAggResult(Lo...

weixin_42030357的博客 1319

电商中的三层缓存架构

在乐优商城中,在访问商品详情页中使用了三层缓存架构。 redis,nginx,ehcache,三层缓存 1.当消息访问*(请求来了)时,请求进入nginx*(路由转发)**中,这个nginx有着流量分发的功能。 这个时候就需要将商品详情页显示出来。 2.上一个nginx将请求分发到应用层的nginx。 静态页面是在这个nginx中进行动态渲染和存储的,渲染方式使用的是nginx+lua脚本。 ...

Cryaze的博客 509

RocketMQ话术

RocketMQ话术 RocketMQ 它是阿里参照kafka设计思想使用java实现的一套mq,目前主演多用于订单交易系统,在乐优商城中,我们通过引入消息中间件RocketMQ,保证数据库商品与ElasticSearch索引库,静态页三者之间的数据同步,实现业务的解耦合. 在商品上下架的时候,会发送MQ消息到索引库服务和静态页服务,分别进行相应的操作. ...

weixin_49201230的博客 188
上一篇: day01乐优商城学习日记
下一篇: 自学Springboot自动配置原理
java_New_
博客等级 码龄8年 23粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值