
中间件
文章平均质量分 75
什么啊什么Q
keep slow
展开
-
listeners和advertised.listeners区别
另外,NIUBI和NIUBITOO这个名字是随便取的,那么在listener.security.protocol.map这个配置中你就要指定NIUBI对应什么安全协议。当然如果你起的名字是SSL,PLAINTEXT这些名字,那么就会默认就有相应的SSL,PLAINTEXT安全协议啦!原创 2022-09-15 20:24:07 · 1464 阅读 · 0 评论 -
mysql的explain教程
在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描,这都可以通过explain命令来查看。所以我们深入了解MySQL的基于开销的优化器,还可以获得很多可能被优化器考虑到的访问策略的细节,以及当运行SQL语句时哪种策略预计会被优化器采用。-- 实际SQL,查找用户名为Jefabc的员工select * from emp转载 2021-03-05 18:50:54 · 221 阅读 · 0 评论 -
SQL 的union和union all 语句
SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2注释:默认地,UNION 操作符选取不同的值,即UNION是去了转载 2021-03-05 17:58:49 · 273 阅读 · 0 评论 -
ES high-level-client和DSL学习
一、ElasticSearch 简介中文官方文档链接https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.6/java-rest-high-getting-started.html1、简介ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多员工能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 语言开发的,并作为 Apache 许.转载 2021-01-05 15:38:02 · 1721 阅读 · 0 评论 -
mysql索引命中规则
1、如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引如果出现OR的一个条件没有索引时,建议使用union ,拼接多个查询语句2.、like查询是以%开头,索引不会命中只有一种情况下,只查询索引列,才会用到索引,但是这种情况下跟是否使用%没有关系的,因为查询索引列的时候本身就用到了索引3.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引...转载 2020-11-10 09:33:50 · 629 阅读 · 0 评论 -
zookeeper选举
一、前言 前面学习了Zookeeper服务端的相关细节,其中对于集群启动而言,很重要的一部分就是Leader选举,接着就开始深入学习Leader选举。二、Leader选举 2.1 Leader选举概述 Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。 (1) 服务器初始化启动。 (2) 服务器运行期间无法和Leader保持连接。 下面就两种情况进行分析讲解。 1. 服务器启转载 2020-09-21 19:23:38 · 189 阅读 · 0 评论 -
Kafka选举
Kafka是一个高性能,高容错,多副本,可复制的分布式消息系统。在整个系统中,涉及到多处选举机制,被不少人搞混,这里总结一下,本篇文章大概会从三个方面来讲解。控制器(Broker)选主 分区多副本选主 消费组选主控制器(Broker)选举所谓控制器就是一个Borker,在一个kafka集群中,有多个broker节点,但是它们之间需要选举出一个leader,其他的broker充当follower角色。集群中第一个启动的broker会通过在zookeeper中创建临时节点/controller来让转载 2020-09-21 19:21:30 · 169 阅读 · 0 评论 -
redis哨兵模式
1、Sentinel 哨兵 Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。 例如: 在Server1 掉线后: 升级Server2 为新的主服务器: 2、Redis 主从分离 在讲解Sen...转载 2020-09-16 11:26:16 · 235 阅读 · 0 评论 -
redis 缓存穿透、缓存击穿、缓存雪崩
正文上一期吊打系列我们提到了Redis的基础知识,还没看的小伙伴可以回顾一下敖丙:《吊打面试官》系列- Redis基础zhuanlan.zhihu.com那提到Redis我相信各位在面试,或者实际开发过程中对缓存雪崩,穿透,击穿也不陌生吧,就算没遇到过但是你肯定听过,那三者到底有什么区别,我们又应该怎么去防止这样的情况发生呢,我们有请下一位受害者。面试开始一个大腹便便,穿着格子衬衣的中年男子,拿着一个满是划痕的mac向你走来,看着快秃顶的头发,心想着肯定是尼玛顶级架构师吧!但是我...转载 2020-09-15 16:01:32 · 113 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案:接口层增加校验,如用户鉴权校验,id做基础校验,id<=0...转载 2020-09-11 18:55:36 · 72 阅读 · 0 评论 -
Union查询
1: 什么时候用union和union all ? 我们经常会碰到这样的应用,两个表的数据按照一定的查询条件查询出来以后,需要将结果合并到一起显示出来,这个时候就需要用到union和union all关键字来实现这样的功能,union和union all的主要区别是union all是把结果集直接合并在一起,而union 是将union all后的结果镜像一次distinct,去除重复的记录后的结果。 看下面的例子:查询一:查询二:...转载 2020-07-16 18:18:35 · 1395 阅读 · 0 评论 -
MySQL组合索引与最左匹配原则详解
前言之前在网上看到过很多关于mysql联合索引最左前缀匹配的文章,自以为就了解了其原理,最近面试时和面试官交流,发现遗漏了些东西,这里自己整理一下这方面的内容。什么时候创建组合索引?当我们的where查询存在多个条件查询的时候,我们需要对查询的列创建组合索引为什么不对没一列创建索引减少开销 覆盖索引 效率高减少开销:假如对col1、col2、col3创建组合索引,相当于创建了(col1)、(col1,col2)、(col1,col2,col3)3个索引覆盖索引:假如查询SELEC转载 2020-07-16 18:15:32 · 1120 阅读 · 0 评论 -
Mysql索引命中规则
最左匹配原则1、先定位该sql的查询条件,有哪些,那些是等值的,那些是范围的条件。2、等值的条件去命中索引最左边的一个字段,然后依次从左往右命中,范围的放在最后。分析讲解1、mysql的索引分为聚簇索引和非聚簇索引,mysql的表是聚集索引组织表。聚集规则是:有主键则定义主键索引为聚集索引;没有主键则选第一个不允许为NULL的唯一索引;还没有就使用innodb的内置rowid为聚集索引。非聚集索引也称为二级索引,或者辅助索引。2、mysql的索引无论是聚集索引还...转载 2020-07-16 18:13:56 · 1333 阅读 · 0 评论 -
Rabbit和Es默认端口
4369 -- erlang发现口5672 --client端通信口15672 -- 管理界面ui端口25672 -- server间内部通信口举例说明 我们访问RabbitMQ管理界面可以访问如下: http://localhost:15672/ 我们连接RabbitMQ的话就要用client端通信口: server: amqp://guest:gue...转载 2020-05-07 11:43:24 · 2694 阅读 · 0 评论 -
BeanFactory和FactoryBean区别
BeanFactoryBeanFactory定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,也就是SpringIOC所遵守的最底层和最基本的编程规范。在Spring代码中,BeanFactory只是个接口,并不是IOC容器的具体实现,但是Spring容器给出了很多种实现,如DefaultListableBeanFactory...转载 2020-04-02 18:17:07 · 117 阅读 · 0 评论 -
MySQL函数大全
MySQL 函数MySQL 有很多内置的函数,以下列出了这些函数的说明。MySQL 字符串函数函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCII(CustomerName) AS NumCodeOfFirstCha...转载 2020-03-26 10:38:15 · 119 阅读 · 0 评论 -
Sql 的JOIN查询底层介绍
01.前言写过或者学过 Sql 的人应该都知道 left join,知道 left join 的实现的效果,就是保留左表的全部信息,然后把右表往左表上拼接,如果拼不上就是 null。除了 left join以外,还有inner join、outer join、right join,这些不同的 join 能达到的什么样的效果,大家应该都了解了,如果不了解的可以看看网上的帖子或者随便一本 Sql...转载 2020-03-12 11:49:26 · 349 阅读 · 0 评论 -
Distinct语法的使用
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 distinct用于返回唯一不同的值。表table_A:-- ------------------------------ Table structure for table_a-- ----------------------------DROP TABLE IF EXIST...转载 2020-03-12 11:25:55 · 1414 阅读 · 0 评论 -
Group By 和 Having sql语句
GROUP BY语句,经过研究和练习,终于明白如何使用了,在此记录一下同时添加了一个自己举的小例子,通过写这篇文章来加深下自己学习的效果,还能和大家分享下,同时也方便以后查阅,一举多得一、GROUP BYGROUP BY语句用来与聚合函数(aggregate functions such as COUNT, SUM, AVG, MIN, or MAX.)联合使用来得到一个或多个列的结...转载 2020-03-12 10:34:47 · 133 阅读 · 0 评论 -
Mysql索引底层原理及优化
摘要本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。文章主要内容分为三个部分。第...转载 2020-03-07 14:21:58 · 441 阅读 · 0 评论 -
sql语句where条件执行顺序
转载 2020-03-07 14:03:22 · 587 阅读 · 0 评论 -
Spring基础,IOC和AOP
原创 2020-03-05 16:29:46 · 116 阅读 · 0 评论 -
Spring IOC容器---对象循环依赖
1. 什么是循环依赖?what?(1)循环依赖-->循环引用。--->即2个或以上bean 互相持有对方,最终形成闭环。eg:A依赖B,B依赖C,C又依赖A。【注意:这里不是函数的循环调用【是个死循环,除非有终结条件】,是对象相互依赖关系】2.Spring中循环依赖的场景?where?①:构造器的循环依赖。【这个Spring解决不了】S...转载 2020-03-05 15:16:53 · 224 阅读 · 0 评论 -
Data truncation: Incorrect datetime value
错误如下:Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '1970-01-01 08:00:00.0' for column 'begin_time' at row 1### The e...转载 2020-01-02 18:25:08 · 3649 阅读 · 0 评论 -
web.xml作用分析
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/...转载 2019-12-31 18:48:05 · 563 阅读 · 0 评论 -
web.xml简介
Web应用的根目录下,必须有一个WEB-INF目录,WEB-INF目录下有一个web.xml,同时还可以有classes和lib目录 web.xml is not necessary if no servlet is needed classes目录存放Web应用需要的class文件 lib目录存放Web应用需要的其他类库 JSP文件和其他资源文件放在当...转载 2019-12-17 20:46:56 · 658 阅读 · 0 评论 -
Spring Aop基本讲解
AOP的基本概念@Aspect(切面): 通常是一个类,里面可以定义切入点和通知JointPoint(连接点): 程序执行过程中明确的点,一般是方法的调用Advice(通知): AOP在特定的切入点上执行的增强处理:@Before:标识一个前置增强方法,相当于BeforeAdvice的功能@After: final增强,不管是抛出异常或者正常退出都会执行。@Aft...转载 2019-12-13 16:12:59 · 620 阅读 · 0 评论 -
Springkafka的consumer和listener区别
在spring应用中如果需要订阅kafka消息,通常情况下我们不会直接使用kafka-client, 而是使用更方便的一层封装spring-kafka。不过,它可不是简单的封装了kafka-client, 这里面有很多需要注意的问题,比如下面这个参数:spring.kafka.listener.concurrency=3它并不像参数名那样简单,背后挺复杂的。如果你用jstack把线程d...转载 2019-11-22 16:59:44 · 5091 阅读 · 1 评论 -
数据库锁和隔离级别
事务事务即acida,原子性,都成功或都失败c,一致性,数据一致性i,隔离性,事务互不干扰d,持久性,一旦完成就会保存下来事务隔离级别脏读,不可重复读,幻读 是不同隔离级别需要解决的问题。每个事务都可以设置自己独立的隔离级别。读未提交 别的事务未提及的信息,也可以读到。脏读问题。 读已提交 自己能够读到未提交,但是别的事务被隔离了,只能读到已提交的内容。解决脏读,但...原创 2019-11-09 15:42:17 · 596 阅读 · 0 评论 -
分库分表概念
垂直分表:常用的字段分类放在一/几个表中,另外不常用的字段分类放在另一/几个表中。避免io争抢,减少锁表的几率。垂直分库:同一个库,按业务类别拆分到不同的库中,分布在不同的机器上。专库专用。避免竞争同一个物理机的cpu/内存/网络io/磁盘。水平分库:相同的表结构分布到不同的库中,通过id进行路由到不同的库中。水平分表:相同的表结构创建不...原创 2019-11-08 16:11:38 · 630 阅读 · 0 评论 -
mysql数据类型与字段length的介绍
分析MySQL数据类型的长度 MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimal...转载 2019-05-08 15:56:54 · 1580 阅读 · 1 评论 -
mysql中datetime,timestamp,date,time数据类型
DATETIME类型 定义同时包含日期和时间信息的值时。MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(“支持”意味着尽管更早的值可能工作,但不能保证他们可以。)DATE类型 定义日期值时,没有时间部分。MySQL检索并且以'YYYY...转载 2019-05-07 17:32:32 · 357 阅读 · 0 评论 -
mvcc机制
1、原理MySQL默认的隔离级别是可重复读,即:事务A在读到一条数据之后,此时事务B对该数据进行了修改并提交,那么事务A再读该数据,读到的还是原来的内容。那么MySQL可重复读是如何实现的呢?使用的的一种叫MVCC的控制方式 ,即Mutil-Version Concurrency Control,多版本并发控制,类似于乐观锁的一种实现方式实现方式:InnoDB在每行记录后面保存...转载 2019-05-07 14:09:42 · 182 阅读 · 0 评论 -
mysql用null的坏处
MySQL 官网文档:NULL columns require additional space in the rowto record whether their values are NULL. For MyISAM tables, each NULL columntakes one bit extra, rounded up to the nearest byte.翻译:Mysq...转载 2019-05-05 20:36:59 · 1061 阅读 · 0 评论 -
mysql刷入硬盘的时机
最近遇到过生产上的数据丢失问题,看到大家各种分析代码,然后我发现很多人认为事物提交了就认为数据不会丢失!!!。。。我只能说这是公司没有DBA,或者说大家不能深层次理解mySQL原理的悲哀!针对此,特意写了这篇博客!(理解不深刻不准确之处,敬请指出)现象正常情况下,我们会将一系列增,删,改操作写在一个事物中,也就是一个原子操作,那么理论上这一系列的...转载 2019-05-01 19:32:06 · 1723 阅读 · 0 评论 -
elasticsearch学习经验
人工智能、大数据快速发展的今天,对于 TB 甚至 PB 级大数据的快速检索已然成为刚需,大型企业早已淹没在系统生成的浩瀚数据流当中。大数据技术业已集中在如何存储和处理这些海量的数据上。Elasticsearch 作为开源领域的后起之秀,从2010年至今得到飞跃式的发展。 Elasticsearch 以其开源、分布式、RESTFul API 三大优势,已经成为当下风口中“会飞的猪”。在我的电脑本...转载 2018-08-31 12:39:21 · 156 阅读 · 0 评论 -
case when then else end
Case具有两种格式。简单Case函数和Case搜索函数。简单Case函数CASEsexWHEN'1'THEN'男'WHEN'2'THEN'女'ELSE'其他'END--Case搜索函数CASEWHEN sex ='1'THEN'男'WHEN sex ='2'THEN'女'ELSE'其他'END种方式,...转载 2019-05-09 21:40:22 · 227 阅读 · 0 评论 -
sql语句中的exists和in
比如在Northwind数据库中有一个查询为SELECT c.CustomerId,CompanyName FROM Customers cWHERE EXISTS(SELECT OrderID FROM Orders o WHERE o.CustomerID=c.CustomerID)这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是Custom...转载 2019-05-28 18:39:37 · 182 阅读 · 0 评论 -
mysql存储过程
存储过程简介SQL语句需要先编译然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。存储过程是可编程的函数,在数据库中创建并保存,可以由SQL语句和控制结构组成。当想要在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。...转载 2019-05-30 15:50:40 · 93 阅读 · 0 评论 -
mysql的内置函数
mysql内置函数列表可以从mysql官方文档查询,这里仅分类简单介绍一些可能会用到的函数。1 数学函数abs(x)pi()mod(x,y)sqrt(x)ceil(x)或者ceiling(x)rand(),rand(N):返回0-1间的浮点数,使用不同的seed N可以获得不同的随机数round(x, D):四舍五入保留D位小数,D默认为0, 可以为负数, 如round(19,...转载 2019-06-04 16:03:02 · 194 阅读 · 0 评论