JAVA问答10

简介: JAVA问答10

26、Dubbo 支持服务降级吗?

以通过 dubbo:reference 中设置 mock="return null"。mock 的值也可以修改

为 true,然后再跟接口同一个路径下实现一个 Mock 类,命名规则是 “接口名

称+Mock” 后缀。然后在 Mock 类里实现自己的降级逻辑

27、Dubbo 如何优雅停机?

Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用

kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才

会执行。

28、Dubbo 和 Dubbox 之间的区别?

Dubbox 是继 Dubbo 停止维护后,当当网基于 Dubbo 做的一个扩展项目,如

加了服务可 Restful 调用,更新了开源组件等。第 80 页 共 485 页

29、Dubbo 和 Spring Cloud 的区别?

根据微服务架构在各方面的要素,看看 Spring Cloud 和 Dubbo 都提供了哪些支

持。

Dubbo

Spring Cloud

服务注册中心 Zookeep

er

Spring Cloud Netflix Eureka

服务调用方式 RPC

REST API

服务网关

Spring Cloud Netflix Zuul

断路器

不完善

Spring Cloud Netflix Hystrix

分布式配置

Spring Cloud Config

服务跟踪

Spring Cloud Sleuth

消息总线

Spring Cloud Bus

数据流

Spring Cloud Stream

批量任务

Spring Cloud Task

……

……

……

使用 Dubbo 构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但

是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,

但是如果你是一名高手,那这些都不是问题;而 Spring Cloud 就像品牌机,在

Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,

但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。30、你还了解别的分布式框架吗?

别的还有 spring 的 spring cloud,facebook 的 thrift,twitter 的 finagle 等

Elasticsearch 面试题

1、elasticsearch 了解多少,说说你们公司 es 的集群架构,索

引数据大小,分片有多少,以及一些调优手段 。

面试官:想了解应聘者之前公司接触的 ES 使用场景、规模,有没有做过比较大

规模的索引设计、规划、调优。

解答

如实结合自己的实践场景回答即可。

比如:ES 集群架构 13 个节点,索引根据通道不同共 20+索引,根据日期,每日

递增 20+,索引:10 分片,每日递增 1 亿+数据,

每个通道每天索引大小控制:150GB 之内。

仅索引层面调优手段:

1.1、设计阶段调优

1、根据业务增量需求,采取基于日期模板创建索引,通过 roll over API 滚动索

引;

2、使用别名进行索引管理;

3、每天凌晨定时对索引做 force_merge 操作,以释放空间;

第 81 页 共 485 页4、采取冷热分离机制,热数据存储到 SSD,提高检索效率;冷数据定期进行 shrink

操作,以缩减存储;

5、采取 curator 进行索引的生命周期管理;

6、仅针对需要分词的字段,合理的设置分词器;

7、Mapping 阶段充分结合各个字段的属性,是否需要检索、是否需要存储等。……..

1.2、写入调优

1、写入前副本数设置为 0;

2、写入前关闭 refresh_interval 设置为-1,禁用刷新机制;

3、写入过程中:采取 bulk 批量写入;

4、写入后恢复副本数和刷新间隔;

5、尽量使用自动生成的 id。

1.3、查询调优

1、禁用 wildcard;

2、禁用批量 terms(成百上千的场景);

3、充分利用倒排索引机制,能 keyword 类型尽量 keyword;

4、数据量大时候,可以先基于时间敲定索引再检索;

第 82 页 共 485 页5、设置合理的路由机制。

1.4、其他调优

部署调优,业务调优等。

上面的提及一部分,面试者就基本对你之前的实践或者运维经验有所评估了。


目录
相关文章
|
4月前
|
小程序 Java 大数据
初识Java篇
初识Java篇
44 0
|
1月前
|
Java
java
e是java运行时的环境,包含jvm和运行时所需要的类库 jdk是java开的程序包,包含jre和开发人员使用的工具 jvm就是我们常说的java虚拟机,他是整个java实现跨平台的最核心 的部分,所有的java程序会首先被编译为.class的类文件,这种类文 件可以在虚拟机上执行。也就是说class并不直接与机器的操作系统 相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释 给本地系统执行。 只有jvm还不能成class的执行,因为再解释class的时候jvm需要调用 解释所需要的类库lib,而jre包含lib类库。jvm屏蔽了与具体操作系 统平台相关的信息,使得java程序
11 1
|
8月前
|
Java 程序员 编译器
初识Java 1
初识Java
31 0
|
11月前
|
安全 Java 程序员
Java的特点有哪些?
Java的特点有哪些?
69 0
|
11月前
|
Oracle Java 关系型数据库
Java是什么?
Java是什么?
78 0
|
SQL XML Java
JAVA问答2
JAVA问答2
113 0
AbstractDemo.java
AbstractDemo.java
53 0
|
存储 算法 Java
一带而过-Java与生活
一带而过-Java与生活
127 0
一带而过-Java与生活
|
Cloud Native Oracle Java
一篇文章和你从 Java1 聊到 Java18
002-2022 年的 20 年里 Java 始终保持在前三的水平,其中在 2005 年、2013-2015 年间、2021 年等时间还多次登顶过第一,这么一个已经发布了 27 年的语言在这些年是怎么始终保持在编程语言前三的呢?这么多年 Java 各个版本间又有什么变化?Java 语言在未来还会继续保持成为语言的常青树吗?这篇文章就来和大家回顾一下 Java 的历史。
235 0
一篇文章和你从 Java1 聊到 Java18
|
Java 程序员 C语言
Java是什么
ava到底是啥?它能干什么? 自己也看过不少的课程和书,大部分都是从Java的发展史开始讲,总之就是那些什么Java历史悠久,Java很优秀,Java越来越牛,用的人越来越多,什么编程语言排行榜常年第一,大致都是这些,然后再扯些其他的,接着就上起了Hello World!就这样,你Java生涯的第一个代码开始了,意思是“你好,世界!” 我还是想不通,Java是啥,能干嘛,能不能先告诉我? 可能你在刚开始学习Java的时候也有这样的疑惑,那么你会怎么做呢?你不知道啊,怎么办?问别人?不,你应该会想到百度,不是说 百度一下,你就知道吗? 好嘞,我们上百度看看去: 640?wx_fmt=
152 0