3 pfnie

尚未进行身份认证

暂无相关描述

等级
TA的排名 8k+

Zookeeper的Leader选举(一)

一、Leader选举1、Leader选举概述  Leader选举是保证分布式数据一致性的关键所在。当Zookeeper集群中的一台服务器出现以下两种情况之一时,需要进入Leader选举。  (1)服务器初始化启动。  (2)服务器运行期间无法和Leader保持连接。  下面就两种情况进行分析讲解。第一种情况:服务器启动时期的Leader选举通常zookeeper是由2n+...

2019-04-06 18:24:34

Spring Cloud之Eureka服务注册与发现整合思想(二)

一、Eureka整合SpringCloud,实现服务注册与发现1、整合的Jar包:我们发现整合的代码在spring-cloud-netfilx-eureka-client的jar包里面。2、服务实例(被注册的东西)在Eureka中是如何被定义的:经过SpringCloud之服务注册与发现机制抽象理解(一)的分析,在SpringCloud中,服务实例(被注册的东西)被抽象出来的是Re...

2019-04-06 16:29:20

Spring Cloud之服务注册与发现机制抽象理解(一)

一、复杂与简单并存1、背景:到底是复杂好还是简单好,这是一个没有答案的问题,也是一个哲学问题。见仁见智啦。事物整体肯定是向复杂化方向发展,但是向人们呈现时应尽量简单化。用一句话来说就是:功能复杂化,使用简单化。因为人们的要求越来越高,所以功能肯定越来越复杂。又因为要获得更好的用户体验,所以使用方式应该越来越简单。因此对用户隐藏复杂性是一个需要专门考虑的事情。这个事情一直在进行中,而且效果还不...

2019-04-06 15:25:16

第二十一天:浪迹天涯网上商城(1.0版本)--浪迹天涯商城Redis高并发分布式锁实战---以扣减库存为例

背景现在面试,一般都会聊聊分布式系统这块的东西。通常面试官都会从服务框架(SpringCloud、Dubbo)聊起,一路聊到分布式事务、分布式锁、ZooKeeper等知识。本文以扣减库存为例,慢慢的阐述如何使用Redis实现分布式锁。一、从简单例子程序说起如下代码就是一个简单的扣减库存的例子,为了简单起见,我将库存放在redis中,初始设置库存的值是50,方便测试。代码如下:测试方...

2019-03-31 15:18:39

深入理解Mysql索引底层数据结构与算法

一、MySQL索引的介绍1.1、索引:(1)、索引是帮助MySQL高效获取数据的排好序的数据结构。索引存储在磁盘文件里,也就是说会有IO操作。常用的索引数据结构:二叉查找树、红黑树、hash、B-Tree、B+Tree。在以下的分析中,我会说明为什么MySQL会选择hash以及B+Tree作为索引的数据结构,而不是其他的几种数据结构。二、磁盘的读写原理(1)、硬盘的组成所有的盘片都...

2019-03-24 13:03:48

第一节:MySQL主从复制概念及架构

背景在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行。一、MySQL主从复制介绍1.1、主从复制实现基本原理:(1)、自带功能,复制是MySQL的一项功能,允许服务器将更改从一个实例复制到另一个实例。(2)、主服务器将所有数据和结构更改记录到二进制日志中。(3)、从服务器从主服务器请求该二进制日志并在本地应用其内容。1.2...

2019-03-16 16:51:32

第二十天:浪迹天涯网上商城(1.0版本)--浪迹天涯商城关于分库分表的思路---取模实现

背景“分库分表”是谈论数据库架构和优化时经常听到的关键词。那么对于这些业务量正在高速增长的公司,它有那么容易实践吗?在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分...

2019-03-16 10:54:48

第十九天:浪迹天涯网上商城(1.0版本)--浪迹天涯商城运营后台整合Feign,开启hystrix

1、在Feign中开启对Hystrix的支持如下,在配置文件中开启:2、定义特定服务的Hystrix的配置新建一个配置类,例如:ItemRemoteServiceFeignHystrixConfigpackagecom.niepengfei.langjitianya.backend.remote.item.config;importcom.netflix.hystrix.Hyst...

2019-01-06 15:42:00

第二节:InnoDB的RR级别Consistent Nonlocking Reads实验

1)对于RR隔离:AconsistentreadmeansthatInnoDBusesmulti-versioningtopresenttoaqueryasnapshotofthedatabaseatapointintime.Thequeryseesthechangesmadebytransactionsthatcommitted...

2018-11-14 13:45:19

第一节:InnoDB事物的D特性的原理分析

1、抛出我的观点首先我们应该很清楚的知道,undo日志用来保证事物的C一致性,redo保证事物的A原子性和D持久性,锁保证事物的隔离性。今天我们就来谈谈事物的D持久性。2、redo1、基本概念redo由两部分组成:一是MySQL实例内存中的redologbuffer,二是磁盘上的redologfile。InnoDB是事物的存储引擎,其通过ForceLogatCommit机...

2018-11-06 14:08:52

第十八天:浪迹天涯网上商城(1.0版本)--引入spring cloud sleuth分布式链路追踪

