11 2021 档案
摘要:1.RabbitMq的发送机制学过RabbitMq的同学们大概都知道了RabbitMq发送机制引入了Exchange(交换机的概念),消息发送方,首先把消息发送到交换机这是第一个步骤,然后交换机在把消息路由到不同的队列中(Queue)这是第二个步骤,在有不同的消费者去消费。 注意:大致,知道消息发送
阅读全文
摘要:1. 什么是 SPI 1. 背景 在面向对象的设计原则中,一般推荐模块之间基于接口编程,通常情况下调用方模块是不会感知到被调用方模块的内部具体实现。一旦代码里面涉及具体实现类,就违反了开闭原则。如果需要替换一种实现,就需要修改代码。 为了实现在模块装配的时候不用在程序里面动态指明,这就需要一种服务发
阅读全文
摘要:介绍 $attrs 继承所有的父组件属性(没有通过 props 接收的属性还有 class 类名 和 style 样式 )。 inheritAttrs: 是否非 props 属性显示在标签最外层,默认值 true ,就是继承所有的父组件属性(除了 props 特定绑定外)作为普通的 HTML 特性应
阅读全文
摘要:从 Hadoop 迁移到基于云的现代架构(比如 Lakehouse 架构)的决定是业务决策,而非技术决策。我们在之前的文章中探讨了每一个组织都必须重新评估他们与 Hadoop 的关系的原因。当来自技术、数据和业务的利害关系方决定将企业从 Hadoop 转移出去之后,在开始真正的转变之前,需要考虑T
阅读全文
摘要:垃圾收集算法 常见的垃圾收集算法包括: 标记-清除算法 复制算法 标记-整理算法 分代收集算法 JVM 的垃圾收集算法是使用了分代收集算法,复制算法、标记-整理算法。三种算法都有使用。使用分代收集算法,将 JVM 中的内存分为新生代和老年代,新生代采用复制算法收集,而老年代采用的是标记-整理算法。
阅读全文
摘要:简介 理解JavaScript运行原理,我们需要理解以下两方面内容。 JavaScript引擎。 JavaScript运行时环境。 JavaScript引擎 什么是JavaScript引擎 JavaScript引擎是一个计算机程序,它的主要作用是JavaScript运行时将源码编译为机器码。 每个主
阅读全文
摘要:父子组件通信 绝大部分vue本身提供的通信方式,都是父子组件通信 prop 最常见的组件通信方式之一,由父组件传递到子组件。 event 最常见的组件通信方式之一,当子组件发生了某些事,可以通过event通知父组件。 style 和 classstyle和class通信范围比较窄,是传递样式的,父组
阅读全文
摘要:京东在 2014 年基于 storm 打造了第一代流式处理平台,可以较好的满足业务对于数据处理实时性的要求。不过它有一些局限性,对于那些数据量特别大,但是对延迟却不那么敏感的业务场景,显得有些力不从心。于是我们在 2017 年引入了 Spark streaming,利用它的微批处理来应对这种业务场景
阅读全文
摘要:要了解 Spring Boot 的发展背景,还得从 2004 年 Spring Framework1.0 版本发布开始说起,不过大家都是从开始学习 Java 就使用 Spring Framework 了,所以就不做过多展开。 随着使用 Spring Framework 进行开发的企业和个人越来越多,
阅读全文
摘要:前言 这几天在爱智官网看了下JSRE其他的Api,看了一个比较有意思的模块 - 多任务模块task,大致看了下他们的接口说明和案例,感觉和多线程差不多,然后就准备去看下实现方式。 多任务介绍 鄙人经过九牛一毛之力,终于给大家带来了第一手资讯。据可靠情报得知(PS:其实也就从他们官网直接复制了一点
阅读全文
摘要:基本概述Apache YARN (Yet Another Resource Negotiator) 是 Hadoop 中的资源管理和作业调度系统, 在 Hadoop 2.x 时才被引入。 用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。 Yarn在 Hadoop2
阅读全文
摘要: 手写一个双重检验锁的单例设计模式相信大家分分钟就能解决,但有一个问题为什么我需要在类变量前面加一个 volatile 关键字,百度了下一发现它主要用来解决两个问题,即变量内存可见性以及禁止指令重排序,并发编程的三要素除了原子性之外它占了两个,为何它如此强大,一个小小的 volatile 所包含的
阅读全文
摘要:Master实际上可以配置两个,那么在spark原生的standalone上也是支持Master主备切换的,也就是说,当Active Master节点挂掉之后,我们可以将Standby Master切换为Active Master Spark Master的主备切换可以基于两种切换机制,一种是文件系
阅读全文
摘要:运算符 算术运算符 算术运算符就是我们常用的 加、减、乘、除、取余等内容,不过在计算机的程序中首先记住一个问题:浮点数的运算是有精度的问题,尽量避免浮点之间的运算,不能拿浮点数进行相加或者相减 加法:+ 减法:- 乘法:* 除法:/ 取余:% // + 号 操作console.log(1 + 1)
阅读全文
摘要:一、表级锁、行级锁、页级锁 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。 MySQL 数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别。
阅读全文
摘要:产生数据倾斜的原因 唯一值非常少,极少数值有非常多的记录值(唯一值少于几千) 唯一值比较多,这个字段的某些值有远远多于其他值的记录数,但是它的占比也小于百分之一或千分之一。 什么是数据倾斜 数据倾斜无非就是大量的相同key被partition分配到一个分区里,造成了’一个人累死,其他人闲死’的情况,
阅读全文
摘要:下面的代码片段,用于检查对象是否为空。 对于较新的浏览器,你可以使用 ES6 的 “Object.keys”。对于较旧的浏览器,可以安装Lodash库并使用其“ isEmpty”方法。 const empty = {}; /* 较新的浏览器 */ Object.keys(empty).length
阅读全文
摘要:话说Java中String是有长度限制的,听到这里很多人不禁要问,String还有长度限制?是的有,而且在JVM编译中还有规范,而且有的家人们在面试的时候也遇到了。 String 首先要知道String的长度限制我们就需要知道String是怎么存储字符串的,String其实是使用的一个char类型的
阅读全文
摘要:消息消费进度概述消费者消费消息过程中,为了避免消息的重复消费,应将消息消费进度保存起来,当其他消费者再对消息进行消费时,读取已消费的消息偏移量,对之后的消息进行消费即可。 消息模式分为两种: 集群模式:一条消息只能被一个消费者消费广播模式:一条消息被所有消费者都消费一次广播模式下,消息被所有消费者消
阅读全文
摘要:Java 11是自Java 8以来的又一个LTS版本,是目前全球使用最多的LTS版本之一。今天我们接着在Java 9 到 Java 17系列文章中来认识针对普通开发者的Java 11。 字符串API增强 在Java 11中,针对String的操作进一步得到加强。避免我们在很常见的场景中引入额外的、复
阅读全文
摘要:react凭借virtual DOM和diff算法拥有高效的性能,除此之外也有很多其他的方法和技巧可以进一步提升react性能,在本文中我将列举出可有效提升react性能的几种方法,帮助我们改进react代码,提升性能。但是我们不必一定要在项目中使用这些方法,但是我们有必要知道如何使用这些方法。 使
阅读全文
摘要://对于共享相同类型的不可变对象序列,可以使用Scala的List类//作为一个array,一个list[String]包含为String类型,scala中的list和java中的list不一样//scala中的list是不可变得val oneTwoThree = List(1,2,3) //相当于
阅读全文
摘要:谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制。 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能。 复制(Replication):则是负责让一个Redis服务器可以配备多个备份的服务器。 Redi
阅读全文
摘要:就在前两个月,React 刚刚发布了 18 版本,记得上一次详细阅读 React 源码,还是在三年前,当时读的是 React 的 15 版本,那时候主要是去研究了一下,当时的 虚拟 DOM 的渲染机制、setState 的执行机制,以及 React 的合成事件。 当时研究完了之后,不禁感叹,以后再也
阅读全文
摘要:内存分配与回收策略Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存。 1. 综述 对象的内存分配,从概念上讲,应该都是在堆上分配(而实际上也有可能经过即时编译后被拆散为标量类型并间接地在栈上分配)。在经典分代的设计下,新生对象通常会分
阅读全文
摘要:简介 本文介绍RabbitMQ的死信队列和延迟队列。 本内容也是Java后端面试中常见的问题。 死信队列 简介 DLX,全称为Dead-Letter-Exchange,可以称之为死信交换器,也有人称之为死信邮箱。当消息在一个队列中变成死信(dead message)之后,它能被重新被发送到另一个交换
阅读全文
摘要:学会使用JavaScript只需要三天,但是想学好JavaScript需要三年。 在js中,最让人头疼的存在莫过于,闭包,作用域,this指向问题,以及异步等等。 可以说:前端人员很多人才开始都没有真的弄懂this。 this的那些绑定规则 常见的绑定规则有如下四种: 默认绑定 隐式绑定 显示绑定
阅读全文
摘要:1、泛型的概述: 1.1 泛型的由来 根据《Java编程思想》中的描述,泛型出现的动机: 有很多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类。 复制代码 泛型的思想很早就存在,如C++中的模板(Templates)。模板的精神:参数化类型 1.2 基本概述 泛型的本质就是"参数化
阅读全文
摘要:在对数组或对象进行遍历时,我们经常会使用到两种方法: for in和for of,那么这两种方法之间的区别是什么呢?让我们来研究研究 简单来说就是它们两者都可以用于遍历,不过for in遍历的是数组的索引(index),而for of遍历的是数组元素值(value) // for in var ob
阅读全文
摘要:说到 RPC(Remote Procedure Call Protocol 远程过程调用协议),小伙伴们脑海里蹦出的估计都是 RESTful API、Dubbo、WebService、Java RMI、CORBA 等。 其实,RabbitMQ 也给我们提供了 RPC 功能,并且使用起来很简单。 今天
阅读全文
摘要:RDD:弹性分布式数据集 一、RDD的介绍1.1 背景许多迭代式算法(比如机器学习、图算法等)和交互式数据挖掘工具,共同之处是,不同计算阶段之间会重用中间结果。 目前的MapReduce框架都是把中间结果写入到HDFS中,带来了大量的数据复制、磁盘IO和序列化开销。 RDD就是为了满足这种需求而出现
阅读全文
摘要:线程同步的方式主要有: 临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)。 他们的主要区别和特点如下: 1)临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,
阅读全文
摘要:vue中路由守卫一共有三种,一个全局路由守卫,一个是组件内路由守卫,一个是router独享守卫。 一、全局路由守卫 所谓全局路由守卫,就是小区大门,整个小区就这一个大门,你想要进入其中任何一个房子,都需要经过这个大门的检查全局路由守卫有个两个:一个是全局前置守卫,一个是全局后置守卫 router.b
阅读全文
摘要:Node.js异步编程的直接体现就是回调函数,回调函数在完成任务后会被调用,而Node.js使用了大量的回调函数,我觉得是否适合用Node.js来讲回调函数。下面我就来尽力趣讲回调函数吧~ 什么是回调函数你到网上论坛找资源种子,但是你要找的资源找不到,于是你就在论坛发帖留下邮箱求资源,过几天,有网友
阅读全文
摘要:1、 HBase的特点是什么?1)大:一个表可以有数十亿行,上百万列;2)无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列;3)面向列:面向列(族)的存储和权限控制,列(族)独立检索;4)稀疏:空(null)列并不占用存储空间,表可以设计的
阅读全文
摘要:对Swagger相当不爽的两点,一是要大量写各种注解,二是很被诟病的一点,对返回对象的描述相当不人性化(虽然可以写代码来实现,但不爽)。 在大部分时候,我们其实只关注接口的4个方面: 接口功能描述、接口URL、提交参数说明、返回结果说明。JApiDocs完美的满足上面的基本要求,见下图: 接口文档生
阅读全文
摘要:最近在回顾Disruptor的相关知识,觉得Disruptor在计算机底层的领域确实比一般人厉害不少,以前在写程序的时候,基本是从应用逻辑的角度考虑,觉得设计模式+少量算法+ 优美的代码=理想的结果,但看完Disruptor的设计后,觉得只考虑应用本身是有一定的局限性,还需要懂底层,硬件层面的东西,
阅读全文
摘要:在一个handler中处理两种不同的请求,对于某些有代码洁癖的人可能忍受不了。那么,有没有可能将普通的HTTP请求和websocket请求使用不同的handler来进行处理呢?答案是肯定的。 netty的消息处理我们知道netty中所有的消息处理都是通过handler来实现的,为了方便起见,nett
阅读全文
摘要:调整YARN 本主题仅适用于YARN群集,并介绍如何为群集调整和优化YARN。 注意:下载Cloudera YARN调整电子表格以帮助计算YARN配置。 有关简短视频概述,请参阅调整YARN应用程序。 概观 此概述提供YARN群集的抽象描述和YARN调整的目标。 YARN群集由主机组成。 主机提供内
阅读全文
摘要:前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示:原因是 MySQL 只能执行一定长度的 SQL 语句,但当插入的数据量较多时,会生成一条很长的 SQL,这样程序在执行时就会报错。 要解决这个问题,有两种方法:第一,设置 MySQL
阅读全文
摘要:1. 先看代码 const byteConvert = function(bytes) { if (isNaN(bytes)) { return ''; } let symbols = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
阅读全文
摘要:1、从卷积层说起 熟悉CNN的小伙伴应该知道卷积是一个很常用也很重要的操作,CNN里的卷积和信号处理的卷积并不是一回事,CNN的卷积是做一种二维的互相关运算,以《动手学深度学习》5.1章为示例: 《动手学深度学习》5.1.1. 二维互相关运算 窗口内的元素和卷积核相乘,求和得到输出元素,一份naiv
阅读全文