自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

转载 MySQL 性能调优——数据库的分库分表

随着业务的不断增长,数据库中的数据也会越来越多,数据库的压力会越来越大,我们会发现,在业务繁忙的时候,数据库的性能会直线下降,这时为了保证良好的性能,需要想办法分担数据库的压力。分担数据库的读负载可以使用主从复制的方式,增加只读从数据库,通过读写分离的方式把数据库的读负载分担到不同的从数据库中,这时在一段时间内已经可以解决问题了。随着业务的发展,会发现,单一的主数据库已经无法承担写负载了,那么这时...

2019-06-29 17:22:22 306

原创 面试官:Redis分布式锁如何续期?

一、真实案例二、Redis分布式锁的正确姿势很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了.关键是该工具类中还充斥着很多System.out.println();等语句.其实Redis分布式锁比较正确的姿势是采用redisson这个客户端工具.具体介绍可以搜索最大的同性交友网站github.三、如何回答首先如果你之前用Redis的分布式锁...

2019-06-29 17:06:27 2809

原创 面试官:说说Spring中的事务传播行为

1、前言在开发中,相信大家都使用过Spring的事务管理功能。那么,你是否有了解过,Spring的事务传播行为呢? Spring中,有7种类型的事务传播行为。事务传播行为是Spring框架提供的一种事务管理方式,它不是数据库提供的。不知道大家是否听说过“不要在service事务方法中嵌套事务方法,这样会提交多个事务”的说法,其实这是不准确的。了解了事务传播行为之后,相信你就会明白!2、Sp...

2019-06-29 16:53:55 1623

原创 没有预热,这不叫“高并发”,叫“并发高”!

大家都知道,高并发系统有三把斧子:缓存、熔断和限流。但还有一把斧子,经常被遗忘在角落里,郁郁不得志,那就是预热。一、现象举例先说两个现象。这些现象,只能在并发高的系统中出现。好吧,它已经引起了多个故障。1、DB重启后,瞬间死亡一个高并发环境下的DB,进程死亡后进行重启。由于业务处在高峰期间,上游的负载均衡策略发生了重分配。刚刚启动的DB瞬间接受了1/3的流量,然后load疯...

2019-06-29 11:40:36 161

原创 分布式数据库中间件 MyCat 搞起来!

一、MyCat 简介如果数据量比较大的话,我们需要对数据进行分库分表,分完之后,原本存在一个数据库中的数据,现在就存在多个数据库中了,就像下面这样:那么此时 MyCat 所扮演的角色就是分布式数据库中间件!MyCat 是一个开源的分布式数据库中间件,它实现了 MySQL 协议,在开发者眼里,他就是一个数据库代理,我们甚至可以使用 MySQL 的客户端工具以及命令行...

2019-06-29 11:39:58 236

原创 缓冲池(buffer pool),这次彻底懂了!!!

应用系统分层架构,为了加速数据访问,会把最常访问的数据,放在缓存(cache)里,避免每次都去访问数据库。操作系统,会有缓冲池(buffer pool)机制,避免每次访问磁盘,以加速数据的访问。MySQL作为一个存储系统,同样具有缓冲池(buffer pool)机制,以避免每次查询数据都进行磁盘IO。今天,和大家聊一聊InnoDB的缓冲池。一、InnoDB的缓冲池缓...

2019-06-29 11:39:42 635 1

转载 Dubbo 一些你不一定知道但是很好用的功能!

一、直连Provider在开发及测试环境下,可能需要绕过注册中心,只测试指定服务提供者,这时候可能需要点对点直连,点对点直连模式,将以服务接口为单位,忽略注册中心的提供者列表,A 接口配置点对点,不影响 B 接口从注册中心获取列表(说明:官方只建议开发&测试环境使用该功能),用法如下,url指定的地址就是直连地址:<dubbo:reference id="demoServi...

2019-06-29 11:39:31 141

原创 你是否还在写try-catch-finally?用try-with-resources优雅地关闭流吧!

