- 博客(25)
- 收藏
- 关注
转载 这样讲 SpringBoot 自动配置原理,你应该能明白了吧
前言小伙伴们是否想起曾经被 SSM 整合支配的恐惧?相信很多小伙伴都是有过这样的经历的,一大堆配置问题,各种排除扫描,导入一个新的依赖又得添加新的配置。自从有了 SpringBoot 之后,咋们就起飞了!各种零配置开箱即用,而我们之所以开发起来能够这么爽,自动配置的功劳少不了,今天我们就一起来讨论一下 SpringBoot 自动配置原理。本文主要分为三大部分:SpringBo...
2019-09-17 15:47:41
342
转载 一份 Tomcat 和 JVM 的性能调优经验总结!拿走不谢
Tomcat性能调优找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置下图是我根据我机子的性能设置的一些参数值,给各位详细解释一下吧:1、URIEncoding=“UTF-8”:设置Tomcat的字符集。...
2019-09-16 15:54:55
450
转载 为啥阿里巴巴开发手册明确说明Arrays.asList()不能用其修改方法
引语阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关的方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况.问题分析我们做个测试被注释的三行可以分别解开注释,运行后确实出现了规约中所说的异常.我们来看下Arrays....
2019-09-12 13:53:40
312
转载 记一次隐藏很深的 JVM 线上惨案的分析、排查、解决。
1、本文背景本文会给大家讲解一个比较特殊的JVM优化案例,这个优化案例本身是因为新手工程师对JVM优化可能了解了一个半吊子,然后不知道从哪里zhao来了一个非常特殊的JVM参数错误的设置了一下,就导致线上系统频繁的出现Full GC的问题。但是我们后续大量的优化案例其实都是各种各样奇形怪状的场景,因为正是各种奇怪场景才能让大家逐步积累出来较为丰富的JVM优化实战经验了解的场景...
2019-09-10 16:03:48
297
转载 Java大牛分享关于 Redis 缓存的几道典型面试题
随着系统访问量的提高,复杂度的提升,响应性能成为一个重点的关注点。而缓存的使用成为一个重点。redis 作为缓存中间件的一个佼佼者,成为了面试必问项目。本文分享一下Redis几道常见的面试题:缓存雪崩1.1 什么是缓存雪崩?如果我们的缓存挂掉了,这意味着我们的全部请求都跑去数据库了。我们都知道Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设...
2019-09-09 15:23:21
626
转载 如何设计一个短小精悍、可拓展的RPC框架?(含实现代码)
简介如果大家对RPC有一些了解的话,或多或者都会听到过一些大名鼎鼎的RPC框架,比如Dobbo、gRPC。但是大部分人对于他们底层的实现原理其实不甚了解。有一种比较好的学习方式:就是如果你想要了解一个框架的原理,你可以尝试去写一个简易版的框架出来,就比如如果你想理解Spring IOC的思想,最好的方式就是自己实现一个小型的IOC容器,自己慢慢体会。所以本文尝试带领大家去设计...
2019-09-08 20:23:23
165
转载 Nginx+Tomcat 动静分离实现负载均衡
0.前期准备使用Debian环境。安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等。1.一份Nginx.conf配置文件基本配置这个文件,就可以实现负载了。但是里面的各种关系要了解就比较麻烦了。这篇博客,也不是教学篇,是记录一下,方便以后自己看了。2.基础讲解现在假使有一台电脑192.168.8.203这台电脑,上面部署了Tomcat,里面8080端...
2019-09-05 16:32:33
97
转载 若面试官问到分布式架构如何容错,把这些东西告诉他
1、原始架构:TB级数据放在一台机器上咱们就用分布式存储系统举例,来聊一下容错架构的设计。首先,我们来瞧瞧,到底啥是分布式存储系统呢?其实特别的简单,咱们就用数据库里的一张表来举例。比如你手头有个数据库,数据库里有一张特别大的表,里面有几十亿,甚至上百亿的数据。更进一步说,假设这一张表的数据量多达几十个TB,甚至上百个TB,这时你觉得咋样?当然是内心感到恐慌和无助了,因为如果...
2019-09-02 15:08:33
199
转载 一波骚操作,我把 SQL 执行效率提高了 10,000,000 倍
场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表:数据100条学生表:数据70000条学生成绩表SC数据70w条查询目的:查找语文考100分的考生查询语句:selects.*fromStudentswheres.s_idin(selects_idfromSCscwheresc.c_id=0andsc.score=100)...
2019-08-30 17:03:26
114
转载 Sprint Boot如何基于Redis发布订阅实现异步消息系统的同步调用?
前言在很多互联网应用系统中,请求处理异步化是提升系统性能一种常用的手段,而基于消息系统的异步处理由于具备高可靠性、高吞吐量的特点,因而在并发请求量比较高的互联网系统中被广泛应用。与此同时,这种方案也带来了调用链路处理上的问题,因为大部分应用请求都会要求同步响应实时处理结果,而由于请求的处理过程已经通过消息异步解耦,所以整个调用链路就变成了异步链路,此时请求链路的发起者如何同步...
2019-08-29 15:05:36
124
转载 分布式服务限流实战,已经为你排好坑了 | 总结的很全面
一、限流的作用由于API接口无法控制调用方的行为,因此当遇到瞬时请求量激增时,会导致接口占用过多服务器资源,使得其他请求响应速度降低或是超时,更有甚者可能导致服务器宕机。限流(Rate limiting)指对应用服务的请求进行限制,例如某一接口的请求限制为100个每秒,对超过限制的请求则进行快速失败或丢弃。限流可以应对:热点业务带来的突发请求;调用方bug导致的突发请求;恶意...
2019-08-26 16:21:54
164
转载 再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心
42019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维护到2019年8月1日。1.5.x 将会是 Spring Boot 1.0 系列的最后一个大版本。如今 Spring Boo...
2019-08-23 16:06:31
108
转载 从MySQL高可用架构看高可用架构设计
高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时...
2019-08-22 15:58:20
224
转载 如果有人问你 Dubbo 中注册中心工作原理,就把这篇文章给他
开篇首先想思考一个问题,没有注册中心 Dubbo 还能玩下去吗?注册中心作用当然可以,只要知道服务提供者地址相关信息,消费者配置之后就可以调用。如果只有几个服务,这么玩当然没问题。但是生产服务动辄成千上百,如果每个服务都需要手写配置信息,想象一下是多么麻烦。好吧,如果上面的问题都不是事的话,试想一下如果一个服务提供者在运行过程中宕机,消费者怎么办?消费者不知情,所以它还会不断...
2019-08-21 16:16:09
631
转载 动图+源码,演示Java中常用数据结构执行过程及原理
最近在整理数据结构方面的知识, 系统化看了下Java中常用数据结构, 突发奇想用动画来绘制数据流转过程.主要基于jdk8, 可能会有些特性与jdk7之前不相同, 例如LinkedList LinkedHashMap中的双向列表不再是回环的.HashMap中的单链表是尾插, 而不是头插入等等, 后文不再赘叙这些差异, 本文目录结构如下:LinkedList经典的双链表结构, 适...
2019-08-20 15:18:46
205
转载 太全了|万字详解Docker架构原理、功能及使用
一、简介1、了解Docker的前生LXCLXC为Linux Container的简写。可以提供轻量级的虚拟化,以便隔离进程和资源,而且不需要提供指令解释机制以及全虚拟化的其他复杂性。相当于C++中的NameSpace。容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。与传统虚拟化技术相比,它的优势在于:(1)与宿主机使用同一...
2019-08-19 17:25:16
246
转载 整天跟微服务打交道,你不会连RPC都不知道吧?
首先了解什么叫RPC,为什么要RPC,RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。RPC 功能目标RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。为实现该目标,R...
2019-08-18 20:41:00
106
转载 天天都用消息队列,却不知道为啥要用MQ,这就有点尴尬了
1、为什么要使用消息队列?分析:一个用消息队列的人,不知道为啥用,有点尴尬。没有复习这点,很容易被问蒙,然后就开始胡扯了。回答:这个问题,咱只答三个最主要的应用场景(不可否认还有其他的,但是只答三个主要的),即以下六个字:解耦、异步、削峰(1)解耦传统模式:传统模式的缺点:系统间耦合性太强,如上图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需...
2019-08-16 15:24:02
1785
转载 面试官:为何MySQL索引要使用B+树而不是其它树形结构?比如B树?
一个问题?InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单元,这就好比我们今天进行现金的流通最小单位是一毛。在计算机中磁盘存储数据最小单元是扇区,一个扇区的大小是512字节,而文件系统(例如XFS/...
2019-08-14 15:34:27
302
转载 日均7亿交易量,如何设计高可用的MySQL架构?
本文将围绕如下几个方面展开:工行 IT 架构转型中传统 OLTP 数据库架构面临的挑战和诉求。构建基于 MySQL 分布式企业级解决方案实践历程,包括技术选择、高可用设计、两地三中心容灾、运维管理、资源使用效率等方面的思考和实践经验。工行转型的成效以及对后续工作的一些思考。数据库转型背景传统 IT 架构的挑战大型国有银行,整体核心的系统都是大机+DB2 这样的传统架构;针对现...
2019-08-12 15:35:56
146
转载 「技术干货」阿里架构师写给 Java 工程师的数据库事务
认识事务1.1 为什么需要数据库事务转账是生活中常见的操作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:将A账户的金额减少100元将B账户的金额增加100元。在这个过程中可能会出现以下问题:转账操作的第一步执行成功,A账户上的钱减少了100元,但是第二步执行失败或者未执行便发生系统崩溃,导致B账户...
2019-08-09 16:55:15
115
转载 通过源码告诉你,阿里的RocketMQ事务消息到底牛逼在哪
“得益于MQ削峰填谷,系统解耦,操作异步等功能特性,在互联网行业,可以说有分布式服务的地方,MQ都往往不会缺席。”由阿里自研的RocketMQ更是经历了多年的双十一高并发挑战,其中4.3.0版本推出了事务消息的新特性本文对RocketMQ 4.5.0版本事务消息相关的源码跟踪介绍,通过阅读可以知道:事务消息解决什么样的问题事务消息的实现原理及其设计亮点01——解决什么问题假设...
2019-08-07 15:44:08
531
转载 无论什么级别的Java程序员,“微服务架构”都是你必须过的坎
近几年,微服务架构迅速在整个技术社区窜红,被认为是 IT 软件架构的未来方向。一线互联网公司由于具有大量的业务体量和业务场景,比如阿里、百度、网易,很早就开始入坑微服务架构。但说起微服务,不少人还是有这样的困惑:“作为一个开发,微服务架构是不是和我关系不大?那不都是架构师的事吗?”关于这个问题,我来谈谈自己的看法。微服务是当下最火热的后端架构之一。不管你是一个什么级别的程序员...
2019-08-05 14:53:01
110
转载 面试现场:如果让你实现一个短链接服务,你会怎么设计?
面试官:你平时是否留意过一些垃圾短信中包含短链接?候选人:有的,就像下面这样!面试官:为什么选择这种短链接这种方式?有什么好处?如果让你实现一个短链接的生成服务,你会怎么设计?这篇文章,我们就来聊聊上述问题!首先,短url的好处:短. 短信和许多平台(微博)有字数限制,太长的链接加进去都没有办法写正文了.好看. 比起一大堆不知所以的参数,短链接更加简洁友好.方便做一些统计.你...
2019-08-03 14:52:34
485
转载 深度总结|阿里P8Java架构师带你深入浅出Nginx
前言Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。架构图上图基本上说明了当下流行的技术架构,其中Nginx有点入口网关的味道。反向代理服务器?经常听人说到一些术语,如反向代理,那么什么是反向代理,什么又是正向代理呢?正向代理:正向代理示意图反向代理:反向代理示意图由于防火墙的原因,我们并不能直接访问谷...
2019-08-02 15:47:58
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人