摘要:Ray的定位是分布式应用框架,主要目标是使能分布式应用的开发和运行。 Ray是UC Berkeley大学 RISE lab(前AMP lab) 2017年12月 开源的新一代分布式应用框架(刚发布的时候定位是高性能分布式计算框架,20年中修改定位为分布式应用框架),通过一套引擎解决复杂场
一切从SpringApplication.run()开始,最终返回一个ConfigurableApplicationContext 构造了一个SpringApplication对象,然后调用它的run方法。下面看下构造方法都做了什么 1、推断Web应用类型(WebApplicationT
在亿级流量架构之分布式事务解决方案对比中, 已经简单阐明了从本机事务到分布式事务的演变过程, 文章的最后简单说明了TCC事务, 这儿将会深入了解TCC事务是原理, 以及理论支持, 最后会用Demo举例实现。 XA协议 在上面提到的文章中, 分布式事务直接将二阶段提交, 思维逻辑有些断层, 但是那
过年前,几位阿里P9级架构师的大佬总结了一份2021年金三银四Java面试知识点,可以说是涵盖了Java基础、JVM、多线程与高并发、架构、数据库、数据结构与算法、Netty、网络底层知识、日志、微服务、消息中间件等等内容! 这份总结分享给了几位朋友,已经帮助几位朋友共计拿到了7个Offer, 同
开发模式:本篇讲解了历史悠久,但现在依然被广泛使用的分层应用开发模式MVC ( ModelView Controller ),还讲解了当下逐渐火热的响应式开发模式WebFlux。 ORM ( Object Relational Mapping,对象关系映射)框架:数据库的操作是程序开发中非常重要的
前几天一个朋友跟我说,他拿到了阿里 Java 开发的 offer,准备入职了。 半个多月的时间里,前前后后面试了4轮,而让他印象最深的一点是,想进阿里,RocketMQ 必须掌握。 确实如此,一个用消息队列的人,不知道为啥用,就有点尴尬。尤其是在面对面试官的连环追问时,你很容易被问蒙,然后就开始
A character set is a set of symbols and encodings. A collation is a set of rules for comparing characters in a character set. Character Set: 一套字符及其
Sentinel流量控制&服务熔断降级介绍 流量控制介绍 在这里我用景区的例子解释一下 一个旅游景点日接待游客数量为8K,8K以后的游客就无法买票进去景区。 对应编程来说就是,一个接口QPS(每秒请求数)最大为100,在QPS100之后的请求我们就要限制其访问,并给出友好提示。
开源一套金三银四自刷的面试题库,自己感觉还不错,也拿了几个Offer(三个大厂的,字节、蚂蚁、滴滴)!下面直接上干货哈! 需要资料的小伙伴,点赞加收藏,关注我之后添加小助理vx:1426687161 即可获取免费下载方式 JVM篇(87道) JVM篇中面试题中的知识点:JVM入门
金三银四即将到来,楼主也在疯狂的准备中,也在全网搜集面试题,也有一些面试中常问的面试知识点,今天就来分享最近Java面试热门技术框架:Spring Security Oauth2.0认证授权!总计分为五篇,前四篇为Spring Security相关的内容,最后一篇是Oauth2.0认证授权! 同时
2021年了,看看网络系统的流行架构。 系统的质量属性要满足客户需求,所以架构的第一出发点也是需求。 有偏好的需求构成场景,架构的取舍就是基于应用场景的偏好。 网络系统在管道的位置,大致分为两类: 傻快型:内容无感知,以交换和路由为主。如各种交换机,路由器等设备,主要靠硬件。 纯软件实现上
小张兴冲冲去面试,结果被面试官吊打! 小张:面试官,你好。我是来参加面试的。 面试官:你好,小张。我看了你的简历,精通MySQL数据库。那你肯定知道事务吧,你能说说事务有哪些特性吗? 小张:一个事务有4个特性,即ACID。 原子性(Atomicity): 事务开始后的所有操作,要么全
今天偶然获得了这份阿里+腾讯+字节+滴滴+美团java面试题及答案(2021版)的面试题,共计是1379道题,共享出来和大家一起学习 目录大纲详细内容(脑图版)
❝ 最近同事开发时遇到了一个事务阻塞的问题,通过网上查询发现关于MySQL事务、锁这一块的资料都比较絮乱,让人看得云里雾里,所以借着这个机会,刚好也对这一块内容做一个总结梳理,希望能比较全面去写一下MySQL的并发事务处理。 ❞ 本文主线: 简述事务的特性与隔离级别 聊聊MySql中各
一、分布式事务的概念 1,什么是事务 事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。 2,本地事务 数据库事务的四大特性 ACID: A(Atomic): 原子性 ,构成事务的所有操作,要么都执行完成,要么全部不执行,不可能出现部分成功部分失败的
分析API的耗时是将API的总耗时拆分为不同的部分,清晰地知道是什么原因导致耗时过高。我们借助不同的工具,在不同的网络环境下进行耗时分析,从而提出相应的优化建议。 请求发送过慢导致耗时增加; DNS解析过慢导致耗时增加; 恶劣的网络环境导致耗时增加; 一直在排队导致响应过慢; 服务
“倒挂”一词大家都不陌生,在程序员领域里更是屡见不鲜,尤其是在公司工作了一段时间后就会发现,后来的每个新人的工资都比自己高,你的工资是15k,新人的工资是30k,奈何人家能力强呢。 而我们想要涨工资,那也是万万不可能的,除非你的工作能力突飞猛进,晋升成为大佬级别。 所以就有了那句笑话,要想涨薪,
众所周知性能调优可以使系统稳定,用户体验更佳,甚至在比较大的系统中,还能帮公司节约资源。 但是在项目的开始阶段,我们没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,我们就可以进行系统测试了,我们可以将以下性能指标,作为性能调优的标准,响应时间、吞
0x00 摘要 从本文开始,我们通过一个系列来介绍消息队列 Kombu(为后续Celery分析打基础)。 Kombu 的定位是一个兼容 AMQP 协议的消息队列抽象,是一个把消息传递封装成统一接口的库。其特点是支持多种的符合APMQ协议的消息队列系统。不仅支持原生的AMQP消息队列如Rabbit
首先得自己搭建一个kafka,搭建教程请自行百度,本人是使用docker搭建了一个单机版的zookeeper+kafka作为演示,文末会有完整代码包提供给大家下载参考 废话不多说,教程开始 一、老规矩,先在pom.xml中添加kafka相关依赖 <dependency>
01 介绍 当今的通信服务提供商(CSP)需要能够在处理海量复杂的数据的同时,不会下降或者减慢网络响应速度和可靠性。5G时代,设备和用户数量呈指数级增长,这对业务支持服务(BSS)提出了新需求,也成为了一项特别艰巨的任务。 正如您目前所看到的现实情况,电信网络策略响应,个性化报价或防止欺诈交易等应
索引是SQL优化中最重要的手段之一,本文从基础到原理,带你深度掌握索引。 一、索引基础 1、什么是索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优
Redis Redis以其高速、轻量和丰富的数据结构与功能被越来越多的工程师所钟爱。然而用Redis的人很多,真正懂Redis的人很少!谈到Redis,相信很多铁汁脑海里的第一印象就是缓存与分布式锁,往下深究,知道Redis的方方面面,从原理层面真正懂得Redis也会越来越少。 如何才能真正学好
今年的金三银四又要开始了,去年受疫情的影响,互联网整个行业都不太景气,程序员、企业的跳槽与招聘都憋了整整一年。由此可以想到今年的金三银四到底会多么的火爆; 在IT界也流传着一个观点:1个优秀程序员的效率是普通程序员的10倍,但凡对于有点创新型的项目,企业宁愿付2倍的薪水去选择一个优秀程序
61. 旋转链表 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: 1->2->3->4->5->NULL, k = 2 输出: 4->5->1->2->3->NULL 解释: 向右
在使用spring框架的时候,我们经常会感叹注解式编程真是大大简化了开发的时间,几个小小的注解,就能解决一系列的配置问题,让写代码像写诗一样轻松明快。 我们都知道,在spring框架的前期,大多使用XML配置进行开发。XML配置起来有时候冗长,如实体类的映射,使用XML进行开发会显得十分复杂。同时
本文主要过下http生成服务和处理请求的主要流程,其他功能并未涉及。 使用例子 const http = require('http'); http.createServer((req, res) => { res.end('hello word'); }).listen(
作者 | 赵庆杰(卢令) Serverless 规模化落地成果 2020 年,我们在 Serverless 底层基建上做了非常大的升级,比如计算升级到了第四代神龙架构,存储上升级到了盘古 2.0,网络上进入了百 G 洛神网络,整体升级之后性能提升两倍;BaaS 层面也进行了很大的拓展,比如支持了
一、概述 很多人认为Spring中亮点是AOP与IOC,其实这个理解是非常片面的,除了暴露你是一个小白以外什么也说明不了;在Spring中最大的亮点是整个Spring的生态;也就是基于这个生态,才可以让Spring集成其他资源(MyBatis等)的时候可以有序不乱的没有问题的管控及执行,这些都必须
这不马上又到金三银四了吗,听说还有好多小伙伴没有提前准备面试以至于现在手忙脚乱。应广大粉丝的要求,我今天就给大家分享一份阿里出品的Java高级面试手册,内容涵盖:Java集合、JVM、多线程、网络、springMVC、MyBatis、MySQL、springcloud、Redis、Nginx、Lin
性能优化 性能优化四字想必大家都有到各大招聘网站与博客平台上见到,可以说近年来性能优化已经成为评测你是否是一个有深度的程序员的标准。在我们身边有很多同行,层次不一,但是放眼观察,我们很容易就可以看到那些是业务型程序员,那些是有层次的程序员。我们需要做的就是注重细节,注重性能,逐渐成为一个有深度的程
在开发人员中流行的态度是,抱怨我们的工具和东西有多烂。或许我是个乐观主义者,因为我的观点完全相反!1999 年,我得到了第一个软件工程师的工作,在过去的二十年里,我见证了软件工程的变化,使我们的工作效率提高了好几个数量级。仅举一些我曾经做过或者接近做过的事情的例子: Spotify 使用 C+
一致性 Hash 常用于缓解分布式缓存系统扩缩容节点时造成的缓存大量失效的问题。一致性 Hash 与其说是一种 Hash 算法,其实更像是一种负载均衡策略。 GroupCache 是 golang 官方提供的一个分布式缓存库,其中包含了一个简单的一致性 Hash 的实现。其代码在 github.c
要想写出高性能高并发的应用,自然有许多关键,如io,算法,异步,语言特性,操作系统特性,队列,内存,cpu,分布式,网络,数据结构,高性能组件。 胡说一通先。 回到主题,线程池。如果说多线程是提高系统并发能力的利器之一,那么线程池就是让这个利器更容易控制的一种工具。如果我们自己纯粹使用多线程基础
常见的资源,例如磁盘、网络、CPU等等,都会存在竞争的问题,在构建分布式架构时,可以将原本连接在一起的组件、模块、资源拆分开来,以便达到最大的利用效率或性能。资源隔离之后,当某一部分组件出现故障时,可以隔离故障,方便定位的同时,阻止传播,避免出现滚雪球以及雪崩效应。 常见的隔离方式有: 线程
在这里首先祝各位开工大吉!今天是初七这个年也算是过完了,不知道各位有没有做好跳槽涨薪的准备了呢?不管如何都应当做好随时面试的准备,小编今天就为大家整理了阿里内部面试材料(Java岗),内容涵盖了:基础、JVM、多线程与高并发、spring全家桶、MyBatis、数据库、微服务、Dubbo、Nginx
写在前面: 近年来在大厂的面试中,高并发不但占比较多,而且已经不局限于并发工具的使用,更多的会深入到底的层实现原理,这样能考察候程序员的内功,看其是否能知其所以然。关于市面上关于Java并发编程的资料感觉有些知识点不是很清晰,于是展开了对Java并发编程原理的讨论。在这收集整理了这些Java并发编
本文从源码层面分析了 redis 的缓存淘汰机制,并在文章末尾描述使用 Java 实现的思路,以供参考。 相关配置 为了适配用作缓存的场景,redis 支持缓存淘汰(eviction)并提供相应的了配置项: maxmemory 设置内存使用上限,该值不能设置为小于 1M 的容量。 选项的默
什么是JVM JVM 全称 Java Virtual Machine,也就是我们耳熟能详的Java虚拟机。它能识别.class后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成我们想要的操作。 JVM的运行过程: HelloWorld.java通过javac的编译,编译成Hell
今天我们来聊聊ConcurrentLinkedQueue 我们今天要学习的这个ConcurrentLinkedQueue并没有实现BlockingQueue接口,是一个完完全全使用CAS操作实现线程安全的、无界的非阻塞队列。 结构组成 public class ConcurrentLink
双非二本计算机专业,在外包从事Java开发5年,赶工期,工作压力大,受尽剥削,但是技术上成长得却很慢,没有足够的时间打磨产品,也没有足够的机会实践新技术,甚至没有足够的业余时间。(薪资给得到是还可以,不然也不会待这么久) 今年也不想忍了,就准备跳出这个伤心的地方,去个好点的公司,试着投了十几家简历
前言 闲来无事,整一个 Java 项目快速开发脚手架。 正文 一、简介 Chewing 是一个简单的 Java 项目快速开发脚手架。既适合需要开发小型项目的小伙伴使用,也适合刚入门的新手用来学习一些常用的技术。 二、源码 源码地址: https://github.com/jingq
前言 前几天小强去阿里巴巴面试Java岗,止步于二面。 他和我诉苦自己被虐得多惨多惨,特别是深挖线程和线程池的时候,居然被问到不知道如何作答。 对于他的遭遇,结合他过了一面的那个嘚瑟样,我深表同情(加大力度)! 好了,不开玩笑了,在和小强的面试题中,我选取了几个比较典型的线程和线程
LinkedBlockingDeque概述 LinkedBlockingDeque是由链表构成的界限可选的双端阻塞队列,支持O(1)的时间复杂度从两端插入和移除元素,如不指定边界,则为Integer.MAX_VALUE。 由一个ReentrantLock保证同步,使用conditions来实现等
微服务项目 项目是以微信订单后台功能为例,模拟从对业务进行微服务划分开始,然后通过运用Spring Cloud常用组件使项目微服务架构不断完善、优化的过程。主要从以下几个部分循序渐进地完成本项目开发,并对每个部分的环境搭建、设计分析、关键步骤和代码做详细阐述。 第一部分从商品服务功能、订单服务功
DelayQueue概述 DelayQueue是一个支持延时获取元素的无界阻塞队列,使用PriorityQueue来存储元素。 队中的元素必须实现Delayed接口【Delay接口又继承了Comparable,需要实现compareTo方法】,每个元素都需要指明过期时间,通过getDelay(u
甲骨文发布了具有丰富新特性的Java9。它包括对Java编程、JVM、工具和库的各种升级。在本篇文章中,我们将讨论下面给出的所有主要特性: 平台模块系统(Jigsaw项目) 接口私有方法 Try-With Resources 匿名类 @SafeVarargs注释 集合工厂方法 Pr
Spring Cloud “微服务”应该是互联网圈内争论很久的一个话题,开发者对此的讨论也一直在继续,近些年,SpringCloud有碾压Dubbo的趋势,你怎么看呢? SpringCloud在近些年来受到国内不少开发人员的广泛关注,也是比较吃香的一个技术技能,如果一个程序员连SpringClo
如果你是一位合格的程序员,那么你一定知道:在性能调优方面,没有任何灵丹妙药。任何性能决策,都要通过合理的性能测试来检验。 本次分享的PDF就是三位老外合力所写,他们很用心地给大家展示了一个关于Java 性能优化得更完整的知识框架。 借用PDF中的一句话:“要成为一名赛车手,你不必成为工程师,但是
前言 在研究 『 Spring 是如何解决循环依赖的 』 的时候,了解到 Spring 是借助三级缓存来解决循环依赖的。 同样在上一节留下了疑问: 循环依赖为什么要使用三级缓存?而不是使用二级缓存? AOP 动态代理对循环依赖的有没有什么影响? 本篇文章也是围绕上面的内容进行展开。
写在前面 2021年的金三银四一眨眼也要到了,对于很多人来说是跳槽的好机会。可能很多人觉得大厂面试很难,但其实大厂面试远没有我们想的那么困难,只要做好知识的梳理, 针对性学习知道自己应该要学什么,要掌握什么,在学习过程中,举一反三,做笔记,做总结。摆好心态,做好准备,你也可以的。 最近很多粉丝私
LinkedBlockingQueue概述 LinkedBlockingQueue是由单链表构成的界限可选的阻塞队列,如不指定边界,则为Integer.MAX_VALUE,因此如不指定边界,一般来说,插入的时候都会成功。 LinkedBlockingQueue支持FIFO先进先出的次序对元素进行
ArrayBlockingQueue概述 ArrayBlockingQueue是由数组构成的有界阻塞队列,支持FIFO的次序对元素进行排序。 这是一个典型的有界缓冲结构,可指定大小存储元素,供生产线程插入,供消费线程获取,但注意,容量一旦指定,便不可修改。 队列空时尝试take操作和队列满时尝
本篇要点 介绍阻塞队列的概述:支持阻塞式插入和移除的队列结构。 介绍阻塞队列提供的方法。 介绍BlockingQueue接口的几大实现类及主要特点。 以ArrayBlockingQueue为例介绍等待通知实现阻塞队列的过程。 不会涉及到太多源码部分,意在对阻塞队列章节的全局概览
要使用Java9模块系统,首先需要理解它。在本教程中,我将向您介绍: 模块的基本定义、内容和配置 Java9中封装的工作原理 如何定义接口 如何列出可用模块 java8和java9应用程序的比较 如何使用模块的基本规则 类路径和模块路径的区别 现在,让我们来认识一下Java语言
Java微服务架构实战 微服务架构的演进并非一蹴而就,过于保守或激进都不是解决之道。长期修行,苦练内功,或许才是微服务架构的前路方向。 2020 年,微服务这一持续多年的话题热度依旧:以 Spring Cloud、Dubbo 为代表的服务框架依然在持续进化,并加速奔向云原生;Service Me
前言 如果说编程是你出门买一趟菜。 操作系统就是,保证你有腿能走过去,有车能开过去,去了能说话买东西。 计算机网络,则是买回来菜烹饪的另一码子事了。 计算机网络背景 20世纪40年代以来,人们就梦想能拥有一个世界性的信息库。在这个信息库中,信息不仅能被全球的人们存取,而且能轻松地链接到其他
本篇文章包含Spring Security Java配置、Spring Security安全防护和源码导读。详细讲解OAuth2实战,并深入地剖析OAuth2核心源码! 这份PDF可以分为一下四个部分: 第1部分:Spring Security的基本配置。 第2部分:剖析Web项目可能遇到
2-3-4树 定义 所有的叶子节点都拥有相同的深度 节点只能是2-节点,3-节点,或者4-节点2节点 包含一个元素的节点,有两个子节点3节点 包含两个元素的节点,有三个子节点4节点 包含三个元素的节点,有四个子节点 所有节点都有至少两个子节点或没有子节点 来解释一下性质和一些定义
SQL语句基础知识及优化 SQL语句主要分为哪几类 * 数据据定义语言DDL(Data Definition Language):主要有CREATE,DROP,ALTER等对逻辑结构有操作的,包括表结构、视图和索引。 数据库查询语言DQL(Data Query Language):主要以S
SSM框架这种教程的,在百度或者GitHub上一搜一大把,不过很遗憾,大部分你照着上面的流程做,是做不出来的,要么缺少包,要么配置文件漏了一个,要么本身就有问题。不仅浪费了你的时间,还会产生消极的作用,让你怀疑自己是不是基础不够好,或者这个知识是不是太难了。 今天分享这份美团架构师的 SSM框架
OOM:由于java堆或本机内存中的内存耗尽而发生内存不足错误。在JVM中,当JVM由于堆内存不足而无法分配对象时,会抛出 OutOfMemoryError 错误,并且垃圾收集器无法提供更多的堆内存。 内存泄漏:如果应用程序正在使用内存,而应用程序在使用完内存后没有释放内存,则会发生内存泄漏。
创建型 单例模式 单例模式概念是一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。Spring中默认Bean创建可以认为是一种使用ConcurrentHashMap实现的特殊的单例模式 @Bean private final Map<String, Object>
数据结构与算法 数据结构是我们程序员大学专业里非常重要的一门核心基础课,计算机科学各个领域及各种应用软件都要使用相关的数据结构和算法。现在不管是面试还是工作我们都避不开数据结构与算法这个关。 面试 大厂不必多说,数据结构与算法是必问的(甚至有些中小厂还会甩几道题来考你)。 工作
众所周知,出现了高并发,就代表着你的流量是十分巨大的,而设计高并发系统的魅力就在于我们可以发挥我们所学的知识对“对抗”大流量的冲击,从而给我们的用户一个更好的体验!我们设计的这些方案好似能操纵流量,让流量更加平稳得被系统中的服务和组件处理! 今天开源的这份2021年Alibaba手册,就是在教会我
1 数据库审计 数据库审计是指当数据库有记录变更时,可以记录数据库的变更时间和变更人等,这样以后出问题回溯问责也比较方便。对于审计表记录的变更可以两种方式,一种是建立一张审计表专门用于记录,另一种是在数据库增加字段。本文所讨论的是第二种方案。 那如何在新增、修改、删除的时候同时增加记录呢?如果每
今天我们来说一下刷题时经常用到的前缀和思想,前缀和思想和滑动窗口会经常用在求子数组和子串问题上,当我们遇到此类问题时,则应该需要想到此类解题方式,该文章深入浅出描述前缀和思想,读完这个文章就会有属于自己的解题框架,遇到此类问题时就能够轻松应对。 下面我们先来了解一下什么是前缀和。 前缀和其实我们
Spring Cloud Alibaba 我们都知道Spring Cloud中的几乎所有的组件都使用Netflinx公司的产品,然后在其基础上做了一层封装。然而Netflinx的众多组件已经慢慢开始停止维护。这时候急需其他的一些替代产品,Spring Cloud Alibaba也就慢慢出现在人们的
1|0前言 方法区是运行时数据区的最后一个部分: 从线程共享与否的角度来看: 大家可能在这里有些疑惑,方法区和元空间的关系到底是怎样的?请往下看,下面会为大家解惑。 2|0栈、堆、方法区的交互关系 下面就涉及了对象的访问定位: Person:存放在元空
性能优化 我们都知道代码是系统的基石,没有良好的代码,系统架构就不牢固。但作为一般一个普通程序员,很少有机会参与系统架构级别的优化,甚至暂时不能理解架构上的调整。在开发新功能或审查组内的代码时,优化系统的方式主要是优化自己或他人写的代码。 但是真实的情况是:且不说其他层次的优化,就一个代码优化很
Seata 是一款阿里开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案 github地址:https://github.com/seata/seata。 在分析
JDK(Java Development Kit 开发工具包) JDK(java development kit)是JRE(Java运行时环境)的超集,它包含JRE所拥有的一切以及编译器、调试器等开发工具。 JRE(Java运行时环境) JRE(Java运行时环境)提供JVM(Jav
写在前面: 几乎所有的大神都会强调看源码,也强调源码的重要性; 但是如何看源码,源码看什么?看了什么用?看了怎么用? 困扰很多人,尤其是初学者。 由浅入深看源码,探究多线程原理由浅入深看源码,探究多线程原理 本手册的目的在于基于JDK 7和JDK 8,对整个Concurr
不知道小伙伴们是否已经开始备战今年的金三银四的跳槽面试做准备了。最近阿里巴巴开源了一份Java程序员2021年金三银四面试指南(泰山版)里面涵盖了明年金三银四面试中会问到的一些知识点以及常问的一些面试题及解析。 知识点涵盖了:高并发、设计模式、微服务、分布式、缓存、消息中间件、数据库、搜索引擎、负
MySQL 提到MySQL大家脑子里首先出现的肯定是MySQL优化,我们都知道mysql数据库优化是多方面的,原则是减少系统的瓶颈,减少资源的占用,增加系统反应的速度。一般我们是从MySQL 5.7版本的存储引擎增强,硬件、操作系统、配置参数优化、设计规范优化几个层面来全面优化MySQL服务器。
一、吹个牛# 面试官的一句:“了解MySQL的两阶段提交吗?” 不知道问凉了多少人! 这篇文章白日梦就和大家分享什么是MySQL的两阶提交到底是怎么回事!不管你原来晓不晓得两阶段提交,相信我!这篇文章中你一定能get到新的知识! 在说两阶段提交之前,大家要了解undo-log、redo-
环境 架构图 组件介绍 组件监听端口 CMP依赖VIP: 准备工作 3台8*16服务器 安装文档: 物料包(组件物料包和python脚本) :https://cmq-1255613487.cos.ap-chengdu.myqcloud.
数据备份有哪些种?# MySQL中数据备份的方式还是蛮多的,常见的有冷备份、逻辑备份、热备份、快照备份。 什么是冷备份? 所谓的冷备份,说白了就是在数据库停止运行的情况下,直接备份磁盘中MySQL用来存储数据的那些数据文件。 在前面的文章中,白日梦跟大家分享过MySQL的表空间。看过那篇文章
Key TakeAways StackOverflowError: 调用栈过深,导致线程栈占用大小超过-Xss(或者是-XX:ThreadStackSize)的限制 OutOfMemoryError: Java heap space:堆内存不够用,无法分配更多内存,就会抛出这个异常。 Ou
生产者流程 配置生产者客户端参数及创建响应的生产者实例 构建待发送的消息 发送消息 关闭生产者实例 参数配置 必要参数配置 bootstrap.servers: 该参数用来指定生产者客户端连接Kafka集群所需的broker地址清单,格式:host1:port1,hos
Redis 相信大家现在项目里面都会用到一个技术——Redis。毫不夸张的说Redis作为现在最受欢迎的NoSQL数据库之一,不管是项目还是面试都会有所涉及!我们都知道在项目中使用redis,无非是从性能和并发两个角度出发。在很多面试场景中一般也会出现这么一个问题:Redis能用来干什么?缓存?分
NIO是啥? NIO是Java从JDK1.4开始引入的一系列改进版输入输出处理手段,也就是New IO,简称NIO,也有说法叫NonBlocking IO,是同步非阻塞式的IO模型,准确地说它支持阻塞非阻塞两种模式。 本篇主要介绍NIO提供的三大组件的概念及使用:Buffer,Channel,S
前言 先提提神(提神后再聊技术) 提神了嘛朋友们,先看技术 这段时间我正在研究我继承的一些Java代码。我正在关键的地方做一些速度改进,为了测试我的改进,我需要测试用例来比较不同的实现。不幸的是,手动生成测试用例太耗时了(需要数千个,手动生成一个测试用例需要几分钟甚至几个小时)。不幸的是,
SpringBoot 提及SpringBoot,想必大家脑海中第一时间浮现的应该是它“约定大于配置”的特性。作为Spring亲儿子的它整合了很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),非常方便开发人员快速搭建和开发的一个框架。大势所趋之下,可以说它是程序员一个
我们在工作中的Java应用服务器中遇到了非常奇怪的内存泄漏:在部署新版本的微服务时,JVM进程内存不足,因此崩溃,导致服务中断。 经过一番研究,这类错误似乎在这个应用服务器中非常常见,尤其是在部署应用程序时不重新启动服务器时。常见的修复方法是在投入生产之前重新启动JVM进程,防止内存不足(但不会导
前言 最近结合平时踩的一些代码坑,写写总结,希望对大家有帮助,感谢阅读~ 1. 六类典型空指针问题 包装类型的空指针问题 级联调用的空指针问题 Equals方法左边的空指针问题 ConcurrentHashMap 这样的容器不支持 Key 和 Value 为 null。 集合,数组
“乐观锁”这个词以前我也没听过。上次在测试需求的时候,查询数据库发现有一个version 字段,于是请教开发这个字干嘛使, 人家回复我:乐观锁,解决并发更新用的。当时大家都忙,咱也不敢多问。 今天就来折腾一下“乐观锁”。 一、什么是乐观锁 乐观锁其实用一句话来形容其作用就是:当要更新一条记录
这份笔记从原理到实践,详解Spring 5+Spring MVC 5+MyBatis 3.X开发技术,从开发实战出发,结合开发工具IntelliJ IDEA,通过完整的项目实例让读者了解和学习SSM框架。同时整合Redis缓存、消息中间件ActiveMQ等热广]技术的高并发项目实践! 这份笔记共计
内存泄漏是用户不感兴趣的任何内存使用 定义1:用户角度内存泄漏 这个定义可能有点过于宽泛,特别是,它将包括从未使用过的缓存,内存泄漏是困扰开发人员和用户数代人的一大问题。不过,术语本身并不像看上去那么明显,所以我们将从一开始就开始:应该如何定义内存泄漏? 在开发人员(和计算机科学)界,与以下定
今天继续谈下在微服务架构设计中的一些实践和思考。对于SOA和微服务,我前面很多文章都进行了详细的阐述,今天这篇文章重点还是放在一些架构设计和实践的一些关键点思考上面。 微服务架构核心 再次强调,微服务架构核心是传统单体应用大拆小,同时拆分为小的微服务后相互之间以轻量的API接口进行通信。而这个拆
这篇文章,就来介绍一下xxl-job 的安装和简单使用。 这里安装是基于 Ubuntu 16.04 安装的。 我看了一下 GitHub 上开源的分布式调度系统,目前是 xxl-job 项目是分布式调度开源系统中最多 starts 的(当然也有可能因为这个 xxl-job 出来挺久了)
Redis Redis作为当前最流行的NoSQL数据库深受开发者的喜欢,它可以在很大程度上提高互联网系统的性能。对于那些结构化、多范式规则的数据库系统而言,它更具性能优势。作为缓存,它可以支持大数据存入内存中,只要命中率高,它就能快速响应,反正就一个字“快”! 基于其特性 ,Redis可以说无论
String s = new String("abc") 这段代码创建了几个对象呢? s=="abc" 这个判断的结果是什么? s.substring(0,2).intern()=="ab" 这个的结果是什么呢? s.charAt(ind
在本文中,我们将展示用Java捕获堆转储的不同方法。 堆转储是JVM内存中某一时刻所有对象的快照。它们对于解决内存泄漏问题和优化Java应用程序中的内存使用非常有用。 堆文件通常以二进制格式存储。我们可以使用jhat或JVisualVM之类的工具打开和分析这些文件。另外,对于Eclipse用户来
一、问题来源 问题来自一位朋友,如下: mysql客户端无法登陆,查看服务器负载没有发现高负载信息。通过pstack查看线程栈信息,没有发现异常信息。 二、问题诊断和解决 一般来讲出现这种情况,我们会使用pstack看看新建立的线程为在什么函数上卡住了,然后很容易就能找到原因。但是
字典是一种用于保存键值对的 抽象数据结构 ,也被称为查找表、映射或关联表。 在字典中,一个 键 (key)可以和一个值(value)进行关联,这些关联的 键 和值就称之为键值对。 抽象数据结构,啥意思?就是可以需要实际的数据结构是实现这个功能。抽象,意味着它这是实现功能的标准,凡是能够完成这些功
前言 目前IT行业不断迭代更新,高并发、高吞吐已经不再是首要的痛点,稳定、可靠才是王道。说到稳定可靠我们就不得不说说RocketMQ这个高可靠、低延迟的分布式消息中间件了。目前大多数的一线互联网大厂内部业务都是靠RocketMQ支撑!例如阿里的双11的核心链路支撑者之一就是——RocketMQ!
前言: 今天测试部门的小梦找到我,委屈巴巴的说我写的接口有问题,因为她对这个接口进行压力测试时,发现系统的吞吐量一直上不去,并且 应用服务器 (部署接口项目的服务器) 的CPU、内存等资源的使用率也一直很低,导致一直无法测试出这个接口的压力峰值。 听小梦说完后,自己心想接口都测试了好几
Java8时Lambda表达式的出现,将行为作为参数传递进函数的函数式编程,大大简化了之前冗杂的写法。 对于集合一类,我们来整理一下发生的变化吧。 Iterable的forEach Iterable接口就是所有可迭代类型的父接口,我们熟知的Collection接口就是继承自它。Jav
Dubbo 的两大设计原则 Dubbo 框架在设计时遵循了两大设计原则: 使用“微内核+插件”的设计模式。内核只负责组装插件(扩展点),Dubbo 的功能都是由插件实现的。Dubbo 作为一个优秀的 RPC 框架,一个 Apache 的顶级项目,其最大的亮点之一就是其优秀的无限开放性设计架构
扫一扫,把题目装进口袋
扫描二维码,进入QQ群
扫描二维码,关注牛客网公众号