Welcome to heavy rain's website

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along wound destroy civilization

spring

spring

SpringBean的生命周期 spirng根据类实例化对象后,对加了@Autowired、@Resource注解的属性进行赋值(属性填充)、进行对象初始化(@PostConstruct注解)、判断是否需要AOP(配置控制)需要的话AOP生成代理对象、代理对象注册成bean spring 单例bean,bean按照type和name获取,spring有类似于map的结构存储bean,key为......

Zookeeper案例-分布式全局唯一ID生成

Zookeeper实现分布式全局唯一ID生成

概述在单体架构中,我们通常使用数据库字段自带的自增auto_increment属性来自动为每一条记录生成唯一的ID,但是当我们采用分布式系统后,特别是分库分表后,就无法再依靠数据库的auto_increment属性来唯一标识一条记录,这就需要采用其他方法来生成全局唯一ID。 在zookeeper中,它提供了一种以创建临时有序节点来获取到全局唯一ID,它能保证在整个分布式系统中的全局唯一性。 ......

Zookeeper案例-分布式锁

Zookeeper案例-分布式锁

为什么需要分布式锁为了保证一个方法或属性在高并发情况下的同一时间只能被同一个线程执行,在传统单体应用单机部署的情况下,可以使用并发处理相关的功能进行互斥控制。但是,随着业务发展的需要,原单体单机部署的系统被演化成分布式集群系统后,由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的应用并不能提供分布式锁的能力。为了解决这个问题就需要一种跨机器的......

ftp连接池

ftp连接池

背景​ 老系统和其他系统对接采用ftp交互(内外网隔离,通过光闸内外网摆渡交互文件.ak),每次对ftp的操作都是新创建连接消耗较大,于是将ftp池化降低ftp创建的消耗,完成系统优化。 介绍使用依赖: 1234567891011121314151617181920212223242526272829303132333435363738394041<dependency> ......

Zookeeper简介

Zookeeper

概述Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。 工作机制Zookeeper从设计模式角度来理解:是一个基 于观察者模式设计的分布式服务管理框架,它负 责 存储和管理大家都关心的数据,然 后接受观察者的 注 册,一旦这些数据的状态发生变化,Zookeeper 就 将负责通知已经在Zookeeper上注册的那些观察 者做出相应的反应。 特点 数据......

Mysql执行计划

Mysql执行计划

Mysql 执行计划当客户端发送给mysql 服务器一条查询语句后,经过sql的优化器,会产生一个执行计划。 执行计划使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MYSQL 是如何处理你的 sql 语句的。分析你的查询语句或是表结构的性能瓶颈。 语法: Explain + sql 执行计划的作用分析sql语句中 表的读取顺序 数据读取操作的操作类型 哪些索引......

java线程池

java线程池

Java线程池线程池的概念线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务。 使用线程池的原因 降低资源消耗。通过重复利⽤已创建的线程降低线程创建和销毁造成的消耗。 提⾼......

Hystrix服务降级

Hystrix负载均衡服务调用

Hystrix服务降级 hystrix中的重要概念:1,服务降级比如当某个服务繁忙,不能让客户端的请求一直等待,应该立刻返回给客户端一个备选方案 2,服务熔断当某个服务出现问题,卡死了服务不可用了,不能让用户一直等待,需要关闭所有对此服务的访问(保险丝熔断电路跳闸)然后调用服务降级 3,服务限流限流,比如秒杀场景,不能访问用户瞬间都访问服务器,限制一次只可以有多少请求 使用hystrix......

OpenFeign服务调用

OpenFeign服务调用

简介 项目demo地址:https://github.com/raineddown/spring-cloud-demo 涉及服务:cloud-consumer-feign-order80、cloud-provider-payment8001、cloud-eureka-server7001 Feign与OpenFeign区别 使用流程1.主启动类中 2.fegin需要调用的其他的服务的接口......

Ribbon负载均衡服务调用

Ribbon负载均衡服务调用

简介 Ribbon源码地址: https://github.com/Netflix/ribbon 一句话介绍:负载均衡 + RestTemplate调用 demo地址:项目地址:https://github.com/raineddown/spring-cloud-demo 涉及服务: cloud-consumer-order80 使用流程注意: Eureka最新的包(client)中包含R......