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、其他调优
部署调优,业务调优等。
上面的提及一部分,面试者就基本对你之前的实践或者运维经验有所评估了。