自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(792)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 尚品汇-Jenkins部署构建服务模块、Linux快照备份(五十七)

这个时候就可以访问service-product里面的接口了:可以直接访问内部的接口。通过前面的网关80访问这个 service-product内部接口,网关进行了过滤。注:其他模块构建方式一样,可选择“复制”上一个模块构建,修改配置即可,如图。复制之后,会把server-gateway的构建步骤拿过来,进行修改即可。通过不备份快照,来防止我们把环境搞错了,搞错后直接回复到正常的快照。注意:手动触发构建的时间与自动定时构建的时间互不影响。黄色:不确定,可能构建成功,但包含错误;如上显示蓝色,表示构建成功。

2024-09-22 19:04:27 1008

原创 尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。这是直接修改的配置文件,如果前边Jenkins用sudo启动的话,那么这里的两个sed前均需要加上sudo{给权限},频繁地将软件的新版本,交付给质量团队或者用户,以供评 审。通过命令source /etc/profile让profile文件立即生效。互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是。,代码在任何时刻都是可部署的,可以进入生产阶段。

2024-09-22 11:59:28 1306

原创 尚品汇-H5移动端整合系统(五十五)

这里可以改登录的接口实体类,先进行演示,但是已改就不能通用了,我们可以吧这个接口改成通用的接口,或者重新写一个登录的接口。访问首页 之后 点击我的 设置 修改 base路径 改为当前网关地址。- Path=/*/list/** # 路径匹配。代码跟原来写的一样,只是路经不同,新建一个conttroller。这里我们现为了演示,先修改部分代码,到时候需要提供两个接口。将页面放入nginx中 配置nginx.conf。前面用的8086,这里新添加一个server。需要项目启动,启动成功后就行获取数据列表。

2024-09-21 20:11:59 643

原创 尚品汇-秒杀成功下单接口、秒杀结束定时任务-清空缓存数据(五十四)

实现思路:假如根据业务,我们确定每天18点所有秒杀业务结束,那么我们编写定时任务,每天18点发送mq消息,service-activity模块监听消息清理缓存。秒杀过程中我们写入了大量redis缓存,我们可以在秒杀结束或每天固定时间清楚缓存。我们已经把下单信息记录到redis缓存中,所以接下来我们要组装下单页数据。该页面与正常下单页面类似,只是下单提交接口不一样,因为。行秒杀下单,提交成功,页面通过轮询后台方法查询秒杀状态。,因此我们要在订单服务提供一个秒杀下单接口,直接下单。编写定时任务发送消息。

2024-09-21 10:04:02 695

原创 尚品汇-秒杀下单实现-页面轮询查询订单状态(五十三)

商品秒杀流程:1.用户抢单的时候先会生成一个下单码,后面会先校验用户的下单码,只有正确获得下单码的请求才是合法请求,然后再校验状态位state,状态位是在内存中判断,效率极高,如果售罄,直接就返回了,不会给服务器造成太大压力,前面条件都成立,将秒杀用户加入队列,然后直接返回2.监听队列,进行清单,首先判断产品状态位,我们前面不是已经判断过了吗?因为产品可能随时售罄,mq队列里面可能堆积了十万数据,但是已经售罄了,那么后续流程就没有必要再走了。

2024-09-19 21:44:09 674

原创 尚品汇-秒杀列表、详情、倒计时、获取下单码(五十二)

立即购买,该按钮我们要加以控制,该按钮就是一个链接,页面只是控制能不能点击,一般用户可以绕过去,直接点击秒杀下单,所以我们要加以控制,在秒杀没有开始前,不能进入秒杀页面。

2024-09-17 11:51:14 1154

原创 尚品汇-秒杀商品定时任务存入缓存、Redis发布订阅实现状态位(五十一)

/”代表触发步进(step),”/”前面的值代表初始值(““等同”0”),后面的值代表偏移量,比如”0/20”或者”/20”代表从0秒钟开始,每隔20秒钟触发1次,即0秒触发1次,20秒触发1次,40秒触发1次;”5/20”代表5秒触发1次,25秒触发1次,45秒触发1次;{星期} ==> 允许值范围: 1~7 (SUN-SAT),1代表星期天(一星期的第一天),以此类推,7代表星期六(一星期的最后一天),不允许为空值,若值不合法,调度器将抛出SchedulerException异常。

2024-09-16 13:36:57 1271

原创 尚品汇-订单拆单、支付宝关闭交易、关闭过期订单整合(五十)

远程接口。

2024-09-14 21:32:01 661

原创 尚品汇-支付宝退款、支付成功库存系统对接实现(四十九)

而你之前的ex.getStackTrace()是没有这种能力的,有时,我们从底层抛出的异常需要被上层统一收集,而又不想在底层new出一大堆业务相关的异常实例,这时使用@SneakyThrows可以简化我们的代码。消息确认参数:参数一:消息的唯一标识,参数二:是否批量确认 false 确认一个消息,true 批量确认。查看看《库存管理系统接口手册》中【减库存的消息队列消费端接口】中的描述,组织相应的消息数据进行传递。,因为他们是不同的微服务模块,所以我们采用消息队列的方式,保证数据最终一致性;

2024-09-10 22:32:40 542

原创 尚品汇-支付宝支付同步异步回调(幂等性处理)实现(四十八)

这里更上面返回的不一样,返回sucess,支付宝就不会再发送了,如果返回faild支付宝会间隔一段的时间持续发送,返回啥都一样功能都能够实现。支付宝异步回调,需要我们的应用在公网上,怎么办呢?可以使用一个软件把我们的应用跟公网绑定,相当于我们的应用就在公网了。static修饰,不能通过Vuale注解获取配置文件的值,可以通过下面的方法进行获取值。新版本的支付接口已经取消了同步回调的支付结果传递。双击启动:就实现了我们的应用进行了公网地址的绑定。幂等性:多次操作跟一次操作是一样的。确认并记录用户已付款。

2024-09-08 18:02:03 485

原创 尚品汇-支付宝下单接口显示二维码实现(四十七)

25 小时以内完成 8 次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)如果同步通知的过程中;第二是携带支付状态的get参数;让自己的网站用于验证;支付宝的服务器会在一段时间内持续的往自己的服务器发送。这是一个对安全和稳定要求比较严格的场景;还需要异步通知主要是为了防止出现意外情况;第一是从支付宝的页面上返回自己的网站继续后续操作;如果自己的服务器没有正确返回接受到通知的状态;支付宝有了同步通知为什么还需要异步通知?回调时间,初始为空,支付宝异步回调时记录。

2024-09-07 20:48:52 576

原创 尚品汇-支付宝介绍、跳转支付订单页面实现(四十六)

支付宝简介支付宝(中国)网络技术有限公司[1]是国内的第三方支付平台,致力于提供简单、安全、快速的支付解决方案[2]。支付宝公司从2004年建立开始,始终以信任作为产品和服务的核心。旗下有支付宝与支付宝钱包两个独立品牌。自2014年第二季度开始成为当前全球最大的移动支付厂商。当用户提交订单会跳转到选择支付渠道页面!orderId=43当用户点击立即支付时生成支付的二维码使用支付宝app 进行扫码支付搭建service-payment。

2024-09-07 12:10:18 871

原创 尚品汇-延迟插件实现订单超时取消(四十五)

传的是订单id,这里orderId会接受到,赋值给他,message不是接受到的消息。在消费者这里进行实现,消费者不管发送者发送多少条消息,只消费一次。修改retrySendMsg方法 – 添加判断是否属于延迟消息。在消息的重试发送消息的方法里封装:retrySendMsg。在发送一次消息:Redis有了就不会消费了。service-order模块配置队列。利用封装好的工具类 测试发送延迟消息。结果会 回发送三次,也被消费三次!幂等性:执行多次,结果都是一样的。创建订单时,发送延迟消息。

2024-09-05 21:39:43 472

原创 尚品汇-商品上下架完善(更新ES)、延迟消息(四十四)

超过了这个时间,我们认为这个消息就死了,称之为死信。只是在某一个设置Dead Letter Exchange的队列中有消息过期了,会自动触发消息的转发,发送到Dead Letter Exchange中去。我们创建一个队列queue.temp,在Arguments 中添加x-message-ttl 为5000 (单位是毫秒),那所在压在这个队列的消息在5秒后会消失。使用RabbitMQ来实现延迟消息必须先了解RabbitMQ的两个概念:消息的TTL和死信Exchange,通过这两者的组合来实现延迟队列。

2024-09-03 20:48:06 1101

原创 尚品汇-MQ模块搭建测试、消息不丢失(重)(四十三)

为了防止消息不丢失 ,从以下三方面考虑:1,生产者不丢数据2,MQ服务器不丢数据3,消费者不丢数据生产者:MQ服务器:RabbitMQ重启之后消息不丢失消息队列丢数据的情况,一般是开启持久化磁盘的配置。这个持久化配置可以和confirm机制配合使用,你可以在消息持久化磁盘后,再给生产者发送一个Ack信号开启确认回调(成功到达交换机发送ack标识,没有达到重发)、失败回调(设置重发机制)为了防止消费者处理消息丢失,我们开启消费者消息消费确认回调,消息被成功处理之后才告知rabbitmq以。

2024-09-01 14:14:07 1154

原创 尚品汇-项目目前存在问题、引入MQ(四十二)

目录:(1)目前存在的问题(2)消息队列解决什么问题(3)消息队列工具 RabbitMQ(4)搭建mq测试环境service-mq下面我们先做的是前面后台管理系统商品上下架的没完成的功能,解耦操作,我们前面只做了添加上下架商品只是,写了往ES中添加数据的接口,并没有跟后台管理连接起来,下面完成链接,就用到MQ。

2024-09-01 10:35:30 793

原创 尚品汇-我的订单接口实现(四十一)

目录:(1)我的订单(2)web-all 中添加控制器(3)订单接口。

2024-08-31 12:00:38 232

原创 尚品汇-引入库存系统、校验库存、异步编排优化下单(四十一)

在进入结算页面时,生成一个结算流水号,然后保存到结算页面的隐藏元素中,每次用户提交都检查该流水号与页面提交的是否相符,订单保存以后把后台的流水号删除掉。我们做的不是B2B2C的项目,不会存在多家商家,这里只是我们自己的项目,可能只是仓库不在同一位置。一般电商系统的商品库存,都不由电商系统本身来管理,由另外一套仓库管理系统,或者进销存系统来管理,电商系统通过第三方接口调用该系统。修改一下plus的版本,我们父工程用的高版本,高版本不兼容低版本,这里用的低版本的方法, 不修改启动会保存。获取前台页面的流水号。

2024-08-29 22:21:00 1184

原创 尚品汇-订单接口实现(四十)

所以我们可以定义一个拦截器,每次微服务调用之前都先检查下头文件,将请求的头文件中的。在service-order-client暴露接口。搭建过程同service-cart-client。再放入到header中,再调用其他微服务即可。在web-all中添加控制器。实体类:OrderInfo。如上图:因为微服务之间。

2024-08-27 21:16:18 574

原创 尚品汇-结算页数据接口封装实现(三十九)

订单业务在整个电商平台中处于核心位置,也是比较复杂的一块业务。是把“物”变为“钱”的一个中转站。结算下单对接支付服务对接库存管理系统。

2024-08-25 11:06:11 827

原创 尚品汇-选中状态缓存变更、删除缓存购物车(三十八)

目录:(1)选中状态的变更 用户每次勾选购物车的多选框,都要把当前状态保存起来。由于可能会涉及更频繁的操作,所以这个勾选状态不必存储到数据库中。保留在缓存状态即可。编写业务接口:CartService:实现类 继续编写控制器CartApiController:刷新页面,会存到缓存,装态实现保留 取消选中第三条: 封装业务接口CartService实现类继续编写控制器CartApiController 删除2个没选中的:Redis只剩下一条选中的 显示跳转加入购物车的

2024-08-24 11:18:15 521

原创 尚品汇-购物车列表、临时用户购物车与登录用户购物车合并实现(三十七)

更改实现类:CartServiceImpl:cartList的实现。添加跳转到购物车详情页面的controller。控制器:CartApiController。在购物车页面点击登录:或者结算时会跳转登录。数据进行了合并,临时id数据页进行了清楚。实现类:CartServiceImpl。购物车列表接口:CartService。在nacos的配置网关中添加。

2024-08-23 22:00:59 486

原创 尚品汇-添加购物车实现(三十六)

购物车模块要能够存储顾客所选的的商品,记录下所选商品,还要能随时更新,当用户决定购买时,用户可以选择决定购买的商品进入结算页面。利用缓存提高性能。未登录状态也可以存入购物车,一旦用户登录要进行合并操作。

2024-08-23 20:09:37 1110

原创 尚品汇-网关过滤用户请求、登录流程(三十五)

登录时我们返回用户token,在服务网关中获取到token后,我在到redis中去查看用户id,如果用户id存在,则token合法,否则不合法,同时校验ip,防止token被盗用。网关中的过滤器:如果有多个过滤器可以实现Order,执行过滤器的执行顺序,谁的越小谁就先执行。配置类:因为这个模块没有扫描service-util。server-gateway 项目中添加一个过滤器。输入信息out 方法。

2024-08-20 21:32:34 852

原创 尚品汇-登录、退出实现(三十四)

目录:流程分析。

2024-08-18 11:09:14 337

原创 尚品汇-前端面包屑平台属性、排序处理(三十三)

早期单一服务器,用户认证。缺点:单点性能压力,无法扩展分布式,SSO(single sign on)模式解决 :用户身份信息独立管理,更好的分布式管理。可以自己扩展安全策略跨域不是问题缺点:认证服务器访问压力较大。业务流程图{用户访问业务时,必须登录的流程}{单点登录的过程}

2024-08-17 17:45:45 611

原创 尚品汇-前端调用搜索实现(三十二)

目录:(1)修改web-all模块(2)配置网关(3)页面渲染。

2024-08-17 11:16:42 632

原创 尚品汇-ES数据搜索实现-Logstash整合日志(三十一)

Logstash在项目中用于日志文件的收集,收集完只收存到es。其次,将日志配置文件放入到 目录下!首先在service模块中添加依赖。封装查询DSL语句正确打印。启动service-list。

2024-08-11 18:15:02 432

原创 尚品汇-ES中DSL查询案例、整合(三十)

目录:(1)利用es开发电商的搜索列表功能(2) DSL查询案例(3)案例全部整合。

2024-08-11 11:33:49 827

原创 尚品汇-商品热度实现利用Redis更新ES字段(二十九)

目录:(1)商品热度排名(2)在service-list-client封装远程接口(3)在service-item模块调用接口。

2024-08-10 11:20:04 527

原创 尚品汇-商品上下架添加数据到ES库(二十八)

目录:(1)商品上架,下架(2)在service-product-client添加接口(3)实现商品上架,下架功能(ES库中添加数据)

2024-08-10 10:16:33 647

原创 尚品汇-创建ES索引库(二十七)

根据用户输入的检索条件,查询出对应的商品检索两个入口首页的分类:搜索栏:检索列表展示页面。

2024-08-06 22:41:44 1103

原创 尚品汇-首页三级分类实现-nginx静态代理生成的静态页面(二十六)

商品分类保存在base_category1、base_category2和base_category3表中,由于需要静态化页面,我们需要一次性加载所有数据,前面我们使用了一个。就可以通过nginx实现代理访问静态资源 ,使用nginx他抗并发的能力非常强。三级分类视图: 一级,二级分类有重复的,三级分类没有重复的。模块,我们在该模块封装数据,数据结构为父子层级。使用分组去重,但是分组后,就不好获取其他数据了。页面生成了不能直接访问,他需要css,js..三级分类:没有重复的不需要分组。

2024-08-04 21:38:28 892 1

原创 尚品汇-CompletableFuture异步编排-优化商品详情页(二十五)

目录:(1)创建异步对象(2)计算完成时回调方法(3)线程串行化与并行化方法(4)多任务组合(5)优化商品详情页。

2024-07-31 23:43:59 794

原创 尚品汇-布隆过滤器解决缓存穿透问题(二十四)

Future是Java 5添加的类,用来描述一个异步计算的结果。你可以使用isDone方法检查计算是否完成,或者使用get阻塞住调用线程,直到计算完成返回结果,你也可以使用cancel方法停止任务的执行。,提供了非常强大的Future的扩展功能,可以帮助我们简化异步编程的复杂性,提供了函数式编程的能力,可以通过回调的方式处理计算结果,并且提供了转换和组合CompletableFuture的方法。

2024-07-30 20:26:59 477

原创 尚品汇-sku存入Redis缓存(二十三)

定义一个注解后面两个注解可加可不加/*** 缓存key的前缀* @return*/定义一个切面类加上注解/*** 处理环绕通知*/@Component@Aspect@Autowired@Autowired// 切GmallCache注解// 声明一个对象// 在环绕通知中处理业务逻辑 {实现分布式锁}// 获取到注解,注解使用在方法上!// 获取到注解上的前缀// sku// 方法传入的参数。

