Spring Cloud如何实现分布式系统的功能?

摘要:Spring 两大原则: 高低原则:高内聚,低耦合 开闭原则:对扩展开放,对修改封闭 两大核心:IOC、AOP 一、IOC和AOP的介绍 IOC:(Inverse of Control)控制反转,也叫DI依赖注入,指的是将对象的创建权交给
Spring 两大原则: 高低原则:高内聚,低耦合 开闭原则:对扩展开放,对修改封闭 两大核心:IOC、AOP 一、IOC和AOP的介绍 IOC:(Inverse of Control)控制反转,也叫DI依赖注入,指的是将对象的创建权交给 Spring 容器去创建,利用了工厂模式将对象交给容器管理,只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。不需要我们手动new去创建对象,大大降低了代码间的耦合度,使资源更加容易管理。 AOP:(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。 AOP可以分离业务代码和关注点代码(重复代码),在执行业务代码时,动态的注入关注点代码。切面就是关注点代码形成的类。Spring AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口 AOP是基于动态代理实现的, 分为两种代理,jdk动态代理(基于接口)和cglib代理(基于类的),如果目标对象实现了接口,就用jdk动态代理,如果未实现接口就用cglib动态代理. 1.基于jdk的动态代理 程序运行的过程中,通过jdk提供代理技术动态的为某个类产生动态代理对象的过程。 开发代理对象的原则: 1)代理对象,不需要实现接口,但是目标对象要实现接口,否则不能用JDK动态代理。 2)代理对象的生成,是利用JDK的API,动态的在内存中构建代理对象。 2.基于CGLib的动态代理 开发代理对象的原则: 1.代理对象无需和原始类对象实现相同的接口 2.代理对象和原始类对象要存在父子类关系 概念定义: Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。 Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。 Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。 Advice(增强):Advice 定义了在Pointcut里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。 Target(目标对象):织入Advice的目标对象.。 Weaving(织入):将Aspect和其他对象连接起来, 并创建Adviced object 的过程 Aop的5种通知类型 1)前置通知:before advice 2)返回通知:after return advice 3)后置通知:after(final) advice 4)异常通知:after throwing advice 5)环绕通知: around advice 前置通知 在方法执行之前,执行通知。 后置通知 在方法执行之后,无论是正常退出还是发生了异常,执行通知。 返回通知 在方法执行之后,只有在方法成功完成时,才能执行通知。 异常通知 在方法执行之后,只有在方法退出抛出异常时,才能执行通知。 环绕通知 在方法调用之前和之后,执行通知 Spring Cloud Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。 Spring Cloud 的核心组件 1. Eureka(注册中心) Eureka 是 Spring Cloud 微服务架构中的注册中心,专门负责服务的注册与发现,里面有一个注册表,保存了各个服务器的 机器和端口。 Eureka服务端:也称服务注册中心,同其他服务注册中心一样,支持高可用配置。如果Eureka以集群模式部署,当集群中有分片出现故障时,那么Eureka就转入自我保护模式。它允许在分片故障期间继续提供服务的发现和注册,当故障分片恢复运行时,集群中其他分片会把它们的状态再次同步回来 Eureka客户端:主要处理服务的注册与发现。
阅读全文