- 博客(34)
- 收藏
- 关注
原创 rabbitmq死信队列及延迟队列
看起来似乎没什么问题,但是如果使用在消息属性上设置TTL的方式,消息可能并不会按时“死亡“,因为RabbitMQ只会检查第一个消息是否过期,如果过期则丢到死信队列,如果第一个消息的延时时长很长,而第二个消息的延时时长很短,第二个消息并不会优先得到执行。进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望。
2023-01-11 23:06:35 822 1
原创 dubbo安装及使用
dubbo和zookeeper的关系dubbo和zookeeper的关系zookeeper安装zookpper安装dubbo快速入门概念Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负
2023-01-02 17:39:39 2595
原创 dubbo高可用
## 场景### zookeeper宕机与dubbo直连**现象**:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。原因:
2023-01-02 17:38:54 261
原创 dubbo配置
## 配置文件详细的可以看官方文档(滑稽)[dubbo.apache.org](https://cn.dubbo.apache.org/)### 1、配置原则覆盖策略:三种
2023-01-02 16:57:42 1115
原创 秒杀demo
数据库需要新的秒杀商品及秒杀订单表(方便后期更改维护)例子:秒杀基本流程(未优化):使用jmeter进行压力测试,下文链接有详细的描述:Jmeter性能测试ubuntu安装mysql8前后端未分离时做页面缓存。对象缓存,相比于页面缓存,具有更细的粒度。…超卖问题产生在秒杀商品减少库存部分。秒杀实现步骤为:减少库存前判断库存是否大于0,为防止一个人重复抢购(同时发起两个请求)可以加锁(乐观锁)/加唯一索引:将用户id和商品id
2022-10-31 10:00:07 137
原创 swagger使用
(新手笔记)**本篇依据狂神瑞吉外卖项目优化部分进行记录狂神说Java使用Swagger你只需要按照它的规范去定义接口及接口相关的信息,再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,以及在线接口调试页面等等。官网: https:/ /swagger.io/knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。1、导入maven坐标2、导入knife4j相关配置类(WebMvcConfig)在mvc配置文件WebMvcC...
2022-06-25 21:06:59 217
原创 nginx安装及使用
(新手笔记,狂神)**本篇依据狂神瑞吉外卖项目优化部分进行记录狂神说Java到nginx官网上下载相应的安装包即可,http://nginx.org/en/download.html;安装前要下载依赖,可以参考下面博客:ubuntu下安装nginx时PCRE库、zlib库、OpenSSL库的安装如果出现下载好后解压在linux中。之后按照下面步骤来。1、查看版本:./nginx -v2、检查配置文件正确性(在sbin目录下执行)启动nginx前可以检查conf/nginx.conf文件
2022-06-16 11:15:41 148
原创 linux下tomcat安装使用
(新手笔记)下载好tomcat压缩包后,解压到/usr/local下即可(要在linux中先下载配置好jdk啊)在解压完tomcat,在其bin目录下启动服务(./startup.sh)时报错:原因:启动tomcat会调用tomcat安装文件中的startup.bat,而它调用了catalina.bat则调用了setclasspath.bat。因此需要在setclasspath.bat的开头手动声明环境变量。可以在tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和J
2022-06-09 17:25:34 103
原创 springboot-redis缓存数据信息
(新手笔记)**本篇依据狂神瑞吉外卖项目缓存短信,菜品数据部分进行记录狂神说Javayaml配置redis##rediscofig配置(主要是为了redis图形化界面便于查看数据)缓存短信验证码在未优化的项目中,验证码存储在session中,有效期(30min),我们需要将其缓存在redis中:缓存菜品数据缓存菜品数据在移动端,用户查询某个菜品分类时都要查询数据库,造成频繁访问,极大的降低了性能,所以需要将菜品数据存放在缓存中,避免频繁访问数据库。......
2022-06-07 20:55:28 298
原创 Springboot自动装配原理
Springboot自动装配(核心)原理(新手笔记,狂神搬运工)狂神说JavaSpringboot自动装配原理Springboot自动装配(核心)原理进入pom.xml,我们可以看到它主要是依赖一个父项目,主要是管理项目的资源过滤及插件! <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent
2022-04-23 20:02:27 333
原创 SpringMVC拦截器
SpringMVC拦截器(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架SpringMVC拦截器SpringMVC拦截器1、 拦截器(interceptor)的作用2、拦截器和过滤器区别3、拦截器快速入门4 、拦截器方法说明1、 拦截器(interceptor)的作用Spring MVC 的拦截器类似于 Servlet 开发中的过滤器 Filter,用于对处理器进行预处理和后处理。将拦截器按一定的顺序联结成一条链,这条链称为拦截器链(Interceptor Chain)。在访问被拦截的
2022-04-14 11:01:52 109
原创 页面以post方式请求数据乱码问题
post方式请求数据乱码问题 解决方法:在学习spring MVC时以post方式请求数据发生乱码:可以在web.xml中配置filter过滤器进行解决:<!-- 解决乱码过滤器--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.C
2022-04-14 09:08:45 230
原创 Spring JdbcTemplate基本使用
Spring JdbcTemplate基本使用(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架Spring JdbcTemplate基本使用 Spring JdbcTemplate基本使用1、 JdbcTemplate基本使用2、 Spring产生JdbcTemplate对象1、 JdbcTemplate基本使用1、配置资源<!--导入spring的jdbc坐标-->\ <dependency> <groupId>org.springframe
2022-03-23 20:39:04 116
原创 SpringMVC的请求和响应
SpringMVC的请求和响应(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架SpringMVC的请求和响应SpringMVC的请求和响应1、 SpringMVC的数据响应1)SpringMVC的数据响应方式2)页面跳转1、 SpringMVC的数据响应1)SpringMVC的数据响应方式1) 页面跳转直接返回字符串通过ModelAndView对象返回2) 回写数据直接返回字符串返回对象或集合2)页面跳转1. 返回字符串形式直接返回字符串:此种方式会将返回的字符串与
2022-03-21 19:42:04 127
原创 SpringMVC组件解析
SpringMVC组件解析(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架SpringMVCSpringMVC组件解析SpringMVC组件解析1、 SpringMVC的执行流程:2、SpringMVC组件解析3、SpringMVC注解解析4、SpringMVC的XML配置解析1、 SpringMVC的执行流程:① 用户发送请求至前端控制器DispatcherServlet。② DispatcherServlet收到请求调用HandlerMapping处理器映射器。③ 处理器映射器找
2022-03-19 23:34:01 165
原创 SpringMVC入门,集成web环境
SpringMVC入门(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架SpringMVC入门SpringMVC入门1、Spring集成web环境ApplicationContext应用上下文获取方式Spring提供获取应用上下文的工具导入Spring集成web的坐标配置ContextLoaderListener监听器通过工具获得应用上下文对象1、Spring集成web环境ApplicationContext应用上下文获取方式应用上下文对象是通过new ClasspathXmlApplica
2022-03-18 17:16:23 245
原创 Spring注解开发及集成Junit
Spring注解开发,集成Junit(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架Spring注解开发,集成JunitSpring注解开发,集成Junit1、 Spring原始注解2、 Spring新注解1、 Spring原始注解Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率。Spring原始注解主要是替代的配置注意:使用注解进行开发时,需要在applicationContext.xml中配置组
2022-03-18 11:27:20 260
原创 Spring配置数据源
Spring配置数据源(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架Spring配置数据源Spring配置数据源1、数据源的开发步骤2、数据源的手动创建3、Spring配置数据源4、抽取jdbc配置文件1、数据源的开发步骤① 导入数据源的坐标和数据库驱动坐标② 创建数据源对象③ 设置数据源的基本连接数据④ 使用数据源获取连接资源和归还连接资源2、数据源的手动创建1)导入c3p0和druid的坐标 <!--druid连接池--> <
2022-03-17 17:12:47 1122
原创 Spring相关API
Spring相关API(新手笔记,参考自黑马程序员)黑马程序员最全ssm框架Spring相关APISpring相关API1、ApplicationContext的继承体系2、 ApplicationContext的实现类3、getBean()方法使用:1、ApplicationContext的继承体系applicationContext:接口类型,代表应用上下文,可以通过其实例获得 Spring 容器中的 Bean 对象。2、 ApplicationContext的实现类1)ClassPat
2022-03-16 20:30:36 286
原创 mybatis-逆向工程
mybatis-逆向工程(新手笔记,参考自尚硅谷)尚硅谷mybatis实战缓存mybatis-逆向工程1、介绍1、介绍MyBatis Generator:简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、存储过程等这些复杂sql的定义需要手工编写。官方文档地址:http://www.mybatis.org/generator/ 官方工程地址:https://
2022-02-23 22:20:26 140
原创 mybatis-缓存
mybatis-缓存(新手笔记,东西比较乱,参考自尚硅谷)尚硅谷mybatis实战缓存mybatis-缓存1、缓存介绍1、缓存介绍mybatis包一个查询缓存特性,可以极大的提高查询效率。mybatis系统默认定义了两级缓存。一级缓存二级缓存。*(1)默认情况,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。*(2)二级缓存需要手动开启和配置,他是基于namespace级别的缓存。<SqlSession和namespace>*(3)为了提高扩展性。mybat
2022-02-18 21:25:39 108
原创 mybatis-动态sql
mybatis-动态sql尚硅谷• if:判断• choose (when, otherwise):分支选择;带了break的swtich-case如果带了id就用id查,如果带了Name就用Name查;只会进入其中一个• trim 字符串截取(where(封装查询条件), set(封装修改条件))• foreach 遍历集合**1、if的使用(&OGNL):<!-- test:判断表达式(OGNL) c:if test 从参数中取值进行判断 遇见特殊符
2022-02-08 16:27:10 1263
原创 java学习之接口(基础知识及在开发中的应用)
小知识:增强for循环:注:增强型for循环只能用来取值,却不能用来修改数组里的值public class HelloWorld { public static void main(String[] args) { int values [] = new int[]{18,62,68,82,65,9}; //常规遍历 for (int i = 0; i < values.length; i++) { int each
2021-09-02 20:14:02 265 1
原创 java学习之构造,继承,多态
java学习之(萌新每日记录,求指点)内容参考自b站动力节点及疯狂java讲义.一、构造方法:1、构造方法语法结构:【修饰符列表】 构造方法名 (形式参数列表){构造方法体;}2、回顾普通方法的语法结构:【修饰符列表】 返回值类型 方法名(形式参数列表){方法体;}3、构造方法的“返回值类型”,不需要指定,也不需要写void。4、构造方法的方法名必须和类名保持一致。5、构造方法的作用:(1)通过构造方法创建对象。(2)创建对象的同时,初始化实例变量的内存空间。看代码:pub
2021-08-12 15:30:56 113
原创 java学习day03—封装
今日java学习:碎片化知识:1、栈中6、主要存储方法体中的局部变量。2、方法的代码片段以及整个类的代码片段都被存储到方法区内存当中,在类加载的时候这些代码片段会载入。3、使用new运算符创建的java对象,存储在堆内存中。对象内部有实例变量,所以实例变量存储在堆内存中。4、变量分类:·局部变量【方法体中声明】·成员变量【方法体外声明】·实例变量【前边修饰符没有static】·静态变量【前边修饰符有static】5、静态变量存储在方法区内存中。6、最先有数据的是方法区内存,垃圾回收器主
2021-08-10 13:44:06 155 1
原创 java学习之方法执行内存分析,方法重载,递归
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-08-08 16:54:31 204 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人