Spring实例化Bean的五种方式

一,概述对于我们Java来说,创建对象无非就是new或者通过反射两种方式。Spring中实例化对象一般是通过反射来实现的,但是Spring的强大之处不仅仅在于它为Java开发者提供了极大便利,更在于它的开放式架构,使得用户可以拥有最大扩展Spring的能力。我们大致可以总结出以下五种实例化bean的方式:实现InstantiationAwareBeanPostProcessor接口实现FactoryBean接口通过Supplier接口工厂方法factory-method通过反射二,实现
分类: 其他 发布时间: 01-26 23:54 阅读次数: 0

Spring Cloud 五:Eureka自我保护,健康检查,事件监听使用

一,Eureka元数据1,从EurekaServer获取启动EurekaServier,启动EurekaClient注册到EurekaServer访问http://euk-server1:7001/eureka/apps/EurekaClient 获取到EurekaClient实例信息:<application><name>EUREKACLIENT</name><instance><instanceId>192.168.1.39:Eu
分类: 其他 发布时间: 01-26 23:54 阅读次数: 0

Spring属性填充populateBean源码分析

一,属性填充分类Spring实例化前面我们已经分析过了,实例化之后,紧接着就是对属性进行填充了,属性填充主要是对自动注入(autowired)的处理,我们大致可以把他分为三类:autowireByName:通过名字对属性填充。autowireByType:通过类型对属性填充。@Autowired:通过bean的后置处理器AutowiredAnnotationBeanPostProcessor对@Autowired注解属性填充我们来看一下具体源码: protected void populat
分类: 其他 发布时间: 01-26 23:54 阅读次数: 0

Spring Cloud 六:Ribbon负载均衡介绍与使用

一,负载均衡当系统面临大量的用户访问,负载过高的时候,通常会增加服务器数量来进行横向扩展(集群),多个服务器的负载需要均衡,以免出现服务器负载不均衡,部分服务器负载较大,部分服务器负载较小的情况。通过负载均衡,使得集群中服务器的负载保持在稳定高效的状态,从而提高整个系统的处理能力。负载均衡可以分为硬件负载均衡和软件负载均衡:硬件负载均衡:直接在服务器和外部网络间安装负载均衡硬件设备,这种设备我们通常称之为负载均衡器。由专门的设备完成,独立于操作系统,整体性能得到大量提高,加上更多的负载均衡策略,智能
分类: 其他 发布时间: 01-26 23:53 阅读次数: 0

Spring initializeBean源码分析

一,initializeBean方法概述Spring中的initializeBean()方法是doCreateBean方法三部曲的最后一步,完成initializeBean()则整个bean的创建过程才算完成,我们来看一下bean的创建过程doCreateBean()方法中三部曲:实例化(createBeanInstance),填充属性(populateBean),初始化(initializeBean)。public abstract class AbstractAutowireCapableBeanF
分类: 其他 发布时间: 01-26 23:53 阅读次数: 0

Spring Cloud 七:Feign声明式服务调用介绍与使用

一,理解Feign1,什么是FeignNetflix FeignFeign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。Feign实际上是对普通HTTP客户端的一层封装,其目的是降低集成成本、提升可靠性。Feign支持三种HTTP客户端,包括JDK自带的HttpURLConnection、Apache HttpClient和Square OkHttp,默认使用Apache HttpClient。Spring Cloud Feign
分类: 其他 发布时间: 01-26 23:53 阅读次数: 0

Spring Cloud 八:Hystrix熔断降级介绍与使用

一,概念1,雪崩效应​ 每个服务 发出一个HTTP请求都会 在 服务中 开启一个新线程。而下游服务挂了或者网络不可达,通常线程会阻塞住,直到Timeout。如果并发量多一点,这些阻塞的线程就会占用大量的资源,很有可能把自己本身这个微服务所在的机器资源耗尽,导致自己也挂掉。​ 如果服务提供者响应非常缓慢,那么服务消费者调用此提供者就会一直等待,直到提供者响应或超时。在高并发场景下,此种情况,如果不做任何处理,就会导致服务消费者的资源耗竭甚至整个系统的崩溃。一层一层的崩溃,导致所有的系统崩溃。雪崩:由基
分类: 其他 发布时间: 01-26 23:52 阅读次数: 0

