自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 资源 (2)
  • 收藏
  • 关注

原创 重学| 面试复习(五)分布式问题

⽐如,可以为每台服务器计算三个虚拟节点,于是可以分别计算 “节点1的ip#1”、“节点1的ip#2”、“节点1的ip#3”、“节点2的ip#1”、“节点2的ip#2”、“节点2的ip#3”的哈希值,于是形成六个虚拟节点,当客户端被路由到虚拟节点的时候其实是被路由到该虚拟节点所对应的真实节点。最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不需要实时保证系统的数据的强一致性。

2020-09-26 09:31:11 340 2

原创 基于ngx_kafka_module收集用户操作信息

需要先完成对kafka的搭建服务器: 阿里云Centos7.4kafka版本: kafka_2.12-1.0.2nginx: nginx-1.15.61.安装编译kafka的c客户端源码clone kafka的c客户端源码编译2.安装nginx整合kafka的插件clone nginx的kafka的插件ngx_kafka_module编译nginx添加插件如果启动nginx,报错,找不到kafka.so.1的文件加载so库nginx配置文件测试访问页面进行操作按钮点击kafka开启消费者

2020-09-26 09:14:33 499

原创 重学| 面试复习(七)Dubbo

2、DubboMonitor 将数据进行聚合后(默认聚合 1min 中的统计数据)暂存到ConcurrentMap statisticsMap,然后使用一个含有 3 个线程(线程名字:DubboMonitorSendTimer)的线程池每隔 1min 钟,调用 SimpleMonitorService 遍历发送 statisticsMap 中的统计数据,每发送完毕一个,就重置当前的 Statistics 的 AtomicReference。

2020-09-25 21:04:13 219

原创 重学| 面试复习(九)MySql

若开启用查询缓存,这时会将SQL 语句和结果完整地保存到查询缓存(Cache&Buffer)中,以后若有相同的 SQL 语句执行则直接返回结果。使用一致性Hash算法能够很大程度的避免这个问题,所以很多中间件的集群分片都会采用一致性Hash算法,一致性Hash在增加或者删除节点的时候,受到影响的数据是比较有限的,只会影响到Hash环相邻的节点,不会发生大规模的数据迁移。如:合理的表结构,合理的索引,合理的查询语录(可通过分析慢查询日志找出可优化的,再通过explain去测试语句,找出可优化的点进行优化)。

2020-09-25 20:52:18 183

原创 Docker-compose+Swarm部署mysql+redis+springboot

环境安装docker安装yum install -y yum-utils yum-config-manager --add-repo https://download.docker.com/linux/centos/docker- ce.repoyum install -y docker-ce docker-ce-cli containerd.io#开机启动 systemctl enable docker #启动 systemctl sta.

2020-09-25 14:13:05 789

原创 重学| 面试复习(三)Spring Boot

查看spring-boot-starter-web依赖文件源码,可以发现,spring-boot-starter-web依赖启动器的主要作用是提供Web开发场景所需的底层所有依赖,正是如此,在pom.xml中引入spring-boot-starter-web依赖启动器时,就可以实现Web场景开发,而不需要额外导入Tomcat服务器以及其他Web依赖文件等。当然,这些引入的依赖文件的版本号还是由spring-boot-starter-parent父依赖进行的统一管理。这一一步主要是在容器刷新之前的准备动作。

2020-09-25 09:05:00 278

原创 重学| 面试复习(四)Tomcat & Nginx

这样,当我们开发一个新的HTTP模块时,不但可以使用诸如HTTP核心模块、events模块、log模块等不同层次或者不同类型的模块,还可以原封不动地复用大量已有的HTTP过滤器模块。可以认为整个Tomcat就是⼀个Catalina实例,Tomcat 启动的时候会初始化这个实例,Catalina实例通过加载server.xml完成其他实例的创建,创建并管理⼀个Server,Server创建并管理多个服务,每个服务⼜可以有多个Connector和⼀个Container。这是Nginx可以快速发展的强大动力。