前言开发中,我们常常需要在最后进行一些资源的关闭。比如读写文件流等,常见的,我们会在最后的finally里进行资源的关闭。但是这种写法是很不简洁的。其实,早在JDK1.7就已经引入了try-with-resources来关闭资源的方式,我们今天就来体验一下try-with-resources的简洁之处。旧版关闭资源的一些例子在旧版的写法中(其实现在还有很多程序员是这么写的),资源...

2019-06-28 11:11:14 864

原创 日期的正确存储方式!

我发现数据库有些日期居然用字符串保存?于是跟几个小伙伴讨论了关于数据库的日期应该要怎么保存的问题,其实我一直都建议直接用数值保存时间戳,为什么我要这么建议呢?以下,我会从时区的概念来跟你们解释一下,为什么用数值保存时间戳是最好的方案,同时也为了分享出来,让更多开发小伙伴留意这些细节性的东西。相信时区对于很多人来说的很熟悉,因为地球是圆的,在地球上不同角落看到的太阳上升的角度都是不同的,...

2019-06-28 11:11:03 2089 1

转载 【Java Web】将数据库数据以POI方式导出到Excel文档下载(超清晰、超详细)

POI需要的JAR包需要两个JAR包:poi-3.9.jar、poi-ooxml-3.9.jar。附上两个JAR包的下载链接:poi-3.9.jar、poi-ooxml-3.9.jar。这里也推荐一个JAR包的下载地址:Maven Repository,在里面可以下载到基本全部的JAR包。前端JSP页面设置应为本文主要讲的是POI方式导出到Excel,所以就只采用最简单的...

2019-06-19 16:36:52 1264

转载 【Java Web】Quartz定时任务执行两次的解决方法

问题描述如果选择定时任务,那么Quartz是一个不错的框架,但是在使用的过程中,莫名发现Quartz定时任务在指定时间被执行了两次。问题原因在Tomcat的配置文件conf/server.xml中:<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="tru...

2019-06-19 16:29:57 1094

原创 Java多线程 - AQS详解

介绍AQS是java.util.concurrent.locks下类AbstractQueuedSynchronizer的简称,是用于 通过Java源码来构建多线程的锁和同步器的一系列框架,用于Java多线程之间的同步,它的类及类结构图如下:原理在AQS类中维护了一个使用双向链表Node实现的FIFO队列,用于保存等待的线程,同时利用一个int类型的state来表示状态,使用时...

2019-06-19 14:14:58 169

原创 Java并发编程:Java内存模型JMM

简介Java内存模型英文叫做(Java Memory Model),简称为JMM。Java虚拟机规范试图定义一种Java内存模型来屏蔽掉各种硬件和系统的内存访问差异,实现平台无关性。CPU和缓存一致性讲JMM之前,我们应该先了解下CPU和缓存一致性的问题。计算机在执行程序的时候,每条指令都是在CPU中执行的,而执行的时候,又要和数据打交道。而计算机上面的数据,是存放在内存当中的。随着C...

2019-06-19 11:15:57 147

原创 为什么阿里Java规约要求谨慎使用SimpleDateFormat 前言?

在阿里Java开发规约中,有强制性的提到SimpleDateFormat 是线程不安全的类 ,在使用的时候应当注意线程安全问题,如下:其实之前已经介绍过使用JDK1.8的DateTimeFormatter 和LocalDateTime来处理时间了,还在用SimpleDateFormat?Java8都发布N年了,转LocalDateTime吧。今天,就来说说SimpleDa...

2019-06-19 11:11:59 202

转载 Win10实现【JAVA】文件的开机自启动(附详细步骤)

一、问题描述随着入了Win10的坑,发现它最不能让人忍受的一点就是强制系统更新,而且系统更新之频繁,简直不能忍。这就导致,对于一些想要一直运行的Java文件,就会造成每次系统更新之后的重启导致Java文件无法继续运行。也有很多博客解决这个问题: 创建一个bat文件,将快捷方式放到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\...

2019-06-19 11:11:38 978

原创 分布式缓存中的一致性哈希算法,这篇文章给讲透了!

