自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(24)
  • 收藏
  • 关注

转载 简谈Java中常用的四种线程池

newFixedThreadPool首先,看一下这种线程池的创建方法:public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L...

2019-12-31 22:10:43 111

原创 这可能是全网讲得最清楚的 ZooKeeper 概念文章了

前言相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲  ZooKeeper 是个什么东西,你能回答到什么地步呢?我本人曾经使用过 ZooKeeper 作为 Dubbo 的注册中心,另外在搭建 solr 集群的时候,我使用到了  ZooKeeper 作为 solr 集群的管理工具。前几天,总结项目...

2019-12-30 14:56:27 142

原创 Spring Boot 集成 Ehcache 缓存,三步搞定!

本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能。在Spring Boot应用程序中,我们可以通过Spring Caching来快速搞定数据缓存。接下来我们将介绍如何在三步之内搞定 Spring Boot 缓存。1. 创建一个Spring Boot工程你所创建的Spring Boot应用程序的maven依赖文件至少应该是下面的样子:<...

2019-12-29 21:14:10 124

原创 高并发场景下使用缓存需要注意那些问题?

一、缓存一致性问题当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。二、缓存并发问题缓存过期后将尝试从后端数据库获取数据,这是一个看似合理的流程。但是,在高并发场景下,有可能多个请求并发的去从数据库获取数据,对后...

2019-12-27 14:51:42 505

原创 Elasticsearch:是什么?你为什么需要他?

Elasticsearch 是什么?Elasticsearch 是一个分布式的、开源的搜索分析引擎,支持各种数据类型,包括文本、数字、地理、结构化、非结构化。Elasticsearch 是基于 Apache Lucene 的。Elasticsearch 因其简单的 REST API、分布式特性、告诉、可扩展而闻名。Elasticsearch 是 Elastic 产品栈的核心,Elastic...

2019-12-25 20:39:30 129

原创 从操作系统层面理解Linux下的网络IO模型

I/O( INPUT OUTPUT),包括文件I/O、网络I/O。计算机世界里的速度鄙视:内存读数据:纳秒级别。千兆网卡读数据:微妙级别。1微秒=1000纳秒,网卡比内存慢了千倍。磁盘读数据:毫秒级别。1毫秒=10万纳秒 ,硬盘比内存慢了10万倍。CPU一个时钟周期1纳秒上下,内存算是比较接近CPU的,其他都等不起。CPU 处理数据的速度远大于I/O准备数据的速度 ...

2019-12-24 21:28:49 327

原创 TCP/IP的底层队列是如何实现的?

自从上次学习了TCP/IP的拥塞控制算法后,我越发想要更加深入的了解TCP/IP的一些底层原理,搜索了很多网络上的资料,收益颇多。今天就总结一下。我自己比较了解Java语言,对Java网络编程的理解就止于Netty框架的使用。 Netty的源码贡献者Norman Maurer对于Netty网络开发有过一句建议,“Never block the event loop, reduce context...

2019-12-23 20:31:36 277

原创 一张图了解Spring Cloud微服务架构

Spring Cloud作为当下主流的微服务框架,可以让我们更简单快捷地实现微服务架构。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。Spring Cloud中各个组件在微服务架构中扮演的角...

2019-12-22 20:42:50 88

原创 一文教你快速理解 MySQL 事务隔离级别

当数据库上有多个事务同时执行的时候,就可能出现问题:脏读(dirty read)不可重复读(non-repeatable read)幻读(phantom read)为了解决这些问题,就有了“隔离级别”的概念,包括:读未提交的(read uncommitted)读已提交的(read committed)可重复读(repeatable read)串行化(serializable)...

2019-12-20 15:06:53 232

原创 用了 10 多年的 Tomcat 居然有bug !

为了解决分布式链路追踪的问题,我们引入了实现OpenTracing的Jaeger来实现。然后我们为SpringBoot框架写了一个starter以让用户实现近零改造接入全链路。由于公司有一个封装了SpringBoot的内部框架,然后我们的starter就以最新框架所使用的SpringBoot版本为基础进行开发。所以业务系统在接入的时候需要先升级框架,然后再引入我们的starter才行无缝接入全链...

2019-12-19 15:15:54 148

原创 每个程序员都该学会的Maven知识,你都能运用这些吗?

以前的日子以前我们写代码时,jar包都默认放在一个叫 /lib 的目录下,然后把该目录设置为classpath可以读取到的目录,如下图所示:某一天我们新加了一个功能,需要用到一个比较古老的 z.jar 包,这时我们到网上去各种搜索,由于比较罕见,最终在某个 xxx软件园 中找到了他。然后我们把 z.jar 包拷贝到 /lib 目录下:这时运行后报了一堆的错,原因是 z.jar 包有很多的...

2019-12-18 16:21:17 331 2

原创 基础不牢靠,何以争朝夕?Java基础面试82道详细解析!(一)

题目的基本顺序是:基本语法类相关的语法内部类的语法继承相关的语法异常的语法线程的语法集合的语法io 的语法虚拟机方面的语法因文章篇幅的问题,本文分(一)(二)两篇进行讲解,知识点很详细,可尽情享受。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Ja...

2019-12-17 17:22:43 199

原创 9102年将过:七年老兵分享Java程序员突破能力需要的那些技术点!

