自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 分布式缓存-Redis集群

RDB方式bgsave的基本流程?•fork主进程得到一个子进程,共享内存空间•子进程读取内存数据并写入新的RDB文件•用新RDB文件替换旧的RDB文件。RDB会在什么时候执行?代表什么含义?•默认是服务停止时。•代表60秒内至少执行1000次修改则触发RDBRDB的缺点?•RDB执行间隔时间长,两次RDB之间写入数据有丢失的风险•fork子进程、压缩、写出RDB文件都比较耗时假设有AB两个Redis实例,如何让B。

2023-10-07 13:40:55 177

原创 分布式事务-Seata

简述CAP定理内容?•分布式系统节点通过网络连接,一定会出现分区问题(P•当分区出现时,系统的一致性(C)和可用性(A)就无法同时满足思考:集群是CP还是AP?•ES集群出现分区时,故障节点会被剔除集群,数据分片会重新分配到其它节点,保证数据一致。因此是低可用性,高一致性,属于CP简述BASE理论三个思想:•基本可用•软状态•最终一致解决分布式事务的思想和模型:•全局事务:整个分布式事务•分支事务:分布式事务中包含的每个子系统的事务•。

2023-10-04 16:38:21 159

原创 Sentinel-微服务保护

什么是雪崩问题?•微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。如何避免因瞬间高并发流量而导致服务故障?•流量控制如何避免因服务故障引起的雪崩问题?•超时处理•线程隔离•降级熔断流控效果有哪些?•快速失败:QPS超过阈值时,拒绝新的请求•warm upQPS超过阈值时,拒绝新的请求;QPS阈值是逐渐提升的,可以避免冷启动时高并发导致服务宕机。•排队等待:请求会进入队列,按照阈值允许的时间间隔依次执行请求;

2023-09-28 15:38:33 299

原创 服务异步通讯-RabbitMQ

同步调用的优点:•时效性较强,可以立即得到结果同步调用的问题:•耦合度高•性能和吞吐能力下降•有额外的资源消耗•有级联失败问题2、异步通讯异步通信的优点:•耦合度低•吞吐量提升•故障隔离•流量削峰异步通信的缺点:•依赖于Broker的可靠性、安全性、吞吐能力•架构复杂了,业务没有明显的流程线,不好追踪管理3、MQ常见框架MQ),中文是消息队列,字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。RabbitMQ。

2023-09-25 12:58:41 156

原创 Docker

Docker是一个快速交付应用、运行应用的技术:1.可以将程序及其依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统2.运行时利用沙箱机制形成隔离容器,各个应用互不干扰3.启动、移除都可以通过一行命令完成,方便快捷Docker和虚拟机的差异:•docker是一个系统进程;虚拟机是在操作系统中的操作系统•docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般镜像操作有哪些?••docker rmi••••查看容器状态:•。

2023-09-22 12:31:24 51 2

原创 SpringCloud微服务架构

将配置交给Nacos管理的步骤①在Nacos中添加配置文件②在微服务中引入nacos的config依赖③在微服务中添加,配置nacos地址、当前环境、服务名称、文件后缀名。这些决定了程序启动时去nacos读取哪个文件Nacos配置更改后,微服务可以实现热更新,方式:①通过@Value注解注入,结合来刷新②通过注入,自动刷新注意事项:•不是所有的配置都适合放到配置中心,维护起来比较麻烦•建议将一些关键参数,需要运行时调整的参数放到nacos。

2023-09-20 17:02:17 115

原创 SpringCloud微服务框架

1.微服务调用方式•基于发起的http请求实现远程调用•http请求做远程调用是与语言无关的调用,只要知道对方的ip、端口、接口路径、请求参数即可。服务调用关系-服务提供者:暴露接口给其它微服务调用-服务消费者:调用其它微服务提供的接口-提供者与消费者角色其实是相对的-一个服务可以同时是服务提供者和服务消费者1.服务注册-引入eureka-client依赖-在application.yml中配置eureka地址2.无论是消费者还是提供者,引入依赖、知道。

2023-09-19 22:28:35 96

原创 MyBatis-Plus

MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生特性:--无侵入:只做增强不做改变,不会对现有工程产生影响--强大的 CRUD操作:内置通用Mapper,少量配置即可实现单表CRUD操作--支持 Lambda:编写查询条件无需担心字段写错--支持主键自动生成--内置分页插件--……开发方式:--单独使用 MyBatis-Plus--基于 Spring使用--

2023-09-19 13:27:43 21

原创 Nginx-概述、命令、配置文件结构、具体应用

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx是由为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。官网:https://nginx.org/

2023-09-18 15:34:55 25

原创 Linux介绍、安装、常见命令

Linux系统的安装方式--物理机安装:直接将操作系统安装到服务器硬件上--虚拟机安装:通过虚拟机软件安装。

2023-09-16 00:08:49 1127

原创 苍穹外卖-导出运营数据Excel报表

