- 博客(213)
- 收藏
- 关注
原创 Nginx_day05
VRRP(Virtual Route Redundancy Protocol)协议,翻译过来为虚拟路由冗余协议。VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP,而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,MASTER实现针对虚拟路由器IP的各种网络功能。其他设备不拥有该虚拟IP,状态为BACKUP,除了接收MASTER的VRRP状态通告信息以外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。
2024-08-21 10:35:35
1140
原创 实战篇Redis
在这个方案中,他确实可以使用对应路径的拦截,同时刷新登录token令牌的存活时间,但是现在这个拦截器他只是拦截需要被拦截的路径,假设当前用户访问了一些不需要拦截的路径,那么这个拦截器就不会生效,所以此时令牌刷新的动作实际上就不会执行,所以这个方案他是存在问题的前言什么是缓存?就像自行车,越野车的避震器举个例子:越野车,山地自行车,都拥有"避震器",防止车体加速后因惯性,在酷似"U"字母的地形上飞跃,硬着陆导致的损害,像个弹簧一样;
2024-03-06 22:38:54
1733
原创 4,多级缓存
传统的缓存策略一般是请求到达Tomcat后,先查询Redis,如果未命中则查询数据库,如图: 存在下面的问题:•请求要经过Tomcat处理,Tomcat的性能成为整个系统的瓶颈•Redis缓存失效时,会对数据库产生冲击多级缓存就是充分利用请求处理的每个环节,分别添加缓存,减轻Tomcat压力,提升服务性能:浏览器访问静态资源时,优先读取浏览器本地缓存访问非静态资源(ajax查询数据)时,访问服务端请求到达Nginx后,优先读取Nginx本地缓存如果Nginx本地缓存未命中,则去直接查询Redis(不经过To
2024-03-05 21:13:04
1261
原创 javase-数组
来,继续啊,下面我们来学习数组。那什么是数组呢?为了帮助大家理解,这里我们来看这样的一个场景:看这里,有一个学员的考试成绩,为了存储这个学员的考试成绩,我们可以采用一个变量进行存储。但是,假如这里有很多个学员的考试成绩,我们要存储该怎么办呢?估计有同学就想到了,采用多个变量存储不就行了吗。对,想的没错。确实可以采用多个变量进行存储,只不过将来要对这多个变量进行操作就比较麻烦了,比如说:找到成绩最高的学员。按照我们学过的获取两个数的较大值,需要编写大量的判断逻辑才能完成这个操作。
2024-03-05 18:47:52
1087
原创 常用API(2)
能够使用String类的功能完成用户登录案例能够使用String类的功能完成聊天室案例能够使用Integer类的功能完成猜数字案例能够使用Date类和SimpleDateFormat类的功能完成手机日期和时间显示案例能够使用Date类和SimpleDateFormat类的功能完成考勤查询案例。
2024-03-05 18:32:39
944
原创 常用API(1)
来,继续啊,我们在讲解面向对象的时候,提到了学习面向对象重点就是学习两块内容:第一块:学习如何自己设计对象并使用第二块:学习获取已有对象并使用而关于第一块知识:学习如何自己设计对象并使用,我们现在已经有一些基础了。通过前面的学习呢,我们知道了如何定义类,并通过构造方法创建对象,然后通过对象使用成员变量和成员方法。接下来,我们要学习的是第二块知识:获取已有对象并使用。而获取已有对象并使用呢,在Java中我们习惯称之为常用API的学习。所以下面我们来学习常用API。:应用程序编程接口。
2024-03-05 18:23:02
1130
原创 Spring第三天
问题1:AOP的作用是什么?问题2:AOP有哪些使用场景?问题3:AOP?AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构OOP(Object Oriented Programming)面向对象编程作用:在不惊动原始设计的基础上为其进行功能增强。简单的说就是在不改变方法源代码的基础上对方法进行功能增强。Spring理念:无入侵式/无侵入式//通知类必须配置成Spring管理的bean@Component。
2024-03-02 22:26:15
896
原创 Spring第二天
问题:按照Bean名称获取Bean有什么弊端,按照Bean类型获取Bean有什么弊端?BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能ApplicationContext接口常用初始化类。
2024-03-02 22:05:58
1009
原创 Spring第一天
我们为什么要学习Spring框架?生命周期:从创建到消亡的完整过程bean生命周期:bean从创建到销毁的整体过程bean生命周期控制:在bean创建后到销毁前做一些事情。
2024-03-02 21:32:09
952
原创 idea快捷键
查看接口实现类中方法(就是我们使用接口编程时,在调用实现类方法处直接Ctrl+鼠标左键方法,只能进入到接口中定义的方法处,但是使用该快捷键则直接到实现类的该方法中了)Alt + Shift + F7 在 Debug 模式下,下一步,进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入。F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中。Ctrl + Alt + F7 显示使用的地方。
2024-02-29 17:27:04
390
原创 Redission分布式锁
在实际生产情况下,拿到锁的微服务如果宕机了,锁没有释放,怎么办,可以给key设置过期时间;如果拿到锁的服务宕机了,锁没有释放怎么办,redis中锁的默认失效时间是30秒,如果30秒之后,拿到锁的微服务的业务代码还没有执行完,redission有一个自动续约功能,通过watchdog机制来实现,只要微服务加锁成功了,它会启动后台的一个调度线程,这个线程会每隔10秒把失效时间重置为30秒,如果加锁的redis节点宕机了,那么watchdog也会释放,那么30秒之后,这个锁也会释放。运行完代码之后查看数据库。
2024-02-28 16:41:42
3578
1
原创 js简单了解
1.JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web的操作。说明:脚本语言。脚本理解为剧本,按照脚本书写的代码执行即可,不需要编译。直接运行。举例:php Python java中从jdk9引入一个jshell脚本语言。2.JavaScript 是可插入 HTML 页面的编程代码。就是我们可以在html页面中书写JavaScript代码,用来操作html的标签以及css样式。3.JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
2024-02-26 19:04:27
871
原创 前端知识介绍
1.HTML 指的是超文本标记语言: Hyper Text Markup Language1)超文本:超过普通文本。普通文本是.txt,普通文本只能书写字符数据。超文本是除了可以存放字符数据,还可以存放视频、音频图片等2)标记:标签。主要用来标识的。超链接标签:a 图片标签:img 输入框标签:input2.HTML作用: 使用标记标签来描述网页。即写网站网页的。相当于整个网页的架构。3.html的标签有两种:1)双标签:
2024-02-26 15:48:54
1227
原创 二,Redis
Redis是支持事务的, 对于上述问题可以通过事务控制解决。举一个事务的经典例子:转账A给B汇款,那么A账户会扣钱B账户会加钱这两个步骤一定会存在于一个事务中,要么都成功,要么都失败。Redis事务是基于队列实现的,创建一个事务队列,然后将事务操作都放入队列中,最后依次执行。RDB(Redis DataBase)是Redis默认存储方式。其基于快照思想,当符合一定条件(手动或自动触发)时,Redis会将这一刻的内存数据进行快照并保存在磁盘上,产生一个经过压缩的二进制文件,文件后缀名.rdb。
2024-02-14 16:17:10
997
原创 一,Redis
Redis是一个基于内存的key-value结构数据库。它是「RemoteDictionaryService」的首字母缩写,也就是「远程字典服务-remote dictionary server」。基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛。
2024-02-14 15:40:44
883
原创 二,Linux
前面介绍的项目部署是手动部署,也就是部署过程中的每一步操作都需要我们手动操作。接下来,我们需要再讲解一下项目的自动部署,从而来简化项目部署的操作,那么我们先来整体上了解一下项目自动部署的流程及操作步骤。操作步骤如下:1). 在Gitee/gitlab上创建远程仓库,并将本地的项目代码推送到远程仓库中2). 在Linux中安装Git,克隆代码3). 在Linux中安装maven4). 编写Shell脚本(拉取代码、编译、打包、启动)5). 为用户授予执行Shell脚本的权限。
2024-02-14 14:31:11
871
原创 三,MySQL多表&事务
INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('孙悟空','男',7200,'2013-02-24',1);INSERT INTO emp(NAME,gender,salary,join_date,dept_id) VALUES('蜘蛛精','女',4500,'2011-03-14',1);(1003,'林冲',3,1006,'2001-02-22','12500.00','5000.00',30),
2024-02-13 22:03:57
678
原创 二,MySQL约束
1. DQL:查询语句1. 排序查询2. 聚合函数3. 分组查询4. 分页查询2. 约束3. 多表之间的关系4. 范式5. 数据库的备份和还原。
2024-02-13 21:58:56
458
原创 一,Linux
Linux是一套免费使用和自由传播的操作系统。说到操作系统,大家比较熟知的应该就是Windows和MacOS操作系统,我们今天所学习的Linux也是一款操作系统。不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。接下来,这几个领域中,代表性的操作系统是那些?1). 桌面操作系统操作系统特点Windows用户数量最多MacOS操作体验好,办公人士首选Linux用户数量少(桌面操作系统,Linux使用较少)2). 服务器操作系统。
2024-02-13 19:40:52
1173
原创 一,RabbitMQ-基础篇
基本消息队列的消息发送流程:建立connection创建channel利用channel声明队列利用channel向队列发送消息基本消息队列的消息接收流程:建立connection创建channel利用channel声明队列定义consumer的消费行为handleDelivery()利用channel将消费者与队列绑定SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。
2024-02-13 18:52:29
962
原创 二,RabbitMQ-高级篇
每个RabbitTemplate只能配置一个ReturnCallback,因此需要在项目加载时配置:@Slf4j@Override// 获取RabbitTemplate// 设置ReturnCallback// 投递失败,记录日志log.info("消息发送失败,应答码{},原因{},交换机{},路由键{},消息{}",// 如果有业务需要,可以重发消息});/*** @param correlationData 自定义的数据* @param ack 是否确认。
2024-02-13 17:35:49
1104
原创 一,Docker实用篇
数据卷(volume)是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了之前学习的镜像都是DockerHub官方制作的镜像,我们在实际开发中自己写的代码是否可以让DockerHub官方帮助我们制作镜像呢?
2024-02-13 01:45:05
1068
原创 微服务保护
什么是雪崩问题?微服务之间相互调用,因为调用链中的一个服务故障,引起整个链路都无法访问的情况。限流是对服务的保护,避免因瞬间高并发流量而导致服务故障,进而避免雪崩。是一种预防措施。超时处理、线程隔离、降级熔断是在部分服务故障时,将故障控制在一定范围,避免雪崩。是一种补救措施。Sentinel是阿里巴巴开源的一款微服务流量控制组件。Sentinel 具有以下特征:•丰富的应用场景。
2024-02-12 14:08:24
1136
原创 二,SpringCloud
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplate类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式默认是SpringMVC的注解失败重试机制。
2024-02-11 20:54:45
748
原创 一,SpringCloud
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件SpringCloudRibbon的底层采用了一个拦截器,拦截了RestTemplate发出的请求,对地址做了修改。
2024-02-11 20:29:32
937
原创 一, MybatisPlus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生(提供了快速使用mybatis的方式)。或Redirect注意事项:1.如果主键对应的实体类属性中没有设置主键的生成策略,那么MP自动为主键生成值,且回填到实体对象下;2.如果未指定主键生成策略,即使表的主键是主键自增,也不会使用主键自增;@TableId注解作用:映射表中主键字段与实体类属性的关系(尤其表中主键字段名称与实体类属性名称不一致时);
2024-02-11 19:29:11
775
原创 六,javase-方法
来,继续啊,下面我们来学习Java中很重要的一个知识,就是方法,那什么是方法呢?就是完成特定功能的代码块如何理解这句话呢?来,我们看一段代码,相信这个大家应该已经很熟悉了这就是我们的main方法,也就是我们说的主方法。它里面的代码的功能:是在控制台输出一个字符串数据:HelloWorld我们再来看另一段代码:这里出现了三个方法,主方法的作用,还是在控制台输出一个字符串数据:HelloWorld。而后面这两个方法的作用:分别是在控制台输出字符串数据:method1和method2。
2024-02-08 15:09:15
861
原创 五,循环语句
能够理解循环语句的四个组成部分能够知道三种循环的各自格式和执行流程能够知道三种循环的区别能够使用循环语句完成今日案例能够知道跳转语句的使用场景。
2024-02-08 14:53:15
1038
原创 三,分布式搜索引擎
默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。elasticsearch中分词器(analyzer)的组成包含三部分:character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符tokenizer:将文本按照一定的规则切割成词条(term)。例如keyword,就是不分词;还有ik_smarttokenizer filter:将tokenizer输出的词条做进一步处理。
2024-02-07 22:12:22
757
原创 二,分布式搜索引擎
match和multi_match的区别是什么?match:根据一个字段查询multi_match:根据多个字段查询,参与查询字段越多,查询性能越差精确查询常见的有哪些?
2024-02-07 21:42:17
1228
原创 一,分布式搜索引擎
什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能什么是elastic stack(ELK)?是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch什么是Lucene?是Apache的开源搜索引擎类库,提供了搜索引擎的核心API分词器的作用是什么?创建倒排索引时对文档分词用户搜索时,对输入的内容分词IK分词器有几种模式?ik_smart:智能切分,粗粒度。
2024-02-07 19:39:07
1456
原创 四,运算符&选择语句
能够知道每种运算符的作用及使用特点能够理解+操作的三种情况能够知道顺序结构语句的执行流程能够使用Debug查看程序的执行流程能够根据需求选择合适的if语句实现能够知道switch语句执行流程和注意事项1:运算符前面我们学过了通过字面量和变量来表示一个数据,这里呢,我们来学习对数据进行运算。对字面量或者变量进行操作的符号用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。举例说明:**int a = 10;
2024-02-06 21:00:06
715
原创 三,标识符
比如,我们前面写类的时候,起的名字:HelloWorld,变量的时候,价格,price等,这就是标识符。按照我们讲解的规则,大家应该能够判断出来:2b和class是不符合规则的。约定2:标识符是多个单词的时候,第一个单词首字母小写,其他单词首字母大写。比如,我们前面讲解过的变量的案例中,我们起的名字就做到了见名知意。知道了标识符的组成规则和注意事项后,这里我们再说一下起名字常用的。约定2:标识符是多个单词的时候,每个单词首字母大写。约定1:标识符一个单词的时候,首字母小写。范例2:HelloWorld。
2024-02-06 20:38:03
302
原创 二,关键字
常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观。就是被Java语言赋予了特定含义的单词。了解了什么是关键字后,我们来说一下。关键字的字母全部小写。
2024-02-06 20:37:10
342
原创 一,数据类型
这样呢,我们就了解了Java中的8种基本数据类型,以及每种数据类型占用字节的情况和取值范围。关于数据类型,我们就先讲到这里。今天我们重点学习的是基本数据类型,关于引用数据类型,后面我们会重点学习。E+38表示:乘以10的38次方。同理E-45表示:乘以10的负45次方。浮点数默认是:double类型。整数默认是:int类型。
2024-02-06 20:35:23
239
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人