1 .Eureka详解
-
Eureka是基于REST(Representational State Transfer)服务,
-
主要以AWS云服务为支撑,
-
提供服务发现并实现负载均衡和故障转移。
-
我们称此服务为Eureka服务。
-
Eureka提供了Java客户端组件,
-
Eureka Client,方便与服务端的交互。
-
客户端内置了基于round-robin实现的简单负载均衡。
-
在Netflix,为Eureka提供更为复杂的负载均衡方案进行封装,
-
以实现高可用,它包括基于流量、
-
资源利用率以及请求返回状态的加权负载均衡。
-
Eureka有三个核心
- 1、服务注册中心
Eureka的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的eureka-demo
- 2、服务提供者
提供服务的应用,可以是SpringBoot应用,也可以是其它任意技术实现,只要对外提供的是Rest风格服务即可。本例中就是我们实现的user-service-demot
- 3、服务消费者
消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。本例中就是我们实现的consumer-demo
-
Eureka Server即服务的注册中心也可以是一个集群,形成高可用的Eureka中心
-
当服务提供者注册到Eureka Server集群中的某个节点时,该节点会把服务的信息同步给集群中的每个节点l从而实现数据同步
2.负载均衡
- Ribbon:有助于控制HTTP和TCP客户端的行为,为Ribbon配置服务提供者地址列表后,Ribbon就可以基于某种算法,自动帮助消费者去请求。
- 负载均衡在系统架构中是一个非常重要,
- 并且是不得不去实施的内容。
- 因为负载均衡是对系统的高可用、
- 网络压力的缓解和处理能力扩容的重要手段之一。
3.面试题
1. 谈谈对Spring框架的理解
-
Spring是一个封层的一站式开发的轻量级开源框架,通过配置文件中的<bean>元素配置用于创建实例对象的类名和实例对象的属性。
-
Spring提供支持IOC 和 AOP 技术,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的程序过度耦合。,通过AOP也可以对某个方法进行操作,例如:权限验证
-
Spring对Junit4支持,方便程序测试。
-
声明式事务支持,只要在配置文件中配置后,不用程序员在代码编写
-
降低了JavaEE的API使用难度,Spring框架对对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装。
-
同时Spring方便集成各种优秀框架,如Hibernate,struts2。
2.Spring控制反转(IOC)和依赖注入(DI)的区别
-
IOC是控制反转,一般分为两种类型,依赖注入(Dependency Injection,简称<u>DI</u>)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
-
IOC控制反转,指将对象的创建权,反转到Spring容器, DI依赖注入,指Spring创建对象的过程中,将对象依赖属性通过配置进行注入Bean。
网友评论