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、其他调优

部署调优,业务调优等。

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


目录
相关文章
|
6月前
|
存储 安全 Java
Java 集合(List、Set、Map 等)相关问答归纳再整理
HashMap 中使用键对象来计算 hashcode 值 HashSet 使用成员对象来计算 hashcode 值,对于两个对象来说hashcode 可能相同,所以 equals() 方法用来判断对象的相等性,如果两个对象不同的话,那么返回 false。 HashMap 比较快,因为是使用唯一的键来获取对象,HashSet 较 HashMap 来说比较慢。 4.1.3 HashMap 与 TreeMap
35 2
|
移动开发 小程序 Java
良心分享:基于Java+SpringBoot+Netty+WebSocket+Uniapp轻松搭建在线互动问答程序
本文将详细介绍如何基于你自己的开源项目搭建一个在线互动问答程序,包括微信小程序和H5网页版。 该项目服务端主要使用了Java + Spring Boot + Netty + WebSocket等技术栈,聊天客户端使用的是UniApp来轻松搭建微信小程序和H5网页端。
86 1
|
存储 SQL 缓存
JAVA问答17
JAVA问答17
89 0
|
存储 SQL 缓存
JAVA问答16
JAVA问答16
124 0
|
存储 搜索推荐 Java
JAVA问答15
JAVA问答15
101 0
|
缓存 自然语言处理 监控
JAVA问答14
JAVA问答14
99 0
|
存储 固态存储 Java
JAVA问答13
JAVA问答13
128 0
|
存储 缓存 运维
JAVA问答12
JAVA问答12
130 0
|
存储 自然语言处理 运维
JAVA问答11
JAVA问答11
103 0
|
设计模式 缓存 Dubbo
JAVA问答9
JAVA问答9
126 0