自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(130)
  • 资源 (1)
  • 收藏
  • 关注

原创 秒杀项目之分布式锁运用

格式:setnx key value将key的值设置为value,当且仅当key不存在;若给定的key不存在,则setnx不做任何动作。setnx是(如果不存在,则set)的简写。setnx "zking" "xiaoliu" 第一次设置有效setnx "zking" "xiaoliu666" 第二次设置无效第一次使用setnx设置zking直接成功,第二次使用setnx设置zking则失败,也意味着加锁失败。redis级分布式锁之setnx使用。

2023-02-14 11:44:08 1357

原创 秒杀项目之消息推送

定义RabbitMQ配置类,设置生产者发送数据时自动转换成JSON,设置消费者获取消息自动转换成JSON。} }设置RabbitTemplate消息转换模式为Jackson2JsonMessageConverter;设置RabbitMQ消费者监听器的的消息转换模式为Jackson2JsonMessageConverter;

2023-02-14 10:33:26 1009

原创 秒杀项目之商品秒杀接口测压及优化

递增方法是在高并发情况下Redis库存预减可能会出现负数情况,通过递增方法进行库存回滚为0。超时时间的设定取至于活动结束时间减去活动开始时间的差值,但必须是有效活动时间,也就是当前时间在活动开始时间与结束时间范围之内。将UserUtils工具类导入到zmall-user模块中,运行生成测试用户信息,可根据自身电脑情况来生成用户数量。将参与秒杀活动且秒杀状态、秒杀活动时间有效的商品推送到Redis中,并对秒杀商品设置超时时间。1.线程计划>添加>线程(用户)>线程组。

2023-02-13 20:31:42 727

原创 秒杀项目之秒杀商品展示及商品秒杀

第1步:从zmall-common的pom.xml中移除依赖第2步:在zmall-common公共模块中定义RedisConfig配置类第3步:在zmall-common公共模块中配置redis相关服务IRedisServcieRedisServcieImple第4步:在zmall-common公共模块中配置,配置自定义参数解析UserArgumentResolver、WebConfigWebConfig第5步:用户登录业务调整,将spring-session方式更改为redis方式存储登

2023-02-13 19:04:17 542

原创 秒杀项目之网关服务限流熔断降级&分布式事务

2019 年 1 月,阿里巴巴中间件团队发起了开源项目 Fescar(Fast & EaSy Commit AndRollback),其愿景是让分布式事务的使用像本地事务的使用一样,简单和高效,并逐步解决开发者们遇到的分布式事务方面的所有难题。后来更名为 Seata,意为:Simple Extensible AutonomousTransaction Architecture,是一套分布式事务解决方案。

2023-02-10 19:37:33 1515

原创 秒杀项目之服务调用&分布式session

基于上一篇博客静态资源的重复利用问题,这篇博客就利用动静分离把静态资源分开。本篇博客用到的所有资源博主都会分享到博主主页资源里面SpringBoot整合Spring-Session的自动配置可谓是开箱即用,极其简洁和方便。这篇文章即介绍SpringBoot整合Spring-Session,这里只介绍基于RedisSession的实战。Spring Session 是Spring家族中的一个子项目,Spring Session提供了用于管理用户会话信息的API和实现。

2023-02-06 20:16:19 1385

原创 秒杀项目之Mybits与微服务注册

2. 在公共模块zmall-common中注释掉mybatis的依赖引入,改换成mybatis-plus依赖引入在zmall-generator中引入mybatis-plus-generator依赖。该模块专用于mybatis-plus的代码生成,所以单独在此引入该依赖即可。在zmall-generator中引入公共模块在src/main/resources下创建templates目录,并导入mybatis-generator生成代码模板页在src/main/java下创建包c

2023-02-05 15:48:55 418

原创 秒杀项目前期搭建

项目中的资源博主都会同步分享到资源包里面去电商模式:市面上有5种常见的电商模式,B2B、B2C、 C2B、 C2C、O2O;1、B2B模式B2B (Business to Business),是指 商家与商家建立的商业关系。如:阿里巴巴2、B2C 模式就是我们经常看到的供应商直接把商品卖给用户,即“商对客”模式,也就是通常说的商业零售,直接面向消费者销售产品和服务。如:苏宁易购、京东、天猫、小米商城3、C2B模式。

