摘要: 什么是配置类 @configuration被这个注解所修饰的类,就是配置类 spi的扩展机制 什么是SPI spi的全称是Service Provider Interfacce,是一种服务发现机制,通过meta-inf/service下的文件中的类路径来加载类。这一机制使得很多框架都可以基于spi进 阅读全文
posted @ 2024-02-05 12:49 马崮蚂蚁哥 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 锁分类 读锁(共享锁) 写锁(排他锁) 按照锁的粒度划分 全局锁 锁整个数据库,一般用于数据迁移、数据备份 表锁 一般用于alter table、drop table、trunck table、lock table 行所 select...for udpate、insert、update、delet 阅读全文
posted @ 2024-01-29 11:25 马崮蚂蚁哥 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 什么是阻塞队列 阻塞队列是一种特殊的队列,它支持线程安全并发操作的同时提供了阻塞操作功能。在阻塞队列中,当队列为空时,从队列中取元素的操作将被阻塞,而当队列已满时,往队列中放元素的操作也会被阻塞。 阻塞队列的应用场景 阻塞队列常用于生产者和消费者的场景,生产者是向队列里添加元素的线程,消费者是从队列 阅读全文
posted @ 2023-10-10 16:28 马崮蚂蚁哥 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 什么是零拷贝? 零拷贝是一种高效的数据传输技术,它可以将数据从内核空间直接传输到应用程序的内存空间中。 传统的数据传输过程通常需要经历多次内存拷贝。首先,从磁盘读取数据,然后将数据从内核空间拷贝到用户空间,再从用户空间拷贝到应用程序的内存中。这些额外的拷贝会消耗大量的CPU资源和内存带宽,降低数据传 阅读全文
posted @ 2023-10-09 17:03 马崮蚂蚁哥 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 什么是NIO? Java NIO(New IO 或 Non Blocking IO)是从 Java 1.4 版本开始引入的一个新的 IO API,可以替代标准的 Java IO API。NIO 支持面向缓冲区的、基于通道的 IO 操 作。NIO 将以更加高效的方式进行文件的读写操作。nio包括了网络 阅读全文
posted @ 2023-10-09 15:49 马崮蚂蚁哥 阅读(6) 评论(0) 推荐(0) 编辑
摘要: ##Caffeine是什么? Caffeine是使用Java8对Guava缓存的重写版本。大大改善了设计Guava's cache 和 ConcurrentLinkedHashMap 的体验。 Caffeine是一种高性能的缓存库,是基于Java 8的最佳(最优)缓存框架。 ##Guava Cach 阅读全文
posted @ 2021-12-07 16:19 马崮蚂蚁哥 阅读(712) 评论(0) 推荐(0) 编辑
摘要: #代理 A同学和C同学不熟悉,但A同学和B同学比较熟悉,B同学和C同学也比较熟悉 此时,A同学通过B同学向C同学借了500元,此时B同学就是代理 C同学并不知道是借给A的,C同学只知道是借给B的 #反向代理 校长告诉班主任,你们班把操场打扫一下,班主任从班级里选了一位同学去打扫,此时班主任就是反向代 阅读全文
posted @ 2021-11-19 16:18 马崮蚂蚁哥 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 查找nginx位置(30853为pid) ll proc/30853/exe 如果通过ll proc/pid/exe命令查到的文件位置为/opt/soft/nginx/sbin/nginx 那么,可是使用下面的命令查找配置文件位置 /opt/soft/nginx/sbin/nginx -t 阅读全文
posted @ 2021-11-09 10:33 马崮蚂蚁哥 阅读(30) 评论(0) 推荐(0) 编辑
摘要: Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化。 k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。 与传统技术对比: 一、从虚拟化角度: 上图是Docker容器(可用k8 阅读全文
posted @ 2021-09-10 13:53 马崮蚂蚁哥 阅读(1602) 评论(0) 推荐(0) 编辑
摘要: #sql注入 sql注入 一般用户登录用的SQL语句为:SELECT * FROM user WHERE username='admin' AND password='passwd',此处admin和passwd分别为用户输入的用户名和密码,如果开发者没有对用户输入的用户名和密码做处理,就可以构造万 阅读全文
posted @ 2021-09-08 21:06 马崮蚂蚁哥 阅读(444) 评论(0) 推荐(0) 编辑
摘要: svn与git的区别 git是分布式的,有本地和远程两个版本库,SVN是集中式,只有一个远程版本库; git的内容是按元数据方式存贮,所有控制文件在.git中,svn是按文件处理,所有资源控制文件在.svn中; svn的分支是一个目录,git不是; git没有一个全局的版本号,svn有 svn与gi 阅读全文
posted @ 2021-08-09 10:57 马崮蚂蚁哥 阅读(40) 评论(0) 推荐(0) 编辑
摘要: jdk各种版本 http://www.oracle.com/technetwork/java/javase/archive 139210.html 阅读全文
posted @ 2019-09-24 17:24 马崮蚂蚁哥 阅读(167) 评论(0) 推荐(0) 编辑
摘要: TCP建立连接三次握手 c to s :SYN=1 seq=x s to c :SYN=1 ACK=1 seq=y ack=x+1 c to s :ACK=1 seq=x+1 ack=y+1 TCP断开连接四次挥手 c to s : FIN=1 seq=j s to c : ACK=1 seq=k 阅读全文
posted @ 2019-08-16 16:28 马崮蚂蚁哥 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 常用方案 1.异步化+MQ 即非阻塞,化繁为简,拿到你需要处理的资源后尽快回复。适用于事务处理场景,且无需对上游返回数据场景。 2.无锁设计 本质上是要降低锁冲突,基于数据版本的乐观锁 有效的减少了互斥资源的范围,优点不言而喻。 3.batch处理 批量查询、批量commit,基本上操作慢速设备或者 阅读全文
posted @ 2019-07-24 16:45 马崮蚂蚁哥 阅读(793) 评论(0) 推荐(0) 编辑
摘要: jvm基本知识 Xms3072M java堆内存大小 Xmx3072M java堆内存的最大大小 Xmn2048M java堆内存中的新生代大小,扣除新生代剩下的就是老年代的内存大小了 Xss1M 每个线程的栈内存大小 XX:PermSize=256M 永久代大小 XX:MaxPermSize=25 阅读全文
posted @ 2019-07-22 16:09 马崮蚂蚁哥 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 区块链 区块链是一种分布式数据库,是一串使用密码学方法相关联产生的数据块,每个数据块都包含了一次网络交易信息,用于验证其信息的有效性(每个区块都含有其上一个区块的哈希值,确保区块按照时间顺序连接的同时没有被篡改) 1、去中心化 这是区块链颠覆性特点,不存在任何中心机构和中心服务器,所有交易都发生在每 阅读全文
posted @ 2019-07-15 11:30 马崮蚂蚁哥 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一. 数据切分 1、垂直(纵向)切分 2、水平(横向)切分 垂直(纵向)切分 垂直分库 根据业务耦合性,将关联度低的不同表存储在不同的数据库 垂直分表 基于数据库中的"列"进行,某个表字段较多,可以新建一张扩展表,将不经常用或字段长度较大的字段拆分出去到扩展表中 水平(横向)切分 1、根据数值范围 阅读全文
posted @ 2019-07-10 14:11 马崮蚂蚁哥 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 1、两阶段 角色 协调者 参与者 两阶段 第一阶段 协调者将任务发送给每一个参与者,参与者执行,但不提交,并把执行结果返回给协调者 第二阶段 协调者收到参与者返回的结果, 如果结果是《全部都返回了可以执行》,此时,协调者向所有参与者发送commit,参与者执行commit,然后把结果返回给协调者 如 阅读全文
posted @ 2019-07-10 11:54 马崮蚂蚁哥 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 什么是IOC? 控制反转(Inversion of Control),也叫做依赖注入DI(Dependency Injection) 控制反转的由来? 软件系统在没有引入IOC容器之前,假如对象A依赖于对象B,那么对象A在初始化或者运行到某一点的时候,自己必须主动去创建对象B或者使用已经创建的对象B 阅读全文
posted @ 2019-07-04 15:16 马崮蚂蚁哥 阅读(346) 评论(0) 推荐(0) 编辑
摘要: Paxos算法中的角色 1、Proposer 发起提案者 2、Acceptor 接受提案者 3、Learners 学习提案者 提案内容 1、提案编号N 2、提案的内容V Paxos算法描述 阶段一(prepare): (a) Proposer选择一个提案编号N,然后向半数以上的Acceptor发送编 阅读全文
posted @ 2019-07-03 11:46 马崮蚂蚁哥 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 索引 正向索引(forward index),反向索引(inverted index)更熟悉的名字是倒排索引。 正向索引 在搜索引擎中每个文件都对应一个文件ID,文件内容被表示为一系列关键词的集合。例如“文档1”经过分词,提取了20个关键词,每个关键词都会记录它在文档中的出现次数和出现位置。 得到正 阅读全文
posted @ 2019-06-28 18:11 马崮蚂蚁哥 阅读(146) 评论(0) 推荐(0) 编辑
摘要: redis和memcache的比较 1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储; 2 、Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘; 3 、memcache挂掉后,数据没了;redis可以定期保存到磁盘(持久化 阅读全文
posted @ 2019-06-25 10:28 马崮蚂蚁哥 阅读(303) 评论(0) 推荐(0) 编辑
摘要: Keepalived Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障。一个LVS服务会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服 阅读全文
posted @ 2019-06-24 14:45 马崮蚂蚁哥 阅读(205) 评论(0) 推荐(0) 编辑
摘要: LVS LVS(Linux Virtual Server)即Linux虚拟服务器 目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案 终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器 阅读全文
posted @ 2019-06-24 14:43 马崮蚂蚁哥 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 美团dbproxy只支持mysql 读写分离 负载均衡 分库分表 IP过滤 sql黑名单 支持DB平滑上下线 限制总连接数 阿里Mycat 读写分离 分库分表 ...... 阅读全文
posted @ 2019-06-24 14:03 马崮蚂蚁哥 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1、使用不等于操作符(, !=) 大于可以、小于可以,between and 也可以 2、使用 is null 或 is not null 任何包含null值的列都将不会被包含在索引中。 解决这个问题的办法就是:建表时把需要索引的列 定义为非空(not null) 3、索引列使用函数或计算 WHER 阅读全文
posted @ 2019-06-24 10:10 马崮蚂蚁哥 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 二叉搜索树 每个节点只存储一个关键字, 每个节点最多有两个子节点, 左子节点存储的关键字小于本节点存储的关键字 右子节点存储的关键字大于本节点存储的关键字 搜索时,从根节点开始搜索,小于走左结点,大于走右结点,等于则命中; 平衡二叉树 在原二叉搜索树的基础上加上平衡算法,即为平衡二叉树 平衡算法 平 阅读全文
posted @ 2019-06-20 20:43 马崮蚂蚁哥 阅读(953) 评论(0) 推荐(1) 编辑
摘要: 二叉搜索树 每个节点只存储一个关键字, 每个节点最多有两个子节点, 左子节点存储的关键字小于本节点存储的关键字 右子节点存储的关键字大于本节点存储的关键字 搜索时,从根节点开始搜索,小于走左结点,大于走右结点,等于则命中; 平衡二叉树 在原二叉搜索树的基础上加上平衡算法,即为平衡二叉树 平衡算法 平 阅读全文
posted @ 2019-06-20 12:12 马崮蚂蚁哥 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 1、myisam只支持表级锁 Innodb支持行级锁 2、myisam不支持事务 Innodb支持事务 3、myisam不支持外键 Innodb支持外键 4、myisam支持全文索引,Innodb不支持 5、myisam本身存储了表的总数据行,Innodb没有存储,查总行数myisam更快,如果加了 阅读全文
posted @ 2019-06-19 20:38 马崮蚂蚁哥 阅读(4249) 评论(0) 推荐(0) 编辑
摘要: 常用数据库的默认隔离级别 MySQL的默认隔离级别是Repeatable Oracle的默认隔离级别是Read committed 事务的隔离级别 1、未提交读(Read uncommitted) 2、提交读(Read committed) 3、可重复读(Repeatable reads) 4、可序 阅读全文
posted @ 2019-06-19 20:08 马崮蚂蚁哥 阅读(572) 评论(0) 推荐(0) 编辑