Brown Blog

以终为始,聚沙成塔

《mysql高性能》系列3:创建合适的索引

创建合适的索引

1 概述 索引可以认为是存储引擎建立的一种数据结构,用来快速的根据查询条件来找到所需要的数据。由于数据一般存放在磁盘中,每次访问磁盘的时间都会比较长,因此,为了减少对磁盘的访问次数,存储引擎一般使用B-树结构来保存索引。 索引可以减少服务器层需要扫描的数据量,可以帮助服务器避免排序,将随机IO变为顺序IO。 下面讲我们常见的数据B-树结构的索引。 2 B-树索引 B-树通常有如下图所示...

《mysql高性能》系列2:选择合适的数据类型

选择合适的数据类型

1 选择数据类型的几个原则 选择更小的数据类型 比如,存储城市id可以用int,那就不要使用bigint了。更小的数据类型占用的磁盘、内存和CPU缓存都会比较小,处理起来也更快。但是,要记得不要低估需要存储的值的范围。 简单的数据类型更好 例如,能用整型存储ip地址,就不要用字符存储ip地址。因为,字符的操作代价比整形高。 尽量避...

服务可用性之熔断

熔断

1、熔断器的解释 熔断器(circuit breaker)是借鉴了电气元件中的词语。在电气元件中,当电路设备的负载过高时,熔断器就会自动断开,从而保护冰箱和电视机等电气设备不至于烧坏。在微服务可靠性中,是指当服务A依赖的B服务不可用时,服务A可以采取不依赖于B的做法,提供有损的服务,从而降低B服务不可用对于整个业务的影响。 如下图所示。在步骤1)- 3)中,当熔断器发现服务B两次调用都超...

服务可用性之限流

限流

1、为什么要限流 单个机器或者集群能够承受的QPS是有限的。如果超过机器能够承受的QPS,那么,机器的内存、网络连接等资源就会不够用,有两方面的影响: 1)对于接口请求方而言,服务的响应很慢,超时很多,接近于服务不可用 2)对于服务提供方而言,机器cpu、内存或者网络连接等资源占用量一般会很大,与注册中心的心跳丢失,相当于节点丢失,对外不提供服务了。 因此,限流对于服务稳定性建设来说,...

java8新特性之stream实现原理

stream实现原理

前一篇文章讲过,stream的操作分为中间操作和终止操作。中间操作的调用时,效果类似于添加一个监听器,实际的执行阶段在终止操作调用的时候。例如下面的filter在调用时,并不会真正的去对流进行过滤。而是在collect()调用的时候,将filter()和collect()一起执行。 list.stream().filter(s -> s != null) .filter(s -&...

java8新特性之stream操作

stream操作

stream介绍 java8引入了流(stream)处理,大大简化了集合操作。比如,遍历操作。一般会使用for-each循环,但是,在java8中,流处理就可以做到更加简洁。如下代码所示。 List<String> list = Lists.newArrayList("Chris Kate", "Bob Nana", "Tina Peter", "Bruce", "Jaker ...

java8新特性之内置函数式接口

前面介绍过函数式接口,函数式接口可以接受lambda表达式,lambda表达式代表一个操作。对于一些比较通用的操作,例如,传入两个参数,得到一个返回结果,或者传入一个参数,没有返回结果,java8已经提供了内置的函数式接口。下面我们就看看这些内置的函数式接口。 1、java8内置的函数式接口 Function apply()方法接收一个参数,返回一个结果。方法声明如下所示。 @Func...

java8新特性之注解增强

java8对注解的功能进行了增强,主要体现在两方面: 1)可以添加重复注解; 2)可以为任何目标添加注解 假设注解为 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Author { String name() default ""; } 添加重复注解 @Autho...

java8新特性之lambda表达式

lambda表达式 什么是lambda表达式 lambda表达式定义了一种操作,传入数据,就可以返回一个结果,类似于一个函数。 定义:形式如 (parameters) -> { expression } 这样的,就是一个lambda表达式,只需要写参数列表和函数体。例如, (int a, int b) -> { a + b } 其中,有些情况下,为了简洁,可以省略一些...

chris的人生笔记

我一直认为,自己对于世界缺少一种思考的积极性,缺乏一种批判性的思考。因此,我会努力去弥补自己的这一大缺点。通过读书、反思和行动,来达到自己的目的。 《别落入不思考的乡愿陷进》 今天看了一个视频,名字叫做《别落入不思考的乡愿陷阱》。演讲中有些话让我感触颇深。 为什么当今很多人都不愿意问为什么了?原因主要如下: 不知道问为什么 害怕问为什么 觉得为什么问出来得到的答案没为什么意...