Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

2020年银盛支付Java中级笔试面试题 PDF 下载


分享到:
时间:2020-08-23 09:44来源:http://www.java1234.com 作者:小锋  侵权举报
2020年银盛支付Java中级笔试面试题 PDF 下载
失效链接处理
2020年银盛支付Java中级笔试面试题 PDF 下载


本站整理下载:
 
相关截图:
 
主要内容:

1. 说说springcloud的⼯作原理
springcloud由以下⼏个核⼼组件构成:
Eureka:各个服务启动时,Eureka Client都会将服务注册到Eureka Server,并且Eureka Client还可以反过来从Eureka Server拉
取注册表,从⽽知道其他服务在哪⾥
Ribbon:服务间发起请求的时候,基于Ribbon做负载均衡,从⼀个服务的多台机器中选择⼀台
Feign:基于Feign的动态代理机制,根据注解和选择的机器,拼接请求URL地址,发起请求
Hystrix:发起请求是通过Hystrix的线程池来⾛的,不同的服务⾛不同的线程池,实现了不同服务调⽤的隔离,避免了服务雪崩
的问题
Zuul:如果前端、移动端要调⽤后端系统,统⼀从Zuul⽹关进⼊,由Zuul⽹关转发请求给对应的服务
2. ⽤什么组件发请求
在Spring Cloud中使⽤Feign, 我们可以做到使⽤HTTP请求远程服务时能与调⽤本地⽅法⼀样的编码体验,开发者完全感知不到
这是远程⽅法,更感知不到这是个HTTP请求。
3. 注册中⼼⼼跳是⼏秒
1、Eureka的客户端默认每隔30s会向eureka服务端更新实例,注册中⼼也会定时进⾏检查,发现某个实例默认90s内没有再收到
⼼跳,会注销此实例,这些时间间隔是可配置的。
2、不过注册中⼼还有⼀个保护模式(服务端在短时间内丢失过多客户端的时候,就会进⼊保护模式),在这个保护模式下,他
会认为是⽹络问题,不会注销任何过期的实例。
4. 消费者是如何发现服务提供者的
a. 当⼀个服务实例启动,会将它的ip地址等信息注册到eureka;
b. 当a服务调⽤b服务,a服务会通过Ribbon检查本地是否有b服务实例信息的缓存;
c. Ribbon会定期从eureka刷新本地缓存。
5. 多个消费者调⽤同⼀接⼝,eruka默认的分配⽅式是什么
a. RoundRobinRule:轮询策略,Ribbon以轮询的⽅式选择服务器,这个是默认值。所以示例中所启动的两个服务会被循环访问;
b. RandomRule:随机选择,也就是说Ribbon会随机从服务器列表中选择⼀个进⾏访问;
c. BestAvailableRule:最⼤可⽤策略,即先过滤出故障服务器后,选择⼀个当前并发请求数最⼩的;
d. WeightedResponseTimeRule:带有加权的轮询策略,对各个服务器响应时间进⾏加权处理,然后在采⽤轮询的⽅式来获取相
应的服务器;
e. AvailabilityFilteringRule:可⽤过滤策略,先过滤出故障的或并发请求⼤于阈值⼀部分服务实例,然后再以线性轮询的⽅式从
过滤后的实例清单中选出⼀个;
f. ZoneAvoidanceRule:区域感知策略,先使⽤主过滤条件(区域负载器,选择最优区域)对所有实例过滤并返回过滤后的实例
清单,依次使⽤次过滤条件列表中的过滤条件对主过滤条件的结果进⾏过滤,判断最⼩过滤数(默认1)和最⼩过滤百分⽐(默
认0),最后对满⾜条件的服务器则使⽤RoundRobinRule(轮询⽅式)选择⼀个服务器实例。
6. 说说常⽤的springboot注解,及其实现?
a. @Bean:注册Bean
i. 默认使⽤⽅法名作为id,可以在后⾯定义id如@Bean("xx");
ii. 默认为单例。
iii. 可以指定init⽅法和destroy⽅法:
1. 对象创建和赋值完成,调⽤初始化⽅法;
2. 单实例bean在容器销毁的时候执⾏destroy⽅法;
3. 多实例bean,容器关闭是不会调⽤destroy⽅法。
b. @Scope:Bean作⽤域
i. 默认为singleton;
ii. 类型:
1. singleton单实例(默认值):ioc容器启动时会调⽤⽅法创建对象放到ioc容器中,以后每次获取就是直接从容器中拿
实例;
2. prototype多实例:ioc容器启动不会创建对象,每次获取时才会调⽤⽅法创建实例;
3. request同⼀次请求创建⼀个实例;
4. session同⼀个session创建⼀个实例。
c. @Value:给变量赋值
i. 代码:

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