2020-09-25 08:58:06 526 1

原创 重学lagou | 面试复习(二)Spring

具体过程:判断循环所有的BeanPostProcessor,然后我们aop什么时候被加进来的后置处理器?FactoryBean是spring当中的一个特殊的bean,它是一个接口,实现了FactoryBean的bean能够再创建一个bean,如果你的类实现了FactoryBean,那么spring容器当中存在两个对象,一个是通过getObject()返回的对象,还有一个为当前对象,getObject得到的对象存的是当前类@Component(“名字”)指定的名字,当前对象是“&”+指定的名字。

2020-09-25 08:55:15 149

原创 重学| 面试复习(一)Mybatis

它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成a.getB().getName()方法的调用。aop(面向切面)我们的插件可以以为四大对象创建出代理对象,代理对象就可以拦截到四大对象的每一个执行;返回target包装后的对象。

2020-09-24 15:20:35 272

原创 重学| 面试复习(目录)开篇

开篇重学| 面试复习(一)Mybatis重学| 面试复习(二)Spring重学| 面试复习(三)Spring Boot重学| 面试复习(四)Tomca t& Nginx重学| 面试复习(五)分布式问题重学| 面试复习(六)Zookeeper重学| 面试复习(七)Dubbo重学| 面试复习(八)Spring Cloud重学| 面试复习(九)MySql重学| 面试复习(十)FastDFS重学| 面试复习(十一)Redis重学| 面试复习(十二)Rabbit MQ & K

2020-09-24 15:17:54 334

原创 elastic课程知识扩展 | Kibana扩展插件安装

kibana提供了丰富的dashbord,但是有些情况下可能不满足业务的分析需求,这时候可以通过安装一些kibana插件来实现。启动后就会看到新安装的一个视图插件。例如这里安装一个图标视图。

2020-09-24 15:12:55 332

原创 elastic课程知识扩展 | Ingest Pipeline

Pipeline是一系列处理器的定义,这些处理器将按照声明的顺序执行。管道包含两个主要字段:description 和processorsdescription:用于存储有关管道功能的有用描述。processors:参数定义了要按顺序执行的处理器列表。

2020-09-24 15:12:11 547

原创 elastic课程知识扩展 | Index Templates

索引模板是一种告诉Elasticsearch在创建索引时如何配置索引的方法。对于数据流,索引模板在创建流的后备索引时对其进行配置。在创建索引之前先配置模板,然后在手动创建索引或通过对文档建立索引创建索引时,模板设置将用作创建索引的基础。模板有两种类型,索引模板和组件模板。组件模板是可重用的构建块,用于配置映射,设置和别名。您使用组件模板构造索引模板,但它们不会直接应用于一组索引。索引模板可以包含组件模板的集合,也可以直接指定设置,映射和别名。

2020-09-24 15:11:13 259

原创 elastic课程知识扩展 | 实现elasticsearch导入mysql数据

【代码】elastic课程知识扩展 | 实现elasticsearch导入mysql数据。

2020-09-24 15:05:02 701

原创 Docker核心概念与实战

Docker核心概念Docker概述Docker是一个用于开发,发布和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker与虚拟机比较特性容器虚拟机启动速度秒级分钟级性能接近原生较弱内存代价很小较多硬盘使用一般为MB一般

2020-09-22 14:35:15 177

原创 基于RocketMQ设计秒杀

阿里云Centos7.4jdk1.84.5.1。

2020-09-02 22:28:47 1377

原创 大型网站的缓存设计Guava+redis实现多级缓存

具体逻辑实现部分,先从本地缓存Guava Cache中获取要查询的数据,如果没有则从redis中查询,如果redis 中也没有,则去mysql中查询,最后回写到redis,再回写到本地缓存Guava Cache中返回查询结果。数据从服务层读取,然后放到本地缓存中(Guava),如果出现超时或读取为空,则返回原来本地缓存的数据。这样如果出现分布式缓存redis挂掉等情况,依然可以从本地缓存中获取到数据,不会出现项目的瘫痪。从本地缓存Guava Cache中获取到查询结果。

