
畅购商城
文章平均质量分 59
畅购商城
ZHOU_VIP
这个作者很懒,什么都没留下…
展开
-
商城-集群高可用
集群概述什么是集群集群概念集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。集群的特点集群拥有以下两个特点:可扩展性:集群的性能不限制于单一的服务实体,新的服务实体可原创 2021-11-25 15:07:25 · 1682 阅读 · 0 评论 -
商城-秒杀(下)
防止秒杀重复排队用户每次抢单的时候,一旦排队,我们设置一个自增值,让该值的初始值为1,每次进入抢单的时候,对它进行递增,如果值>1,则表明已经排队,不允许重复排队,如果重复排队,则对外抛出异常,并抛出异常信息100表示已经正在排队。...原创 2021-11-25 14:37:41 · 114 阅读 · 0 评论 -
商城-秒杀(上)
秒杀业务分析需求分析所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。秒杀商品通常有两种限制:库存限制、时间限制。需求:(1)录入秒杀商品数据,主要包括:商品标题、原价、秒杀价、商品图片、介绍、秒杀时段等信息(2)秒杀频道首页列出秒杀商品(进行中的)点击秒杀商品图片跳转到秒杀商品详细页。(3)商品详细页显示秒杀商品信息原创 2021-11-25 14:36:20 · 203 阅读 · 0 评论 -
商城-分布式事务
分布式事务介绍什么是事务数据库事务(简称:事务,Transaction)是指数据库执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成[由当前业务逻辑多个不同操作构成]。事务拥有以下四个特性,习惯上被称为ACID特性:原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态是指数据库中的数据应满足完整性约束。除此之外,一原创 2021-07-18 16:53:53 · 446 阅读 · 2 评论 -
商城-微信支付
支付流程分析1.用户下单之后,订单数据会存入到MySQL中,同时会将订单对应的支付日志存入到Redis,以队列的方式存储。2.用户下单后,进入支付页面,支付页面调用支付系统,从微信支付获取二维码数据,并在页面生成支付二维码。3.用户扫码支付后,微信支付服务器会通调用前预留的回调地址,并携带支付状态信息。4.支付系统接到支付状态信息后,将支付状态信息发送给RabbitMQ5.订单系统监听RabbitMQ中的消息获取支付状态,并根据支付状态修改订单状态6.为了防止网络问题导致notifyur原创 2021-07-14 23:02:01 · 2116 阅读 · 1 评论 -
商城-订单
订单结算页用户从购物车页面点击结算,跳转到订单结算页,结算页需要加载用户对应的收件地址,如下图:表结构分析:CREATE TABLE `tb_address` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL COMMENT '用户名', `provinceid` varchar(20) DEFAULT NULL COMMENT '省', `cityid` varchar(原创 2021-07-07 23:17:05 · 550 阅读 · 0 评论 -
商城-购物车
购物车购物车分为用户登录购物车和未登录购物车操作,国内知名电商京东用户登录和不登录都可以操作购物车,如果用户不登录,操作购物车可以将数据存储到Cookie或者WebSQL或者SessionStorage中,用户登录后购物车数据可以存储到Redis中,再将之前未登录加入的购物车合并到Redis中即可。淘宝天猫则采用了另外一种实现方案,用户要想将商品加入购物车,必须先登录才能操作购物车。我们今天实现的购物车是天猫解决方案,即用户必须先登录才能使用购物车功能。购物车分析(1)需求分析原创 2021-07-07 20:13:30 · 649 阅读 · 1 评论 -
StringRedisTemplate和RedisTemplate的区别及使用方法
在学习SpringCloud的过程中,总需要记录一下学习的过程,今天记录一下StringRedisTemplate和RedisTemplate的区别及使用方法,使用时只需使用maven依赖包spring-boot-starter-data-redis即可,然后在service中注入StringRedisTemplate或者RedisTemplate即可首先如下图所示StringRedisTemplate继承了RedisTemplate,所以两者对Redis的操作方法具有相同之处两原创 2021-07-07 09:51:36 · 448 阅读 · 0 评论 -
商城-Spring Security Oauth2 JWT
1 用户认证分析上面流程图描述了用户要操作的各个微服务,用户查看个人信息需要访问客户微服务,下单需要访问订单微服务,秒杀抢购商品需要访问秒杀微服务。每个服务都需要认证用户的身份,身份认证成功后,需要识别用户的角色然后授权访问对应的功能。身份认证用户身份认证即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认证表现形式有:用户名密码登录,指纹打卡等方式。说通俗点,就相当于校验用户账号密码是否正确。用户授权用户认证通过后去访问系统的资源原创 2021-07-05 20:18:34 · 307 阅读 · 1 评论 -
商城-微服务网关(路由、限流、权限校验)
1 微服务网关不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题:客户端会多次请求不同的微服务,增加了客户端的复杂性 存在跨域请求,在一定场景下处理相对复杂 认证复杂,每个服务都需要独立认证 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施 某些微服务可能使用了防火墙 / 浏览器不友好的协议原创 2021-07-04 13:38:41 · 1765 阅读 · 1 评论 -
商城-Thymeleaf、canal监听生成静态页
Thymeleaf介绍thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要原创 2021-06-29 23:51:36 · 237 阅读 · 2 评论 -
商城-商品搜索(品牌统计、规格统计、条件筛选、搜索分页排序、高亮显示)
用户搜索的时候,除了使用分类搜索外,还有可能使用品牌搜索,所以我们还需要显示品牌数据和规格数据,品牌数据和规格数据的显示比较容易,都可以考虑使用分类统计的方式进行分组实现。品牌统计分析看下面的SQL语句,我们在执行搜索的时候,第1条SQL语句是执行搜,第2条语句是根据品牌名字分组查看有多少品牌,大概执行了2个步骤就可以获取数据结果以及品牌统计,我们可以发现他们的搜索条件完全一样。-- 查询所有SELECT * FROM tb_sku WHERE name LIKE '%手机%..原创 2021-06-29 15:17:27 · 1504 阅读 · 0 评论 -
商城-商品搜索(搜索微服务搭建、商品搜索数据导入ES、关键词搜索)
SpringData Elasticsearch介绍SpringData介绍Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。 Spring Data可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了CRUD外,还包括如分页、排序等一些常用的功能。Spring Data的官网:http://projects.spring.io/sprin原创 2021-06-27 23:16:06 · 480 阅读 · 0 评论 -
商城-商品搜索(Elasticsearch、IK分词器、Kibana使用)
1. Elasticsearch安装本章节将采用Docker安装,不过在市面上还有很多采用linxu安装,关于linux安装,已经提供了安装手册,这里就不讲了。(1)docker镜像下载docker pull elasticsearch:5.6.8查看已经安装好了,所以在此我不安装了(2)安装es容器docker run -di --name=changgou_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:5.6.原创 2021-06-24 22:23:31 · 774 阅读 · 2 评论 -
StringRedisTemplate的常用方法
1.向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);2.val做-1操作 stringRedisTemplate.boundValueOps("test").increment(-1);3.根据key获取缓存中的val stringRedisTemplate.opsForValue().get("test");4.val +1 s...原创 2021-06-17 00:15:03 · 15503 阅读 · 0 评论 -
商城-Nginx限流、Canal实现广告缓存数据同步
nginx限流一般情况下,首页的并发量是比较大的,即使 有了多级缓存,当用户不停的刷新页面的时候,也是没有必要的,另外如果有恶意的请求 大量达到,也会对系统造成影响。而限流就是保护措施之一。生活中限流对比 水坝泄洪,通过闸口限制洪水流量(控制流量速度)。 办理银行业务:所有人先领号,各窗口叫号处理。每个窗口处理速度根据客户具体业务而定,所有人排队等待叫号即可。若快下班时,告知客户明日再来(拒绝流量) 火车站排队买票安检,通过排队 的方式依次放入。(缓存带处理任务)ngin原创 2021-06-17 00:11:53 · 346 阅读 · 0 评论 -
idea报错-Module .... does exist
删掉changgou-service-canal微服务,准备重新建,报错,已经存在解决办法:删掉这行原创 2021-06-09 23:45:06 · 1825 阅读 · 3 评论 -
nginx: [alert] kill(13490, 1) failed (3: No such process)
意思是没有这样的进程,怀疑可能是没有启动nginxcd /usr/local/nginx/sbin./nginx -s reloadhttps://blog.youkuaiyun.com/w1014074794/article/details/51881050原创 2021-06-08 22:08:16 · 746 阅读 · 0 评论 -
商城-lua、OpenResty广告缓存的载入与读取
首页分析表:首页门户系统需要展示各种各样的广告数据。如图,以jd为例:变更频率低的数据,如何提升访问速度?1.数据做成静态页[商品详情页]2.做缓存[Redis]lua的安装虚拟机中已经安装好了,略测试看lua是否安装成功:ctrl+c退出LUA的基本语法(了解)了解即可,这里略过,不是我们关注的重点OpenResty介绍OpenResty(又称:ngx_openresty) 是一个基于 nginx的可伸缩的 Web 平台,由中国人章亦..原创 2021-06-06 21:36:05 · 500 阅读 · 0 评论 -
RedisDesktopManager(Redis可视化工具)
RedisDesktopManager是什么?Redis桌面管理器(又名RDM)是一个用于Windows、Linux和MacOS的快速开源Redis数据库管理应用程序。在实际工作环境中,Redis服务一般都会安装在Linux服务器上,我们要想在本地查看Redis中的数据,最好是使用一个Redis可视化工具,即RedisDesktopManager,该工具可以用于连接Redis服务。RedisDesktopManager的下载与安装首先,我们得下载RedisDesktopManager的安原创 2021-06-06 13:52:00 · 1821 阅读 · 3 评论 -
商城-商品发布(代码生成器的使用)
SPU与SKU概念SPU = Standard Product Unit (标准产品单位) 概念 : SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。 通俗点讲,属性值、特性相同的货品就可以称为一个 SPU ==同款商品的公共属性抽取==例如:**华为P30就是一个 SPU**SKU=stock keeping unit( 库存量单位) SKU 即库存进出计量的单位, 可以是以件、盒、托盘等为单位。 S..原创 2021-06-05 21:29:04 · 1312 阅读 · 1 评论 -
idea报错-java.lang.IllegalStateException:(数组Arrays.asList())
### Error updating database. Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property '__frch_listItem_2'. It was either not specified and/or could not be found for the javaType ([J) : jdbcType (null) combination.#.原创 2021-06-05 16:01:53 · 1479 阅读 · 1 评论 -
分布式自增长ID(推特Twitter的Snowflake雪花算法)
package entity;import java.lang.management.ManagementFactory;import java.net.InetAddress;import java.net.NetworkInterface;/** * <p>名称:IdWorker.java</p> * <p>描述:分布式自增长ID</p> * <pre> * Twitter的 Snowflake JAVA实现方案.原创 2021-06-04 20:53:41 · 268 阅读 · 0 评论 -
idea报错-Caused by: org.springframework(javabean冲突)
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'brandController' for bean class [com.changgou.goods.controller.BrandController] conflicts with existing, non-compatible bean definition o.原创 2021-06-04 00:11:55 · 980 阅读 · 0 评论 -
idea报错-Field xxxMapper in xxx.AlbumServiceImpl required a bean of type xxx that could not be found
Description:Field albumMapper in com.changgou.goods.service.impl.AlbumServiceImpl required a bean of type 'com.changgou.goods.dao.AlbumMapper' that could not be found.The injection point has the following annotations: - @org.springframework.beans.fac.原创 2021-06-03 22:33:19 · 894 阅读 · 0 评论 -
idea报错-Cannot start compiler The output path is not specified for module changgou
或者点击File——>Project Structure原创 2021-06-01 22:06:14 · 880 阅读 · 1 评论 -
idea报错-java file outside of source root
IntelliJ IDEA 工程Java文件上红色的无效符(红色表示该类是不可编译文件)在Java文件夹点击右键找到Mark Direc tory as -->Sources Root(告诉IntelliJ IDEA,Java文件夹及其子文件夹中包含的源代码,可以编译为构建过程的一部分)果然ok...原创 2021-06-01 21:19:36 · 22156 阅读 · 1 评论 -
商城-分布式文件存储FastDFS(冗余备份、负载均衡、线性扩容)
FastDFS简介FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。Dubbo工作流程:服务治理,在微服务方面占很小,充其量算服务治理原创 2021-05-30 17:22:11 · 993 阅读 · 0 评论 -
Jmeter工具
官网:https://jmeter.apache.org/https://www.cnblogs.com/monjeo/p/9330464.html原创 2021-05-29 22:16:01 · 124 阅读 · 0 评论 -
Postman工具
官网下载地址:https://www.postman.com/downloads/使用教程:https://www.jianshu.com/p/556a7700004d原创 2021-05-29 21:10:44 · 184 阅读 · 0 评论 -
商城-品牌增删改查(通用Mapper)、PageHelper分页、公共异常处理(@ControllerAdvice注解,全局捕获异常类)
创建商品微服务,实现对品牌表的增删改查功能。具体包括(1)查询全部列表数据(2)根据ID查询实体数据(3)增加(4)修改(5)删除(6)条件查询(7)分页查询(8)分页+条件查询(9)公共异常处理写Dao层要用到changgou-service-goods-api工程下的pojo,引入依赖:查询全部列表数据package com.changgou.controller;import com.changgou.service.BrandServ原创 2021-05-27 23:10:46 · 307 阅读 · 1 评论 -
使用@Autowired注解警告Field injection is not recommended(原因:spring 4.0开始就不推荐使用属性注入,改为推荐构造器注入和setter注入)
查阅了相关文档了解了一下,原来这个提示是spring framerwork 4.0以后开始出现的,spring 4.0开始就不推荐使用属性注入,改为推荐构造器注入和setter注入https://blog.youkuaiyun.com/zhangjingao/article/details/81094529https://zhuanlan.zhihu.com/p/92395282...原创 2021-05-27 20:58:54 · 618 阅读 · 0 评论 -
商城-公共模块搭建、数据访问工程搭建、商品微服务搭建
公共模块搭建pom.xml引入依赖<dependencies> <!--web起步依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>原创 2021-05-26 22:02:48 · 203 阅读 · 1 评论 -
商城-Eureka注册中心搭建
Eureka微服务搭建:appliation.yml配置,创建配置文件application.ymlserver: port: 7001eureka: instance: hostname: 127.0.0.1 client: register-with-eureka: false #是否将自己注册到eureka中 fetch-registry: false #是否从eureka中获取信息 service-url:原创 2021-05-16 23:24:48 · 152 阅读 · 0 评论 -
商城-微服务工程结构搭建
结构说明:changgou-gateway网关模块,根据网站的规模和需要,可以将综合逻辑相关的服务用网关路由组合到一起。在这里还可以做鉴权和限流相关操作。changgou-service微服务模块,该模块用于存放所有独立的微服务工程。changgou-service_api对应工程的JavaBean、Feign、以及Hystrix配置,该工程主要对外提供依赖。changgou-transaction-fescar分布式事务模块,将分布式事务抽取到该工程中...原创 2021-05-16 21:52:17 · 360 阅读 · 1 评论 -
商城-环境搭建
畅购技术架构图:安装VMware虚拟机:VMware-workstation-full-15.5.1-15018445.exe,安装完成输入序列号:FA39H-APX56-H8DXZ-DWX5X-PG0C6打开虚拟机文件:网络适配器选择NAT模式开启虚拟机:点击:登录:账号:root密码:123456鼠标在桌面上任意地方右击输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33.原创 2021-05-15 23:20:04 · 233 阅读 · 0 评论 -
MobaXterm全能终端神器(下载安装使用教程)
MobaXterm 又名 MobaXVT,是一款增强型终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱。官网:https://mobaxterm.mobatek.net/MobaXterm 可以开启多个终端视窗,以最新的 X 服务器为基础的X.Org,可以轻松地来试用 Unix/Linux 上的 GNU Unix 命令。这样一来,我们可以不用安装虚拟机来试用虚拟环境,然后只要通过 MobaXterm 就可以使用大多数的 linux 命令。MobaXterm 还有很强的扩展能力,.原创 2021-05-15 16:53:33 · 8447 阅读 · 0 评论 -
VMware安装CentOS7超详细版
https://blog.youkuaiyun.com/tsundere_x/article/details/104263100https://blog.youkuaiyun.com/babyxue/article/details/80970526原创 2021-05-15 16:52:34 · 128 阅读 · 0 评论 -
在Centos7虚拟机上安装Docker配置搭建MySQL
https://blog.youkuaiyun.com/Charlie__/article/details/107170227原创 2021-05-15 16:05:58 · 218 阅读 · 0 评论 -
国内的yum仓库
国内的yum仓库:http://mirrors.163.com/centos/7/os/x86_64/Packages/http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/原创 2021-05-15 16:05:12 · 419 阅读 · 0 评论