导出Excel形式的报表文件--导出最近30天的运营数据接口设计:注意:当前接口没有返回数据,因为报表导出功能本质上是文件下载,服务端会通过输出流将Excel文件下载到客户端浏览器。

2023-09-06 21:50:20 279

原创 苍穹外卖-Apache POI

各种文件格式的开源项目。简单来说就是,我们可以使用。创建单元格并在单元格中设置值,单元格编号也是从。银行网银系统导出交易明细。各种文件进行读写操作。获取单元格中的文本内容。获取单元格中的文本内容。通过输出流将内存中的。通过输入流读取指定的。页中的最后一行的行号。

2023-09-06 20:34:02 65

原创 苍穹外卖-销量排名Top10

-根据时间选择区间,展示销量前10的商品(包括菜品和套餐)--基于可视化报表的柱状图降序展示商品销量--此处的销量为商品销售的份数。

2023-09-06 14:45:01 96

原创 苍穹外卖-订单统计

-有效订单指状态为已完成的订单--基于可视化报表的折线图展示订单数据,X轴为日期,Y轴为订单数量--根据时间选择区间,展示每天的订单总数和有效订单数--展示所选时间区间内的有效订单数、总订单数、订单完成率,订单完成率有效订单数总订单数* 100%

2023-09-06 13:37:24 138

原创 苍穹外卖-用户统计

-基于可视化报表的折线图展示用户数据,X轴为日期,Y轴为用户数--根据时间选择区间,展示每天的用户总量和新增用户量数据。

2023-09-05 23:31:22 79

原创 苍穹外卖-营业额统计

将dateList和turnoverList封装成VO对象来返回。

2023-09-05 22:15:44 163

原创 苍穹外卖-Apache ECharts

是一款基于Javascript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的。通过直观的图表来展示数据。

2023-09-05 20:16:40 52

原创 苍穹外卖-客户催单

用户在小程序中点击催单按钮后,需要第一时间通知外卖商家。通知的形式有如下两种:--语音播报--弹出提示框•通过WebSocket实现管理端页面和服务端保持长连接状态•当用户点击催单按钮后,调用WebSocket的相关API实现服务端向客户端推送消息•客户端浏览器解析服务端推送的消息,判断是来单提醒还是客户催单,进行相应的消息提示和语音播报•约定服务端发送给客户端浏览器的数据格式为JSON,字段包括:typeorderIdcontent- type为消息类型,1。

2023-09-05 16:43:13 326

原创 苍穹外卖-来单提醒

用户下单并且支付成功后,需要第一时间通知外卖商家。通知的形式有如下两种:--语言播报--弹出提示框--通过WebSocket实现管理端页面和服务端保持长连接状态--当客户支付后,调用WebSocket的相关API实现服务端向客户端推送消息--客户端浏览器解析服务端推送的消息,判断是来电提醒还是客户催单,进行相应的消息提醒和语言播报--约定服务端发送给客户端浏览器的数据格式为JSON,字段包括:typeorderIdcontent- type为消息类型,1为来单提醒2为客户催单。

2023-09-05 16:30:38 529

原创 苍穹外卖-WebSocket

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信----浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。HTTP协议和WebSocket协议对比:--HTTP是短连接--WebSocket是长连接--HTTP通信是单向的,基于请求响应模式--WebSocket支持双向通信--HTTP和WebSocket底层都是TCP连接应用场景:--视频弹幕--网页聊天--体育实况更新。

2023-09-05 15:58:01 289

原创 苍穹外卖-订单状态定时处理

用户下单后可能存在的情况:--下单未支付,订单一直处于”待支付“状态。--用户收货后管理端未点击完成按钮,订单一直处于”派送中“状态。对于上面两种情况需要通过定时任务来修改订单状态,具体逻辑为:--通过定时任务是否存在支付超时订单(下单后超过15分钟仍未支付则判定为支付超时订单),如果存在则修改订单状态为”已取消“--通过定时任务是否存在”派送中“的订单,如果存在则修改订单状态为”已完成“。

2023-09-05 14:08:52 226

原创 苍穹外卖-Spring Task

规则构成:分为6或者7个域,由空格分隔开,每个域代表一个含义。每个域的含义分别是:秒、分钟、小时、日、月、周、年(可选)。例子: 2022年10月12日上午9点整 对应的cron表达式为:2022注意日和周 只能指定一个,指定了一个另一个用?代替。cron。

2023-09-05 13:36:55 117 1

原创 苍穹外卖-订单支付

微信支付接入流程:微信小程序支付时序图:获取临时域名:支付成功后微信服务通过该域名回调我们的程序.微信支付相关配置:

2023-09-05 12:16:18 147 1

原创 苍穹外卖-用户下单

用户下单业务说明:在电商系统中,用户是通过下单的方式通知商家,用户已经购买了商品,需要商家进行备货和发货。

2023-09-04 21:29:15 109 1

原创 苍穹外卖-导入地址簿功能代码