2020-08-08 11:24:36 1863

原创 Mysql所需掌握知识点梳理,搞懂这些吊打面试官

第一部分 MySql架构原理MySql体系架构: 网络连接层,服务层,存储引擎层等要了解到他们的具体作用MySql运行机制: 从客户端建立连接到查询执行引擎负责执行 SQL 语句是如何执行的MySql存储引擎: InnoDB和MySAM对比, InnoDB线程模型, InnoDB数据文件MySql日志: Undo Log,Redo Log和Binlog了解到他们的作用第二部分 MySql索引原理索引类型: 普通索引,唯一索引,主键索引,.

2020-08-08 10:00:48 169

原创 Redis必问面试题,看完还不懂请来打我(缓存穿透,缓存击穿,缓存雪崩,一致性问题,热key,大key)

如果都是1,则被检元素很可能在。缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般会从数据库中加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。缺点:会造成写一致问题,当数据库数据发生更新时,缓存中的数据不会及时更新,这样会造成数据库中的数据与缓存中的数据的不一致,应用会从缓存中读取到脏数据。可采用延时双删策略处理。在缓存之前在加一层布隆过滤器,在查询的时候先去布隆过滤器查询 key 是否存在,如果不存在就直接返回,存在再查缓存和DB。

2020-08-07 21:28:52 4666 12

原创 RabbitMQ实现下单超时自动取消支付

用户下单,将订单存放到交换机ex.order(过期时间为下单超时时间30分钟),消息到q_order队列中,不设置该队列的消费者(故此消息一直未消费).,同时指定一个死信交换机ex.order.dlx,并绑定一个死信队列q.order.dlx,当消息超过30分钟过期变成死信时,该消就会被发送到该死信队列上,由死信消费者消费,判断订单id是否支付,如果未支付则修改为支付超时订单过期。声明订单和死信队列和交换机,并绑定,(订单消息过期时间这里为了方便测试,设置为10s)观察订单信息进入到订单队列。

2020-08-07 20:41:35 6016 8

原创 redis cluster集群搭建及扩容

阿里云Centos7.4redis5.05端口号分别为:7001~7006RedisCluster最少需要三台主服务器,三台从服务器。

2020-07-19 17:49:16 345

原创 hbase集群搭建安装部署

阿里云Centos7.4下载地址:http://archive.apache.org/dist/hbase/1.3.1/

2020-07-09 19:51:32 344

原创 hadoop搭建全过程

阿里云Centos7.4下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2。

2020-07-09 19:35:52 476

原创 FastDFS+GraphicsMagick+Lua实现生成缩略图

前置条件需要先完成对FastDFS的搭建以及对fastdfs-nginx-module安装参考链接: Linux下FastDFS环境搭建.环境介绍服务器: 阿里云Centos7.4FastDFS版本: fastdfs-5.11Lua: lua-5.3.1GraphicsMagick: GraphicsMagick-1.3.18所需安装包:链接: https://pan.baidu.com/s/1jZTFuNP6jB–QZrNrGAOvQ 提取码: ezr3搭建过程1.上传安装包把

2020-07-02 11:15:06 717 2

原创 Linux下FastDFS环境搭建

环境介绍服务器: 阿里云Centos7.4FastDFS版本: fastdfs-5.11搭建过程1.安装编译环境yum install git gcc gcc-c++ make automake vim wget libevent -y2.安装libfastcommon基础库mkdir /root/fastdfscd /root/fastdfsgit clone https://github.com/happyfish100/libfastcommon.git --de

2020-07-02 10:41:25 665

原创 最简单的mysql高可用架构MHA搭建