一致性哈希算法在分布式缓存领域的 MemCached,负载均衡领域的 Nginx 以及各类 RPC 框架中都有广泛的应用它主要是为了解决传统哈希函数添加哈希表槽位数后要将关键字重新映射的问题。本文会介绍一致性哈希算法的原理及其实现,并给出其不同哈希函数实现的性能数据对比,探讨Redis 集群的数据分片实现等,文末会给出实现的具体 github 地址。一、Memcached 与客户端分布...

2019-06-18 11:58:58 455

原创 新手程序员经常犯的10个错,别不服!

1. 想清楚,再动手写代码刚入行的新手,为了展示自己的能力,拿到需求迫不及待地就开始上手写代码,大忌!2. 不交流,就会头破血流不爱说话和沟通,需求都理解错误了,最后做出来才发现,只能加班返工。3. 文档没人看,但还是要写文档的作用大部分时候不是用来沟通的,是用来做记录的,大部分需求还是通过口头沟通,但是不写文档做记录,后续就容易扯皮。...

2019-06-18 11:57:57 205

原创 这样的高可用,我不要!

前不久,朋友的公司,出现了比较大的故障。故障引起的原因也比较好解释,因为使用了ActiveMQ的高可用级别(M-S架构,双写完成ACK),结果在高峰期间,造成了生产端消息拥堵,诸多请求无法落地,数据错乱。一、背景据他说,他们的应用,级别比电信应用还要高(牛皮一定要吹),所以消息系统要求一条消息都不能丢。他做到了,但是服务不能用了。这个Case有何而来呢?据说是来自一次高管会议上,...

2019-06-18 11:57:45 125

原创 常见的 SQL 避坑指南!

爱编程的太阳2019-06-13 11:42:191. LIMIT 语句分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,一般DBA想到的办法是在type, name, create_time字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQL...

2019-06-18 11:57:28 193

原创 连引用都答不上,凭什么说你是Java服务端开发?

【干货点】看完该篇文章,就基本可以解答面试热点【谈谈对Java中几种引用的理解】了。所以经常会有朋友找我吹水,最近就说到了一个面试题谈谈对Java中几种引用的理解。因此打算以该面试题为例子,写篇文章说说在Java中引用是什么以及怎么用。 【划重点:给你三秒钟时间思考,如果是你,该如何回答面试官的这个问题呢】一、引用是什么?【划重点】在Java中引用包括: FinalR...

2019-06-17 15:57:36 273

原创 java架构师,必须掌握的几点技术?

一、前言一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的...

2019-06-17 11:37:02 344

原创 Dubbo源码阅读系列:服务暴露之本地暴露

export()方法调用时机为了解答 export() 调用时机问题,我们需要关注 ServiceBean 类中的三个方法setApplicationContext(ApplicationContext applicationContext) ServiceBean 实现了 ApplicationContextAware 接口,在 ServiceBean 初始化后,会调用 setAppl...

2019-06-17 11:36:42 167

原创 Oracle进阶学习:SQL语句执行过程及解析类型!

一、Oracle数据库的体系结构Oracle 体系结构简要如下图EM(Enterprise Manager)是Oracle实际的基于Java的管理工具,可通过浏览器访问数据库的管理界面,SQL PLUS可以访问数据库的数据信息。二、SQL语句执行过程1、一些背景知识(1)ORACLE数据库启动的时候,Oracle首先在内存中划出一段空间启动一堆进程,进程以及该内...

2019-06-17 11:36:12 765 2

转载 初步理解一下:SOA, SOAP, Web Service, WSDL等

什么是SOA、SOAP?SOA到底是什么? SOA(Service-Oriented Architecture)的定义是面向服务的架构,就是说将软件按照功能设计成一个个服务,这些服务用标准的方式定义接口、并通过标准的协议进行调用。 SOA所定义的接口和调用方式是独立于编程语言和运行平台的,广义上讲SOA可以基于不同的底层技术实现,比如CORBA和Web Services。但CORB...

2019-06-17 11:35:51 399

原创 Spring AOP源码解析——专治你不会看源码的坏毛病!