以下都是互联网目前的主流技术,当你全部掌握上述的这些技术相信你至少也是阿里P6级以上了,而且你也已经形成了自己的体系,当更加新潮的技术出来时那么你自己稍微花点时间就能吃透,毕竟那时候你已经不是以前的那个你了,懂底层原理,知道性能特征,以及功能,想要弄懂新的技术那么也不会太吃力。一、源码分析源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。源码...

2019-12-16 21:17:00 129

转载 1分钟带你理解Java Web开发必掌握的的:Token ,Cookie,Session

在Web应用中,HTTP请求是无状态的。即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session。CookieCookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。Cookie存储的数据量有限,且都是保存在客户端浏览器中。不同的浏览器有不同的存储大小,但一般不超过4KB。...

2019-12-15 22:04:01 109

原创 一文解析 RabbitMQ 最常用的三大模式

Direct 模式所有发送到 Direct Exchange 的消息被转发到 RouteKey 中指定的 Queue。Direct 模式可以使用 RabbitMQ 自带的 Exchange: default Exchange,所以不需要将 Exchange 进行任何绑定(binding)操作。消息传递时,RouteKey 必须完全匹配才会被队列接收,否则该消息会被抛弃,i...

2019-12-15 14:55:11 209

原创 Netty实战:设计一个IM框架就这么简单!

bitchat 是一个基于 Netty 的 IM 即时通讯框架项目地址:https://github.com/all4you/bitchat快速开始bitchat-example 模块提供了一个服务端与客户端的实现示例,可以参照该示例进行自己的业务实现。启动服务端要启动服务端,需要获取一个 Server 的实例,可以通过 ServerFactory 来获取。目前只实现了单机模式下的 ...

2019-12-13 14:28:38 409

原创 Spring Cloud微服务如何设计异常处理机制?

前言今天和大家聊一下在采用Spring Cloud进行微服务架构设计时,微服务之间调用时异常处理机制应该如何设计的问题。我们知道在进行微服务架构设计时,一个微服务一般来说不可避免地会同时面向内部和外部提供相应的功能服务接口。面向外部提供的服务接口,会通过服务网关(如使用Zuul提供的apiGateway)面向公网提供服务,如给App客户端提供的用户登陆、注册等服务接口。而面向内部的服...

2019-12-12 21:14:15 187 1

原创 心里没点B树,怎能吃透数据库索引底层原理?

二叉树(Binary Search Trees)二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(Left Subtree)和“右子树”(Right Subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树有如下特性:每个结点都包含一个元素以及 n 个子树,这里 0≤n≤2。左子树和右子树是有顺序的,次序不能任意颠倒。左子树的值要小于父结点,右子树的值要大于父...

2019-12-11 15:50:46 108

原创 Java数据结构和算法系列———栈

目录1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符是否匹配  6、总结1、栈的基本概念栈(英语:stack)又称为堆栈或堆叠,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个...

2019-12-10 21:33:14 110

原创 Java数据结构和算法系列———队列

目录1、队列的基本概念2、Java模拟单向队列实现3、双端队列4、优先级队列5、总结1、队列的基本概念队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的数据元素又称为队...

2019-12-10 20:52:19 75

原创 SpringCloud 注册中心 Eureka 集群是怎么保持数据一致的?

服务注册中心不可能是单点的,一定会有一个集群,那么集群中的服务注册信息如何在集群中保持一致的呢?首先要明确的是 Eureka 是弱数据一致性的。下面从2个方面来说明:什么是弱数据一致性Eureka 是如何同步数据的1. 弱数据一致性我们知道 ZooKeeper 也可以实现数据中心,ZooKeeper 就是强一致性的。分布式系统中有一个重要理论:CAP。该理论提到了分布式系统...

2019-12-09 21:17:08 4294

原创 程序员诉苦:“绩效考核”成了优秀员工的标签,绩效满分=成功?

前些天,有几个网友找我谈绩效考核的事,都是在绩效上被差评的朋友。在大致了解情况后,我发现他们感到沮丧和郁闷的原因,不全是自己没有做好事情,他们对于自己没有做好公司交给的事,一方面,持一些疑义,因为我很明显地感到他们和公司对一件是否做好的标准定义有误差,另一方面,他们对于自己的工作上的问题也承认。不过,让他们更多感到沮丧的原因则是,公司、经理或HR和他们的谈话,让他们感觉整个人都被完全否定了,甚至有...

2019-12-09 19:39:44 1467 1

原创 2019年末尾总结面试常问的基础22道Java面试题,值得收藏学习!

1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet)List:元素是有顺序的,元素可以重复因为每个元素有自己的角标(索引)  |-- ArrayList:底层是数组结构,特点是:查询很快,增删稍微慢点,线程不同步:A线程将元素放在索引0位置,CPU调度线程A停止,B运行,也将元素放在索引0位置,当...

2019-12-09 17:25:11 132

原创 一篇文章告诉你什么是架构模式和架构风格

本文探讨如下几个问题:架构模式和架构风格有区别吗?什么是架构模式?什么是架构风格?架构模式和架构风格的区别是什么?有哪些架构模式?有哪些架构风格?架构模式=架构风格?如果你搜索「架构模式和架构风格的区别」,你会发现答案千差万别:有的观点认为架构模式和架构风格是一个东西,只是叫法不同有的观点认为架构风格是架构模式的外在表现有的观点认为架构模式和架构风格是不同的两个概念(具...

2019-12-09 15:55:24 251

空空如也

空空如也

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

TA关注的人

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