# 第三阶段,模块三作业 **Repository Path**: L-ios/stage03_task03_exercise ## Basic Information - **Project Name**: 第三阶段,模块三作业 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 编程题一:将Web请求IP透传到Dubbo服务中 通过扩展Dubbo的Filter(TransportIPFilter),完成Web请求的真实IP透传到Dubbo服务当中,并在Dubbo服务中打印请求的IP 题目要求: 1. 构建一个Web项目(A),提供一个HTTP接口;构建2个Dubbo服务(B和C),各提供一个Dubbo接口,被Web项目调用(如下图所示) 2. 从Web项目获取请求的IP,通过TransportIPFilter完成把IP设置到RpcContext中 3. 在两个Dubbo项目(B和C)中,从RpcContext获取IP并打印到控制台,B和C都应该正确打印IP 4. 注意:不可在业务方法调用Dubbo接口前采用硬编码的方式设置IP ![pic](./hmwk-e1.png) 编程题二:简易版Dubbo方法级性能监控 在真实业务场景中,经常需要对各个业务接口的响应性能进行监控(常用指标为:TP90、TP99) 下面通过扩展Dubbo的Filter(TPMonitorFilter),完成简易版本 Dubbo 接口方法级性能监控,记录下TP90、TP99请求的耗时情况 题目要求: 1. 编写一个Dubbo服务,提供3个方法(methodA、methodB、methodC),每方法都实现了随机休眠0-100ms 2. 编写一个消费端程序,不断调用Dubbo服务的3个方法(建议利用线程池进行并行调用,确保在1分钟内可以被调用2000次以上) 3. 利用TPMonitorFilter在消费端记录每个方法的请求耗时时间(异步调用不进行记录) 4. 每隔5s打印一次最近1分钟内每个方法的TP90、TP99的耗时情况 ------------------------------------------------------------ 作业资料说明: 1、提供资料:2个代码工程、验证及讲解视频。(仓库中只有本次作业内容) 2、讲解内容包含:题目分析、实现思路、代码讲解。 3、效果视频验证: 3.1 作业1实现A和B打印请求的IP地址。 3.2 作业2 每隔5秒打印三个方法的TP90和TP99 ---------------------------------------------------------------