昨天有个大牛说我啰嗦,眼光比较细碎,看不到重点。太他爷爷的有道理了!要说看人品,还是女孩子强一些。原来记得看到一个男孩子的抱怨,说怎么两人刚刚开始在一起,女孩子在心里就已经和他过完了一辈子。哥哥们,不想这么远行吗?看看何洁,看看带着俩娃跳楼的妈妈。所以现在的女孩子是很明白的,有些男孩子个子不高,其貌不扬,但是一看那人品气质就知道能找个不错的女盆友。不过要说看人的技术能力,男孩子确实更胜一筹...

2019-06-17 11:35:24 139

原创 面试官:MySQL索引为什么用B+树?

前言讲到索引,第一反应肯定是能提高查询效率。例如书的目录,想要查找某一章节,会先从目录中定位。如果没有目录,那么就需要将所有内容都看一遍才能找到。索引的设计对程序的性能至关重要,若索引太少,对查询性能受影响;而如果索引太多,则会影响增/改/删等的性能。知识点MySQL中一般支持以下几种常见的索引:B+树索引 全文索引 哈希索引我们今天重点来讲下B+树索引,以及为什么要用B...

2019-06-15 11:38:25 236

原创 Java开发提升十倍生产力:Idea远程一键部署springboot到Docker

Idea是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?一、开发前准备1. Docker的安装可以参考https://docs.docker.com/install/2. 配置docker远程连接端口 vi /usr/lib/systemd/system/docker.servi...

2019-06-15 11:38:16 524

原创 灭霸脚本怎么随机删除服务器的一半文件?

复联4中灭霸一个响指可以随机消灭一半生命,Github 上的灭霸脚本可以随机删除一半服务器文件。我在想怎么做到随机删除一半的文件呢??随机算法的底层怎么实现的?灭霸脚本本体let "i=`find . -type f | wc -l`/2";if [[ uname=="Darwin" ]]; then find . -not -name "Thanos.sh" -type f -pr...

2019-06-15 11:38:07 549

原创 面试官:对比Vector、ArrayList、LinkedList有何区别?

1、共同点Vector、ArrayList、LinkedList均为线型的数据结构;2、底层实现方式ArrayList内部用数组来实现; LinkedList内部采用双向链表实现; Vector内部用数组实现。3、读写机制ArrayList在执行插入元素是超过当前数组预定义的最大值时,数组需要扩容,扩容过程需要调用底层System.arraycopy()方法进行大量的数组复制...

2019-06-15 11:37:53 244

原创 从简历被拒到收割今日头条 offer,"我"用一年时间破茧成蝶!

一、印象中的头条先说说“我”印象中的今日头条:1.给的钱多,笔试也贼难参加过头条笔试的同学都知道,头条笔试可以笔试三次,就是不论你有没有参加都有三次机会。笔试就5道算法题,两个小时,去年第一次看到算法题就自闭了,第一次挂了。第二次又很认真地做,做到一半放弃了。没过几天又邀请我做第三次,有一种强行被侮辱的感觉。2.内推被拒如我标题所说,简历被拒。去年3月份在知乎上看到一个头条大佬说可以内...

2019-06-14 14:23:08 412

原创 如何正确的终止一个线程?

我们知道当调用 Thread 的 start()方法,执行完 run()方法后,或在 run()方法中 return,线程便会自然消亡。但是如果一些线程长时间的在后台运行,那么怎么去停止呢?下面介绍几种方法:1、使用 volatile 关键字修饰 变量的方式终止这种方式比较灵活,不管是通过继承 Thread 类还是实现 Runnable 接口都可以使用,而使用实现 Runnable 接口的...

2019-06-14 14:21:22 711

原创 面试官们“爱不释手”的分布式系统架构到底是个什么鬼?

一、什么是分布式系统?在谈分布式系统架构前,我们先来看看,什么是分布式系统?假设原来我们有一个系统,代码量30多万行。现在拆分成20个小系统,每个小系统1万多行代码。原本代码之间都是直接基于Spring框架走JVM内存调用,现在拆开来,将20个小系统部署在不同的机器上,然后基于分布式服务框架(比如dubbo)搞一个rpc调用,接口与接口之间通过网络通信来进行请求和响应。所以分布式系...