1、需求我们都知道随着项目的发展,各个底层的服务调用关系复杂,有时候因为某个服务的性能问题导致整个调用链出现故障,那么排查问题是很困难的。现在我们引入SpringCloudSleuth分布式链路追踪来解决这个问题。2、SpringCloudSleuth简介微服务可以将整个的系统拆分为无数个子系统,于是这样一来就有可能出现几种可怕的场景:·代码的调试:|-你的系统有可能变慢了...

2018-11-05 13:47:42

Hystrix源码解析--hystrixCommand的附属配置如何初始化的(二)

一、为什么HystrixCommand要求我们至少实现一个构造方法从这篇文章中Hystrix源码解析--从原生的lib开始使用hystrix(一),我们知道,如果使用原生的lib方式来使用hystrix,那么我们的command必须要实现至少一个构造方法,大家有想过为什么要这样么?原因就是hystrix要求你在构造方法中,必须指明command的一些附属配置,例如HystrixCommandG...

2018-09-09 12:15:50

Hystrix源码解析--从原生的lib开始使用hystrix(一)

一、HystrixCommand的探讨我们都知道hystrixCommand是用来隔离调用者和依赖服务的,但是hystrixCommand的使用有很多种,我们按照历史的发展轨迹,从原生的lib开始,教你如何使用hystrixCommand。hystrixCommand究竟是以一种怎么的形式存在呢?singleton或者是prototype?换句话说,也就是问hystrixCommand是有状态...

2018-09-08 18:47:00

Hystrix源码解析--HystrixCircuitBreaker--从实现探讨原理(三)

一、HystrixCircuitBreaker接口的实现者是谁?HystrixCircuitBreaker接口有两个实现者,分别是:HystrixCircuitBreakerImpl和NoOpCircuitBreaker。NoOpCircuitBreaker是空的断路器实现,用于不开启断路器功能的情况。HystrixCircuitBreakerImpl是完整的断路器的实现。我们重点分析后者。...

2018-09-02 18:22:51

Hystrix源码解析--HystrixCircuitBreaker--从抽象接口说起(二)

一、HystrixCircuitBreaker接口的起源断路器模式的思想来源于Netflix这家公司。Springcloud是非常贱的,他搞了一个CircuitBreaker接口,搞得好像HystrixCircuitBreaker是继承自Springcloud的CircuitBreaker一样,其实并不是这样的,HystrixCircuitBreaker跟Springcloud的Circ...

2018-09-02 17:14:31

Hystrix源码解析--HystrixCircuitBreaker--思想层面(一)

一、什么是HystrixCircuitBreaker?HystrixCircuitBreaker可以防止应用程序重复的尝试调用容易失败的依赖服务。HystrixCircuitBreaker的目的和Retry模式的目的是不同的。Retry模式令应用程序不断的去重试调用依赖服务,直到最后成功。而HystrixCircuitBreaker是阻止应用程序继续尝试无意义的请求。HystrixCircui...

2018-08-25 13:57:39

第十七天:浪迹天涯网上商城(1.0版本)--浪迹天涯商城运营后台整合Feign

1、浪迹天涯商城运营后台整合Feign第一步:springcloud整合Feign在调用者的项目中(在这里,我们指的是langjitianya-backend,浪迹天涯商城运营后台),加入如下的pom依赖:第二步:在服务的调用者(在这里,我们指的是langjitianya-backend,浪迹天涯商城运营后台)的启动类者,打开Feign的开关。第三步:编写客户端...

2018-08-18 13:26:13

第十六天:浪迹天涯网上商城(1.0版本)--缓存与数据库的一致性问题解析与解决方案

1、需求缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,普遍的做法都是没有啥疑问的,基本都是按照如下的流程进行。但是在更新缓存的时候,却有很多问题,接下来我们慢慢分析。2、表明自己的态度首先我抛出自己的看法,从理论上来说,给缓存设置过期时间,是保证最终一致性的解决方案。这种方案下,我们可以对存入缓存的数据设置过期时间。3、讨论四种更新策略1、先更新数据库,再更新缓存2、先删...

2018-07-01 14:51:20

第十五天:浪迹天涯网上商城(1.0版本)--商品服务中心接入缓存Redis

1、需求我们都知道随着项目的发展,必定会面临性能瓶颈问题,现在我就提前考虑这个问题,给项目介入缓存。在这里我们先接入Redis的单机版,之后我会介绍集群版。2、实现步骤1、在Linux上面安装Redis服务。2、准备好pom.xml文件3、准备好配置文件4、准备好启动类5、run起来6、访问验证3、具体实现1、安装RedisRedis的安装2、将Redis的配置文件放置在浪迹天涯商城配置中心修改...

2018-06-24 14:12:36

第十四天:浪迹天涯网上商城(1.0版本)--spring cloud zuul网关的过滤器运行机制剖析

1、ZuulServlet执行的生命周期在前面的博客第十二天:浪迹天涯网上商城(1.0版本)--springcloudzuul网关搭建中,我们使用了@EnableZuulProxy注解,开启该注解后,在Spring容器初始化时,会将Zuul的相关配置初始化,其中包含一个SpringBoot的bean:ServletRegistrationBean,该类主要用于注册Servlet。Zuul提供...

2018-06-18 08:27:59

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!