- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 专题三 Redis哨兵高可用架构
专题三、Redis哨兵高可用架构3.1 哨兵集群sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态
2022-05-24 17:24:36
207
原创 Netty中的handler类,通过@Autowired注入的类显示为Null
Netty中的handler类,通过@Autowired注入的类显示为Null
2022-04-13 13:22:55
1247
原创 Explain工具介绍
Explain工具介绍使用EXPLAIN关键字可以模拟优化器执行SQL语句,分析你的查询语句或是结构的性能瓶颈在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询会返回执行计划的信息,而不是执行这条SQL注意:如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中Explain分析示例参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html1 示例表:DROP
2022-03-22 19:37:46
264
原创 HTTP/HTTPS高频面试题
高频题目:HTTP/HTTPS1.HTTP协议的缓存策略有哪些?re: 强制缓存、协商缓存HTTP协议的缓存策略有两种,分别是强制缓存和协商缓存,强制缓存的优先级大于协商缓存。强制缓存:强制缓存是服务器告诉浏览器一个缓存时间,在缓存时间内,下次请求,直接用缓存,不在时间内,执行协商缓存策略协商缓存:协商缓存是让客户端与服务器之间能实现缓存文件是否更新的验证、提升缓存的复用率,将缓存信息中的Etag和Last-Modified字段通过请求发送给服务器,由服务器校验。如果文件没有改变,那么直接返回30
2022-02-24 22:15:14
533
原创 QT入门笔记(一)QT信号和槽
QT入门笔记Qt事件Qt 事件指的是应用程序和用户之间的交互过程,例如用户按下某个按钮,点击某个输入框等等。实际上除了用户会与应用程序进行交互外,操作系统也会与应用程序进行交互,例如当某个定时任务触发时,操作系统会关闭应用程序,这也是一个事件。Qt 界面程序的 main() 主函数中首先要创建一个 QApplication 类的对象,函数执行结束前还要调用 QApplication 对象的 exec() 函数。一个 Qt 界面程序要想接收事件,main() 函数中就必须调用 exec() 函数,它的功
2022-02-23 22:16:16
4955
原创 秒杀系统(三)Redis缓存和分布式锁
秒杀系统03——多级缓存缓存:后台问题描述访问数据库查询商品信息:读多写少前端静态化页面:上篇通过我们对数据进行静态化,也是有很多问题的,比如我们商品如果过多,freemark模板一定修改之后,我们所有的商品都需要重新再次生产静态化,这个工作量实在是太大了。引入缓存:缓存作用:Redis缓存实战:加入Redis/** * 获取商品详情信息 加入redis * * @param id 产品ID */ public PmsProductP
2022-02-15 22:09:20
1162
原创 深入理解IO模型
Netty01——深入理解IO模型与EpollIO模型IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式:BIO,NIO,AIOBIO(Blocking IO)同步阻塞模型,一个客户端连接对应一个处理线程BIO代码示例:package com.tuling.bio;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket;public class S
2022-02-15 10:28:50
202
原创 MongoDB基础
MongoDB近期实验室项目使用到Mongo,就深入学习一下Mongo,并顺带学习一下和mysql的区别MongoDB基础Mongo 和 关系型数据库的区分下面是自己总结的几点和mysql的区分:1、Mysql分表分库 ,需要利用到例如mycat这些分表分库工具,而Mongo因为是文档存储,因此只能横切数据库,就是将大数据按一定规则存放不同的服务器,使用的工具的mongos。展示mysql使用分表分库的工具类,就不展开说了2、MongoDB 以前的版本是用的是B树,最新版本的开始采用B+
2021-12-14 18:23:54
1251
原创 消息队列——RabbitMq学习
消息队列的学习MQ的常见同类消息队列基本有4个部分组成:Producer、Exchange、Queues、Consumer都是服务JMS :java Message ServiceVirtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等Conn
2021-12-10 09:59:09
788
原创 AOP——实现
AOPAOP作为Spring中核心的部分,重点研究一下。其实AOP的概念不难,主要就是为了降低解耦度然后减少代码的冗余。日志一般使用的是AOP计数,类似下面这张图1.1 AOP的底层原理AOP的底层原理,动态代理动态代理的代理类是动态生成的,不是直接写好的!动态代理分为两大类:基于接口的动态代理,基于类的动态代理基于接口——JDK动态代理基于类:cglib类java字节码实现:javasist需要了解两个类:Proxy: 代理类,InvocationHandler : 调用处理程序
2021-12-07 21:12:18
422
原创 跨域问题总结
跨域问题背景:由于实验室项目时常产生跨域问题,因此就想写一篇博客来归纳和总结一下跨域问题[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NpjzOFWe-1635908096036)(G:\技术积累\跨域问题.assets\image-20211103103514540.png)]一、跨域的产生三个地方,任何一个不同都将产生跨域1、访问协议:http https2、访问地址 192.168.1.1 171.11.1.13、端口号:9528 8201
2021-11-03 10:56:09
295
原创 单点登陆学习笔记01——JWT
JWT前言JWT: Json Web Token。近期实验室项目比较多,想做一个单点登陆的项目,管理实验室的项目。第一节先学习一下JWT Token的基础知识。实现主要想用Spring Security+JWT实现。起源说起JWT,我们应该来谈一谈基于token的认证和传统的session认证的区别。传统的session认证介绍: 我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再一次进行用户认证才行,因为
2021-10-22 15:57:52
115
原创 Docker学习-------Docker和Dokcer-compose的网络
Docker网络理解Docker0测试,进入一个docker容器中,查看其网络环境三个网络#问题: docker是如何处理容器网络访问的?#查看容器的内部网络地址 ip addr#docker exec -it tomcat01 ip addr#linux可以ping通docker容器内部原理#每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker,就会又一个网卡docker0桥接模式,使用的技术是veth-pair技术!
2021-08-01 11:58:16
637
原创 Netty学习笔记
这是我目前写在本地的Netty相关基础知识,实验室项目用到Netty的项目比较多。打算深入学习一下Netty项目的源码,了解更深入一点。我们实验室主要是物联网实验室,会有很多个硬件设备接入,比如最近在做的雷达设备。一次部署可能要60个雷达去部署,因此需要Netty这种非阻塞的NIO来帮助我们项目来完成超多设备的TCP接入。下面的内容都是我自己平时写在本地的一些零碎知识,现在发布到博客中希望可以激励我更新正文开始NIO通信 会问Netty实现,优势是什么?1、并发高2、传输快3、封装好1
2021-07-31 17:44:00
425
原创 maven 打jar包缺失 resources 目录下的 jar 包
部署环境项目用到docker部署,发布的时候发现后台程序报错。很奇怪在本地能包的项目到服务器上就不能运行,查看报错日志后,发现是找不到自己导入的本地jar包依赖。万番搜索之下,找到只需要加个依赖便可。下面是我的错误提示和添加的依赖,等下次时间充裕我把我docker打包项目遇到的大坑也记录到博客中。正文开始警告 jar should not point at files within the project directory[WARNING] 'dependencies.dependency.sy
2021-07-30 19:36:39
1989
原创 优先队列——PriorityQueue详解
优先队列PriorityQueue(优先队列) 采用的是堆排序,实际上是一个堆(不指定Comparator时默认为最小堆)队列既可以根据元素的自然顺序来排序,也可以根据 Comparator来设置排序规则。队列的头是按指定排序方式的最小元素。如果多个元素都是最小值,则头是其中一个元素。新建对象的时候可以指定一个初始容量,其容量会自动增加。注意1: 该队列是用数组实现,但是数组大小可以动态增加,容量无限。注意2: 队列的实现不是同步的。不是线程安全的。如果多个线程中的任意线程从结构上修改了列表,
2021-05-17 15:13:31
25103
转载 Tomcat原理介绍
一、概念Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。二、原理Tomcat结构图:Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器Container是Tomcat的核心。一个Container容器和一个或多个Connector组合在一起,加上其他一些支持的组件共同组成一个Service服务,有
2021-05-07 09:23:06
290
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人