2023-02-04 19:04:58 3262

原创 OAuth2.0代码演示

首先打开开发工具,然后打开其中的pom.xml文件然后修改Maven地址。

2023-02-01 11:31:17 226

原创 OAuth2

OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取用户的数据。举例说明:用户可以通过选择其他登录方式来使用gitee,这里就使用到了第三方认证。来自RFC 6749OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。…资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。

2023-01-31 11:20:09 257

原创 mybatis-plus

升级版的mybatis,目的是让mybatis更易于使用, 用官方的话说“为简化而生”官网:https://baomidou.com/1.准备数据库脚本数据库 Schema 脚本如下:其对应的数据库 Data 脚本如下:2.初始化工程**pom.xmlapplication.yml启动类,指定mapper接口的位置3.编码编写实体类 编写 Mapper 包下的 接口4.开始使用添加测试类,进行功能测试:application.properties在开发中将sql语句打印到控制台,以便于

2023-01-19 17:24:01 2668

原创 前言技术--swagger

注意:SpringBoot与swagger2的版本对应关系,否则项目是启动不成功的,这里的版本对应关系如下。在这种情况下,前端和后端可以分别交付给专业的开发人员去做,所以是必须要定义前后端直接的对接。在接口发送改变时需要及时的同步接口文档,否则实际的接口与接口文档不相符,则接口文件就失去了。根据在代码中使用自定义的注解来生成接口文档,这个在前后端分离的项目中很重要。接口,否则各自为是则项目无法集成,这时就需要一个文档来定义统一的接口。接口文档在线生成,避免同步的麻烦。可以支持在线对接口执行测试。

2023-01-19 16:28:35 811

原创 后台交互-首页

在本机数据库创建oapro数据库,然后导入运行数据库文件。利用ider创建一个Spring Boot项目。首先要准备数据库以及数据。文件后期博主会分享资源。

2022-12-29 17:06:24 812

原创 会议OA项目-其他页面

文档参考:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/首先完美创建一个component文件夹,用来存放组件

2022-12-29 15:45:48 220

原创 会议OA项目-首页

布局的传统解决方案,基于盒状模型,依赖display属性 +position属性 +float属性Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHSqwv9X-1672215371869)(images/3791e575c48b3698be6a94ae1dbff79d.png)]

2022-12-28 17:50:01 444

原创 小程序框架

小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 APP 体验的服务。逻辑层(App Service)和视图层(View)。小程序提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑。事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。

2022-12-28 16:08:21 82

原创 微信小程序入门

2017年度百度百科十大热词之一微信小程序(wei xin xiao cheng xu),简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用( 张小龙对其的定义是无需安装,用完即走,实际上是需要安装的,只不过小程序的体积特别小, 下载速度很快,用户感觉不到下载的过程 )限制:同一个分包中的页面享有共同的预下载大小限额 2M,限额会在工具中打包时校验。2017年1月9日0点,万众瞩目的微信第一批小程序正式低调上线。

2022-12-28 11:22:13 266

原创 RMQ延迟队列

RabbitMq支持对消息和队列设置TTL,对消息这设置是在发送的时候指定,对队列设置是从消息入队列开始计算, 只要超过了队列的超时时间配置, 那么消息会自动清除。一台普通的rabbitmq服务器单队列容纳千万级别的消息还是没什么压力的,而且rabbitmq集群扩展支持的也是非常好的,如果两种方式一起使用消息的TTL和队列的TTL之间较小的为准,也就是消息5s过期,队列是10s,那么5s的生效。即存入订单的时候就算出订单的过期时间插入数据库,设置定时任务查询数据库的时候就只需要查询过期了的订单,

2022-12-27 18:16:36 684

原创 Exchange交换机

直连交换机是一种带路由功能的交换机,一个队列会和一个交换机绑定,除此之外再绑定一个routing_key,当消息被发送的时候,需要指定一个binding_key,这个消息被送达交换机的时候,就会被这个交换机送到指定的队列里面去。在RabbitMQ中,生产者发送消息不会直接将消息投递到队列中,而是先将消息投递到交换机中,在由交换机转发到具体的队列,生产者------------>交换机------------>队列------------>消费者。所以扇形交换机处理消息的速度也是所有的交换机类型里面最快的。