链接: https://pan.baidu.com/s/1-PhqASiLL1nSqMFqcnOrQA 提取码: cg4v。MHA集群的各节点直接需要基于ssh互相通信,先将主从的服务器之间免密ssh互通。MHA安装之前需要先安装这两个查询依赖,不然可能会安装失败。检查管理的MySQL复制集群的连接配置参数是否OK。Manager 节点另需要安装manage。四个节点都需安装node。查看master节点状态。停掉master节点。

2020-06-26 13:30:14 405

原创 超简单的mysql主从同步搭建过程

登录mysql,查看mysql半同步复制的参数,如果为on则代表以及开启半同步复制的方式(如果不采用半同步复制可跳过)登录mysql,查看mysql半同步复制的参数,如果为on则代表以及开启半同步复制的方式(如果不采用半同步复制可跳过)多个slave只需要重复进行上面步骤,需要注意。至此完成对mysql主从的搭建过程。修改master配置文件。修改master配置文件。需要修改保证确定唯一。

2020-06-26 12:41:32 356

原创 1分钟完成linux环境下的mysql安装

链接: https://pan.baidu.com/s/1qmm_nnoW8dJ1d7qmtokrbQ 提取码: 6c6y。有些linux版本可能会自带mariadb,需要先删掉。完成mysql的安装。

2020-06-26 11:58:13 149

原创 SpringCloud实战之路 | 源码篇(三)Hystrix核心源码剖析

方法(对回退方法的调用),在RxJava处理过程中会完成对这两个方法的调用。其父类的构造器中会进行一些资源的初始化工作。方法中根据元数据信息等重写了。方法(对目标方法的调用),该类中有两个重要的方法。

2020-06-07 19:36:02 1119

原创 SpringCloud实战之路 | 应用篇(十)Spring Cloud Alibaba服务哨兵Sentinel

Sentinel是⼀个⾯向云原⽣微服务的流量控制、熔断降级组件,可以用来替代Hystrix解决服务雪崩、服务降级、服务熔断、服务限流等问题。对比Hystrix来说,Sentinel提供了独⽴可部署Dashboard控制台组件,通过在控制台进行配置即可完成对服务的限流、熔断、降级等控制,减少了代码部分的开发下载地址:https://github.com/alibaba/Sentinel/releases阈值类型/单机阈值当调⽤该资源的QPS达到阈值时进⾏限流。

2020-06-07 19:35:08 252

转载 SpringCloud实战之路 | 应用篇(八)分布式链路追踪技术Spring Cloud Sleuth + Zipkin

通过上面的操作可以完成Sleuth + Zipkin基本搭建,由于链路追踪的信息是存储在内存当中的,所以当对服务端进行重启后会导致之前的链路追踪的数据丢失,为此Zipkin提供了两种持久化方式,持久化到mysql或elasticsearch当中;可以追踪服务之间的调用,Sleuth可以记录一个服务请求经过哪些服务、服务处理时间等,根据这些,我们能够理清各微服务间的调用关系及进行问题追踪分析(本质就是通过记录日志的方式来记录踪迹数据的)为分布式链路调用监控系统,可以对链路踪迹的数据进行展示和存储。

2020-06-07 19:34:02 400

原创 SpringCloud实战之路 | 应用篇(七)分布式配置中心Spring Cloud Config+Bus

在分布式环集群境下会存在多个微服务,并且在实际工作中还存在不同的环境(开发dev,测试test,生产prod),当我们需要修改他们的配置信息时(比如application.yml),不可能去一个一个修改,在一定场景下还需要在运行期间进行配置信息的调整,达到动态刷新配置信息的效果,在这种场景下,我们就需要引入。重启服务,更改配置之后发送请求http://localhost:9003/actuator/bus-refresh,各客户端服务配置即可实现自动刷新。每个微服务引入maven依赖。

2020-06-07 19:33:20 169

原创 SpringCloud实战之路 | 应用篇(六)网关组件Gateway及其过滤器Filter