产品原型:业务功能:•查询地址列表•新增地址•修改地址•删除地址•设置默认地址•查询默认地址接口设计:--新增地址--查询当前登录用户的所有地址信息--查询默认地址--根据id修改地址--根据id删除地址--根据id查询地址--设置默认地址。

2023-09-04 20:22:30 90 1

原创 苍穹外卖-清空购物车

接口文档进行测试,通过后再前后端联调测试即可。

2023-09-04 17:06:58 84 1

原创 苍穹外卖-查看购物车

产品原型:接口设计:在ShoppingCartController中创建查看购物车的方法:在ShoppingCartService接口中声明查看购物车的方法:在ShoppingCartServiceImpl中实现查看购物车的方法:可以通过接口文档进行测试,最后完成前后端联调测试即可

2023-09-04 17:02:55 100 1

原创 苍穹外卖-添加购物车

产品原型:接口设计:数据库设计:•作用:暂时存放所选商品的地方•选的什么商品•每个商品都买了几个•不同用户的购物车需要区分开。

2023-09-04 16:58:22 165 2

原创 苍穹外卖-缓存套餐

是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。SpringCache提供了一层抽象,底层可以切换不同的缓存实现,例如:•EHCache•Caffeine•Redis导入maven坐标常用注解:@Cacheable和@CachePut的区别:@CachePut只能放缓存数据而不取缓存数据,@Cacheable即可以取又可以放。

2023-09-04 14:24:18 45 1

原创 苍穹外卖-缓存菜品

用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大。结果:系统响应慢,用户体验差。

2023-09-04 13:04:42 56

原创 苍穹外卖-店铺营业状态设置(Redis)

Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型:--字符串 string--哈希 hash--列表 list--集合 set--有序集合 sorted set / zset。

2023-08-31 10:02:02 381

原创 苍穹外卖-菜品管理-修改菜品

-根据id查询菜品--根据类型查询分类(已实现)--文件上传(已实现)--修改菜品。

2023-08-30 14:43:22 232 1

原创 苍穹外卖-菜品管理-删除菜品

-可以一次删除一个菜品,也可以批量删除菜品--起售中的菜品不能删除--被套餐关联的菜品不能删除--删除菜品后,关联的口味数据需要删除掉。

2023-08-30 13:49:55 292 1

原创 苍穹外卖-菜品管理-菜品分页查询

-根据页码展示菜品信息--每页展示10条数据--分页查询时可以根据需要输入菜品名称、菜品分类、菜品状态进行查询。

2023-08-30 12:08:02 196 1

原创 苍穹外卖-菜品管理-新增菜品

-菜品名称必须唯一的--菜品必须属于某个分类下,不能单独存在--新增菜品时可以根据情况选择菜品的口味--每个菜品必须对应一张图片--根据类型查询分类(已完成)--文件上传请求方式--POST--新增菜品。

2023-08-29 21:47:19 498 1

原创 苍穹外卖-菜品管理-公共字段自动补充

业务表中的公共字段这些业务表中存在公共字段,导致java代码冗余、不便于后期维护。

2023-08-29 20:24:58 90 1

原创 苍穹外卖-导入分类模块功能代码

业务规则:--分类名称必须是唯一的--分类按照类型可以分为菜品分类和套餐分类--新添加的分类状态默认为“禁用”接口设计:-新增分类-分类分页查询-根据id删除分类-修改分类-启用禁用分类-根据类型查询分类数据库设计(category表): 1、controller代码如图: 2、service代码如图:接口: 实现类: 3、Mapper代码实现:首先要实现根据分类id查询菜品数量,和套餐数量。这样在删除菜品分类、套餐分类时可以知道该分类下有没有菜品。 然后再实现相应的mapper功能 xml配置文

2023-08-29 15:42:58 232 1

原创 苍穹外卖-编辑员工

编辑员工功能涉及到两个接口:1、根据id查询员工信息请求方式:GET请求参数:路径参数 -id2、编辑员工信息请求方式:PUT请求参数:Headers(请求体的方式)

2023-08-29 14:37:48 97

原创 苍穹外卖-启动禁用员工账号

路径参数需要加上@PathVariable注解,id不需要注解,由于是地址栏传递参数,只需要保证参数名一直就行。注意:这个项目的规格,根据查询类的操作,需要返回data的数据,建议加上泛型。路径参数:参数名称-status 示例-1 备注-状态,1为启用 0为禁用。注意:第二种写法是由于当前类(Employee)加上了@build注解,构建器。为了修改的通用性,根据传进去的参数不同,可以修改多个字段。1、在Contorller编写代码。2、编写service的代码。1、请求方式:POST。

2023-08-29 13:12:21 81 1

原创 苍穹外卖-员工分页查询

业务规则:1、根据页码展示员工信息2、每页展示10条数据3、分页查询时可以根据需要,输入员工姓名进行查询请求方式为:GETname 非必须 张三 员工姓名page 必须 1 页码pageSize 必须 10 每页记录数。

2023-08-29 12:26:54 237

空空如也

空空如也

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

TA关注的人

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