2022-12-27 17:38:05 240

原创 RabbitMQ入门

消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已作用:应用程序“对”应用程序的通信方法。

2022-12-16 15:25:47 89

原创 python入门到精通--python环境安装&第一个PY程序

重量级:Visual Studio Code 以及 PyCharm(付费)轻量级:Sublime Text 以及Notepao++直接到官网下载(会自动识别系统,直接下载即可)第二种行,这种首先需要进入到pytho。第三种是载工具选择按Ctrl+B。第一种是直接双击保存的文件。

2022-12-12 10:35:18 103

原创 Docker安装Nginx

服务器配置 weight是权重的意思,权重越大,分配的概率越大。4.根据nginx镜像创建nginx容器(测试nginx的安装与访问,并没有发布任何的java或vue项目,最后此容器要删除的)这里需要看前面nginx的配置,因为配置默认访问的是这个目录。5.docker实战之通过nginx镜像来部署SPA项目。nginx+tomcat实现反向代理及均衡。nginx+tomcat实现反向代理及均衡。2.nginx发布java项目。nginx发布静态vue项目。1.创建nginx容器。

2022-12-12 09:53:33 705

原创 Docker04网络配置

创建自定义网络docker run -it --name tomcat8 --net=mynetwork -v /javaxl/software/mydocker/:/home/javaxl/docker --ip 172.18.0.8 容器id /bin/bash#查看网络。

2022-12-10 16:42:21 66

原创 自定义镜像上传阿里云

1.Alpine Linux是一个轻型Linux发行版,它不同于通常的Linux发行版,Alpine采用了musl libc 和BusyBox以减少系统的体积和运行时的资源消耗。2.Alpine Linux提供了自己的包管理工具:apk(注意:ubuntu中是apt-get),我们可以通过https://pkgs.alpinelinux.org/packages 查询包信息。

2022-12-10 15:57:13 398

原创 Docker入门第二期

从容器中拷贝文件到宿主机从宿主机拷贝文件到容器二、数据卷将宿主机的目录与容器的目录进行挂载,实现数据共享结论:不管宿主机、容器在指定目录创建文件夹还是文件,都会会被共享;其中c4为数据卷容器,c6为普通容器,其中c4就起到一个桥接作用,我们可以通过docker inspect查看容器的详细情况会发现c4、c6目录挂载情况是一样的结论:不管c4、c6在指定目录创建文件夹还是文件,都会会被共享;自定义centos,具备vim及ifconfig作用(体会学习Dockerfile的意义)向 mycen

2022-12-08 01:07:14 482

原创 Docker基本命令

启动Dockersystemctl start docker停止Dockersystemctl stop docker重启Dockersystemctl restart docker开机启动Dockersystemctl enable docker查看Docker概要信息docker info查看Docker帮助文档docker --help查看Docker版本信息docker version1,docker images 列出本机所有镜像列出本机所有镜像退出容器

2022-12-08 00:44:06 424

原创 Docker初步入门

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用

2022-12-08 00:24:38 89

原创 Sentinel--服务容错

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。接下来,我们来模拟一个高并发的场景修改配置文件中tomcat的并发数1秒钟20个请求,最大连接数10,最大等待数10,最大线程数2,相当于一个线程1s能处理5个请求(2个处理10个请求)3. 接下来使用压测工具,对请求进行压力测试链接: 下载

2022-12-07 07:59:05 686

原创 Gateway--服务网关

大家都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性认证复杂,每个服务都需要独立认证。存在跨域请求,在一定场景下处理相对复杂。上面的这些问题可以借助API网关来解决。所谓的API网关,就是指系统的统一入口,它封装了应用程序的内部结构,为客户端提供统一服。

2022-12-01 22:20:15 977

原创 Nacos Config--服务配置

配置文件相对分散。在一个微服务架构下,配置文件会随着微服务的增多变的越来越多,而且分散在各个微服务中,不好统一配置和管理。配置文件无法区分环境。微服务项目可能会有多个环境,例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置理论上都是不同的,一旦需要修改,就需要我们去各个微服务下手动维护,这比较困难。配置文件无法实时更新。我们修改了配置文件之后,必须重新启动微服务才能使配置生效,这对一个正在运行的项目来说是非常不友好的。

2022-12-01 21:12:55 403