Spring Cloud 九:Zuul网关介绍与使用

一,网关前面我们把服务治理,服务注册发现,服务调用,熔断,已经分析完了,微服务基本模块已经有了,也可以做微服务了。但完成一个复杂的业务,可能需要多个微服务合作来完成,比如下单,需要用户服务,支付服务,地图服务,订单服务。网关一般是我们对外服务的窗口,进行服务内外隔离。一般微服务都在内网,不做安全验证。网关是介于客户端(外部调用方比如app,h5)和微服务的中间层。什么是Zuul?Zuul作为微服务系统的网关组件,是从设备和网站到Netflix流应用程序后端的所有请求的前门。zuul作为整个应用的流量入
分类: 其他 发布时间: 01-26 23:52 阅读次数: 0

Spring Cloud 十:配置中心介绍与使用

一,配置中心为什么需要配置中心单体应用,配置写在配置文件中,没有什么大问题。如果要切换环境 可以切换不同的profile(2种方式),但在微服务中,微服务比较多。成百上千,配置很多,需要集中管理,需要管理不同环境的配置,需要动态调整配置参数,更改配置不停服。配置中心介绍分布式配置中心包括3个部分:存放配置的地方:git,svn ,数据库,本地文件 等。config server,从 1 读取配置。config client。是 config server 的客户端 消费配置。注意:配置
分类: 其他 发布时间: 01-26 23:52 阅读次数: 0

Spring Cloud 十一:Eureka自我保护源码分析

Eureka自我保护默认情况下,当EurekaServer在一定时间内(默认90秒)没有接收到某个客户端实例的心跳,EurekaServer将会注销该实例。但是当网络分区故障发生时,客户端与EurekaServer之间无法正常通信,此时不应该注销客户端。Eureka通过“自我保护机制”来解决这个问题:当EurekaServer短时间内丢失过多客户端时,这个节点就会进入自我保护模式。在自我保护模式下,EurekaServer不会剔除任何客户端。当网络故障恢复后,该节点会自动退出自我保护模式自我保护机制的
分类: 其他 发布时间: 01-26 23:52 阅读次数: 0

Spring Cloud 十二:Eureka生产环境优化

文章目录一,自我保护优化自我保护常用配置自我保护场景优化二,三级缓存优化什么是三级缓存三级缓存工作流程三级缓存的优点生产环境中优化三,定时器Timer优化Timer缺陷:建议使用ScheduledExecutorService一,自我保护优化自我保护常用配置eureka: server: # 自我保护开关,默认开启 enable-self-preservation: true # 自我保护阈值,默认0.85 renewal-percent-threshold: 0.
分类: 其他 发布时间: 01-26 23:51 阅读次数: 0

动态代理:JDK实现方式源码分析