2024-07-24 23:05:34 426

原创 尚品汇-redisson 解决分布式锁、可重入锁、读写锁(二十二)

目录:(1)使用redisson 解决分布式锁(2)可重入锁(Reentrant Lock)

2024-07-20 18:32:35 598

原创 尚品汇-redis实现分布式锁、优化之设置锁的过期时间、优化之UUID防误删、优化之LUA脚本保证删除的原子性(二十一)

1加锁// 1. 从redis中获取锁,set k1 v1 px 20000 nx2.使用lua释放锁// 2. 释放锁 del// 设置lua脚本返回的数据类型// 设置lua脚本返回类型为Long3.重试testLock();为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:- 互斥性。在任意时刻,只有一个客户端能持有锁。- 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。- 解铃还须系铃人。

2024-07-18 23:34:38 385

原创 尚品汇-商品详情页面优化、分布式锁(二十)

目录:一:商品详情页面优化(1)思路(2)整合redis到工程(3)使用redis进行业务开发相关规则(4)缓存常见问题二:分布式锁本地锁的局限性(1)并发请求Redis的问题(2)本地锁 解决(3)集群下,并发访问Reids(4)分布式锁实现的解决方案。

2024-07-17 23:02:08 768

原创 尚品汇-(十九)

目录:一:搭建service-client父模块(1)搭建service-product-client(2)service-item模块汇总数据(3)搭建service-item-client模块(4)搭建web-util模块二:搭建web父模块(4)搭建web-util模块(5)构建web-all模块。

2024-07-14 17:25:40 879

简单模拟-学生信息管理系统窗体

面对C#初级学习学习者

2022-04-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除