前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java高频面试题- 每日三连问?【Day39】 — Dubbo篇(三)

Java高频面试题- 每日三连问?【Day39】 — Dubbo篇(三)

作者头像
浩说编程
发布2022-04-12 14:25:47
2170
发布2022-04-12 14:25:47
举报
文章被收录于专栏:Java经验之谈Java经验之谈

问题导读

一、说说Dubbo Monitor 实现原理??

二、Dubbo 和Spring Cloud 有什么关系?

三、Dubbo 和Spring Cloud 有什么哪些区别?

01

说说Dubbo Monitor 实现原理?

正经回答:

Consumer 端在发起调用之前会先走filter 链;

provider 端在接收到请求时也是先走filter 链,然后才进行真正的业务逻辑处理。

默认情况下,在consumer 和provider 的filter链中都会有Monitorfilter。

MonitorFilter 向DubboMonitor 发送数据

DubboMonitor 将数据进行聚合后

(默认聚合1min 中的统计数据)

暂存到ConcurrentMap<Statistics, AtomicReference> statisticsMap,

然后使用一个含有3个线程

(线程名字:DubboMonitorSendTimer)

的线程池每隔1min 钟,调用SimpleMonitorService 遍历发送statisticsMap 中的统计数据,

每发送完毕一个,就重置当前的Statistics 的AtomicReference

SimpleMonitorService 将这些聚合数据塞入BlockingQueue queue 中

(队列大写为100000)

SimpleMonitorService 使用一个后台线程

(线程名为:DubboMonitorAsyncWriteLogThread)

将queue 中的数据写入文件(该线程以死循环的形式来写)

SimpleMonitorService 还会使用一个含有1 个线程

(线程名字:DubboMonitorTimer)

的线程池每隔5min 钟,将文件中的统计数据画成图表

分享朋友圈,记录学习每一天~

02

Dubbo 和Spring Cloud 有什么关系?

正经回答:

Dubbo 是SOA 时代的产物,它的关注点主要在于服务的调用,流量分发、流量监控和熔断。

而Spring Cloud 诞生于微服务架构时代,考虑的是微服务治理的方方面面,另外由于依托了Spring、Spring Boot 的优势之上,

两个框架在开始目标就不一致,Dubbo 定位服务治理、Spring Cloud 是打造一个生态。

03

Dubbo 和Spring Cloud 有什么哪些区别?

正经回答:

Dubbo 底层是使用Netty 这样的NIO 框架,是基于TCP 协议传输的,配合以Hession序列化完成RPC 通信。

Spring Cloud 是基于Http 协议Rest 接口调用远程过程的通信,相对来说Http 请求会有更大的报文,占的带宽也会更多。

但是REST 相比RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,

这在强调快速演化的微服务环境下,显得更为合适,至于注重通信速度还是方便灵活性,具体情况具体考虑。

- End -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩说编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正经回答:
  • 正经回答:
  • 正经回答:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档