2019-06-14 11:25:24 192

原创 被面试官虐懵了,竟然是因为我不懂Spring中的@Configuration

在一次关于Spring注解的面试中,可能会经历面试官的一段夺命连环问:(1)@Configuration有什么用?(2)@Configuration和XML有什么区别?哪种好?(3)Spring是如何基于来获取Bean的定义的?如何对Bean进行延迟初始化?(4)@Autowired 、 @Inject、@Resource 之间有什么区别?(5)@Value、@Property...

2019-06-14 11:24:30 494 1

原创 如何写优雅的SQL原生语句?

语句中各子句完整执行顺序概括(按照顺序号执行)from (注:这里也包括from中的子语句) join on where group by(开始使用select中的别名,后面的语句中都可以使用) avg,sum.... 等聚合函数 having select distinct order by limit每个子句执行顺序分析所有的 查询语句都是从from开始执行的,在...

2019-06-14 11:23:59 449

原创 阿里Java架构师分享自己的成长经历, 教你如何快速成长为架构师

架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环。当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程。对于大部分的软件开发人员来说,架构师都是一个令人向往的角色。那么程序员们要想如何去成为一名合格的架构师,我们还要先从一名合格的架构师的身上去了解,了解架构师们的一些成长经历,了解他们是如何加强自己的技能修养,了解他们是怎样的一...

2019-06-14 11:22:40 187

原创 阿里之路——Java面经考点

Java面试考点梳理第一部分:计算机基础互联网大厂都相当重视程序员的基本功,也就是计算机基础知识。一个程序员能走多远、爬多高,很大程度上取决于基本功是否扎实。对于应届生而言,大都比较缺乏实战项目经验,虽然会有一定的项目经验,但这些课程设计、实验室项目的质量与公司实际的项目有着巨大的差距。因此,基础知识便成为面试考量的一大重点,而且基础扎实的程序员可塑性比较高,做什么都能比较容易快速上手。计算机...

2019-06-13 18:04:53 173

原创 10个面试必问的Netty框架知识!

1.BIO、NIO和AIO的区别?BIO:一个连接一个线程,客户端有连接请求时服务器端就需要启动一个线程进行处理。线程开销大。 伪异步IO:将请求连接放入线程池,一对多,但线程还是很宝贵的资源。 NIO:一个请求一个线程,但客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。 AIO:一个有效请求一个线程,客户端的I/O请求都是由OS先完...

2019-06-13 18:03:27 1892

原创 Java动态追踪技术探究,从JSP到Arthas!

一、引子在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话:“Debug一下吧。”“线上机器,没开Debug端口。”“看日志,看看请求值和返回值分别是什么?”“那段代码没打印日志。”“改代码,加日志,重新发布一次。”“怀疑是线程池的问题,重启会破坏现场。”长达几十秒的沉默之后:“据说,排查问题...

2019-06-13 10:38:13 175

原创 数据库分表后需要注意的二三事!

一、问题产生在分表应用上线前我们需要将原有表的数据迁移到新表中,这样才能保证业务不受影响。所以我们单独写了一个迁移应用,它负责将大表中的数据迁移到 64 张分表,而再迁移过程中产生的数据毕竟是少数,最后在上线当晚再次迁移过去即可。一切想的很美好,当这个应用上线后却发现没这么简单。二、数据库负载升高首先第一个问题是数据库自己就顶不住了,在我们上这个迁移程序之...

2019-06-13 10:15:15 368

原创 一文解析总结Java虚拟机内存区域模型

最近抽空看了一点《深入理解Java虚拟机》,本篇文章主要来总结一下Java虚拟机内存的各个区域,以及这些区域的作用、服务对象以及其中可能产生的问题,作为大家的面试宝典。首先我们来看一下Java运行时的数据区域,Java虚拟机在执行Java程序的过程中会把它所管理的内存划分成若干个不同的数据区域,这些区域都有各自的用途,各自的创建和销毁的时间。有的区域随着虚拟机进程的启动而存在,有些区域则依赖用...

2019-06-12 15:24:44 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除