客户端向Spring Cloud Gateway发送请求。如果在Gateway Handler Mapping中找到与请求匹配的路由,则将其发送到Gateway Web Handler。Handler通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑。过滤器之间用虚线分库是因为过滤器可能会在发送代理请求前(pre)或后(post)执行业务逻辑。Spring Cloud Gateway过滤器分为两种GlobalFilter(应用到全部路由)和GateWayFilter(应用到单个路由)

2020-06-07 19:32:32 1100

原创 SpringCloud实战之路 | 应用篇(五)远程调用组件Feign

Feign是Neflix开发的轻量级restful的HTTP服务客户端,是以Java接口注解方式调用HTTP请求。不需要我们拼接url通过调用restTemplate的api,只需要创建一个接口加上写注解直接调用接口即可。封装http嗲用流程,更符合面向接口化编程的习惯,类似Dubbo的服务调用。

2020-06-07 19:31:25 283

原创 SpringCloud实战之路 | 应用篇(三)服务熔断器Hystrix工作流程及高级应用

Hystrix,宣言“defend your app”是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要通过以下几点实现延迟和容错。包裹请求:使用HystrixCommand包裹对依赖的调⽤逻辑。自动投递微服务方法(@HystrixCommand 添加Hystrix控制)跳闸机制:当某服务的错误率超过一定的阈值时,Hystrix可以跳闸,停止请求该服务一段时间。

2020-06-07 17:30:18 279

原创 SpringCloud实战之路 | 应用篇(二)负载均衡Ribbon

负载均衡一般分为与Ribbon是Netflix发布的负载均衡器,Eureka一般配合Ribbon进行使用,Ribbon利用Eureka中读取到的服务信息,在调用服务器提供者提供的服务时,会根据一定算法进行负载。

2020-06-07 17:23:24 133

原创 SpringCloud实战之路 | 应用篇(一)服务注册中心Eureka

在分布式环境的场景下,通常每一个服务都是会部署多个实例,服务的提供者数量往往是会动态变化的,为了保证能够弹性的动态扩容缩容,静态的LB是不适用的,这时候就需要引入注册中心进行对服务的提供者和消费者进行注册发现。主要就是用于对服务提供者与服务消费者的解耦。注册中心用于存储服务提供者的地址等相关信息,服务消费者通过主动查询或者被动通知从注册中心中获取到服务提供者的信息,而不再需要通过硬编码的方式获取提供者的地址信息。

2020-06-07 15:22:12 239

原创 SpringCloud实战之路 | 应用篇(九)Spring Cloud Alibaba注册中心+配置中心Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos就是注册中心+配置中心的组合,简单对比来说官⽹:https://nacos.io 下载地址:https://github.com/alibaba/Nacos。

2020-05-31 18:05:42 481

原创 【从零开始的mysql】MySQL系统架构及执行原理

提供与mysql服务器建立连接的支持,目前几乎支持所有主流的服务编程技术,通过各自api与mysql建立连接。

2020-05-28 21:34:49 421

原创 SpringCloud实战之路 | 应用篇(四)服务熔断器Hystrix Dashboard及 Hystrix Turbine聚合监控

Hystrix Dashboard是针对一个微服务实例的Hystrix数据查询分析,在微服务架构下,一个微服务的实例往往是多个,我们可用通过Hystrix Turbine实现聚合监控。输入监控的微服务地址。

2020-05-01 19:17:39 189

rabbitmq-order.rar

订单rabbit,实现延时队列来进行订单超时支付处理,把超时订单设置为取消状态订单rabbit,实现延时队列来进行订单超时支付处理,把超时订单设置为取消状态订单rabbit,实现延时队列来进行订单超时支付处理,把超时订单设置为取消状态

2020-08-08

spring-framework-5.0.2.RELEASE-中文注释版-终极完美版.rar

spring5源码中文注释已编译可直接导入

2019-11-07

空空如也

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

TA关注的人

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