JDK动态代理**所谓动态代理是指:在程序运行期间根据需要动态创建代理类及其实例来完成具体的功能。**动态代理主要分为JDK动态代理和cglib动态代理两大类,本文主要对JDK动态代理进行探讨。使用步骤新建接口新建一个接口实现类实现代理类回调接口InvocationHandler通过Proxy.newProxyInstance()方法创建代理类使用案例1,新建HelloWord接口public interface HelloWord { void sayHello();
分类: 其他 发布时间: 01-26 23:51 阅读次数: 0

Spring Cloud 2020.0.0发布 再见了Netflix

Spring Cloud 2020.0.0发布北京时间2020-12-22深夜,Spring Cloud 2020.0.0版本正式发布。2020.0.0是第一个使用新版本方案的Spring Cloud发行版本。我们知道之前Spring Cloud版本命名都是使用伦敦地铁名来命名。Spring Cloud 与 Spring Boot版本对应关系Release Train发布时间Spring Boot版本SC Commons版本2020.0.x2020-122.4.x3.0
分类: 其他 发布时间: 01-26 23:51 阅读次数: 0

吃透Redis系列(一):Linux下Redis安装

Linux下包管理工具认识一般来说著名的linux系统基本上分两大类:RedHat系列:Redhat、Centos、Fedora等Debian系列:Debian、Ubuntu等RedHat 系列 -包管理工具 yumDebian系列-包管理工具 apt-get安装wgetwget是一个下载文件的工具,我们用来从网络上下载东西:sudo apt-get install wget下载redis安装包// 新建存放下载文件的目录mkdir soft// 切换到此目录下面cd sof
分类: 其他 发布时间: 01-26 23:51 阅读次数: 0

Linux的IO模型进化详解

基本概念IO在计算机世界中地位举足轻重,IO效率一直是码农们孜孜不倦最求的目标。本文我们一起来研究下Linux的IO的工作方式是如何一步步进化到今天的。我们说的IO主要是指应用程序在工作过程中用到的IO类型,包括两种IO:文件IO和网络IO,本文主要研究的是网络IO。应用进程和内核之间的数据交互方式一直在演进,下面我们对各种形态的交互方式进行介绍。在这之前,我们先明确几个概念:内核空间和用户空间、同步和异步、阻塞和非阻塞。内核空间操作系统单独拥有的内存空间为内核空间,这块内存空间独立于其他的应用内存空
分类: 其他 发布时间: 01-26 23:50 阅读次数: 0

吃透Redis系列(二):Redis六大数据类型详细用法

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。Redis是单进程,单线程,单实例的,所以,所有操作都是原子性的。Redis keysRedis key值是二进制安全的,这意味着可以用任何二进制序列作为key值,从形如”foo”的简单字符串到一个JPEG文件的内容都可以。空字符串也是有效key值。Redis keys命令:命令描述del key该命令用于在 key 存在时删除
分类: 其他 发布时间: 01-26 23:50 阅读次数: 0

吃透Redis系列(三):Redis管道,发布/订阅,事物,过期时间 详细介绍

Redis 管道请求/响应协议和RTTRedis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。因此,例如下面是4个命令序列执行情况:Client: INCR XServer: 1Client: INCR XServer: 2Client: INCR XServer: 3Client: INCR
分类: 其他 发布时间: 01-26 23:50 阅读次数: 0

吃透Redis系列(四):布隆(bloom)过滤器详细介绍

文章目录布隆过滤器应用场景布隆过滤器简介1,添加数据2,判断数据是否存在?3,布隆过滤器优缺点Redis实现布隆过滤器Redis安装布隆过滤器模块1,访问github地址,下载模块源码2,执行make编译动态库3,启动redis加载该动态库Redis使用布隆过滤器1,常用命令2,布隆过滤器准确率3,在项目中使用本篇博客我们主要介绍如何用Redis实现布隆过滤器,但是在介绍布隆过滤器之前,我们首先介绍一下,为啥要使用布隆过滤器。布隆过滤器应用场景解决缓存穿透的问题一般情况下,先查询缓存是否有该条数
分类: 其他 发布时间: 01-26 23:50 阅读次数: 0

吃透Redis系列(五):RDB和AOF持久化详细介绍

文章目录Linux中fork()系统调用和内核的copy on write机制RDB简介RDB促发方式自动触发**1,save:**2,stop-writes-on-bgsave-error :3,rdbcompression:4,rdbchecksum:5,dbfilename6,dir手动触发savebgsave恢复数据RDB优缺点优点:缺点:RDB 自动保存的原理由于 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接
分类: 其他 发布时间: 01-26 23:49 阅读次数: 0

吃透Redis系列(六):主从复制详细介绍

一,什么是主从复制主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。二,主从复制解决的问题数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗
分类: 其他 发布时间: 01-26 23:49 阅读次数: 0