原创 Nacos Discovery--服务治理

上篇文章博主写了基本的微服务架构,不难发现有很多问题一旦服务提供者地址变化,就需要手工修改代码一旦是多个服务提供者,无法实现负载均衡功能一旦服务变得越来越多,人工维护调用关系困难那么应该怎么解决呢, 这时候就需要通过注册中心动态的实现服务治理。服务治理是微服务架构中最核心最基本的模块。用于实现各个微服务的自动化注册与发现。**服务注册:**在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中心登记自己提供服务的详细信息。

2022-11-28 14:14:41 866

原创 微服务介绍

微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立运行的项目。Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。

2022-11-25 16:34:01 444

原创 JS 添加千分位与去掉千分位示例

解决措施接受把千分为去除,下面博主写一个通用的去除千分为方法。假如一个数为1000,那么千分为会改为1,000,转成千分位-保留两位小数-兼容负数版-精简。转成千分位-保留两位小数-兼容负数版。问题:可能在前端拿值会丢失,如下。

2022-11-14 16:02:03 1725 1

原创 自定义starter

官方#第三方SpringBoot中的starter是一种非常重要的机制(自动化配置),能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter让我们摆脱了各种依赖库的处理,需要配置各种信息的困扰。SpringBoot会自动通过classpath路径下的类发现需要的Bean,并注册进IOC容器。

2022-11-06 18:42:14 1530 1

原创 SpringBoot整合其它项目

如果重新创建项目,在选择组件时,在非关系数据库是可以看见Redis的组件的,在这博主就不重新创建项目了,而是通过手动引入组件的方法。在这之后,如果是使用虚拟机的小伙伴,那么就需要启动虚拟机,然后打开redis的服务。不要最新的,进过测试SQL监控失效(如果是最新的可能还需要添加其他依赖)如果ttl名不是text,那么时间就是默认的600s,测试一下。在去redis中可以发现有数据了,但是是我们看不懂的数据。将redistemplate交给spring管理。Controller定义方法。

2022-11-06 16:42:14 1236

原创 MybatisPlus搭建项目

因为自动生成代码注解是==@RestController==,等价于@Controller + @ResponseBody。但是@ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。所以我们要把注解改为==@Controller==下创建项目mappers。修改MySQL的版本。

2022-11-03 02:56:57 2641 1

原创 springboot视图渲染技术

text.ftlViemController启动项目测试index.ftlViemController解决接收值为空报错① 加入 ==!==号index.ftlViemController②设置默认值(当后台没有值,取默认值,有则反之)index.ftlindex.ftl② ??是判断对象是否为空index.ftl③if_exists用来打印东西index.ftl④测试当ViemController的uname有值当ViemController的uname没有值inde

2022-11-01 20:01:43 1213

原创 SSM和Spring Boot

官网地址MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作。

2022-11-01 01:54:06 317

原创 自定义注解

Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解相关类都包含在java.lang.annotation包中。Java注解分类JDK基本注解JDK元注解自定义注解注解分类(根据 Annotation 是否包含成员变量 , 可以把 Annotation 分为两类) : 标记 Annotation : 没有成员变量的 Annotation;这种 Annotation 仅利用自身的存在与否来提供信息。

2022-10-30 17:30:45 264

原创 SpringBoot入门

springboot是什么Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),

2022-10-30 12:07:04 410

秒杀项目之商品秒杀接口测压及优化的整个项目

对应博主博客文章--》秒杀项目之商品秒杀接口测压及优化 的整个项目

2023-02-13

对应博主秒杀项目之秒杀商品展示及商品秒杀

对应博主秒杀项目之秒杀商品展示及商品秒杀 这是博主对应的整个项目

2023-02-13

秒杀项目之服务调用&分布式session对应的完整项目

对应博主秒杀项目之服务调用&分布式session对应的项目

2023-02-10

对应博主博客秒杀项目的Mybatis与微服务注册

博主的资源会对应博客里面内容进行随时的更新

2023-02-05

秒杀项目前期资源,其中包括js.css.以及页面等

这是同步博主秒杀项目的资源包

2023-02-04

VM的16Pro版本压缩包(文件有点大)

这里数VM的压缩包

2022-10-20

pro_09(2).rar

pro_09(2).rar

2022-02-08

空空如也

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

TA关注的人

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