-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Milestone
Description
调用方需要修改的地方有:
- 添加AccountSecret的配置让TEval鉴别合法性
- 调用方启动时向TEval注册,TEval返回有效的Proxy地址,此操作会定时轮询
- 在调用服务时改写原Host到TEval的Proxy的Host,并加上必要的认证Header信息
最基础的做法是撰写SDK,在调用请求前先调用SDK的处理逻辑,返回Proxy的地址及要的Header。
但这样会有比较大的侵入,考虑使用以下方法改进:
- 提供统一的HTTP操作SDK
问题在于请求未必都是简单的application/json,会有很多类型,封装SDK会比较繁琐,且需要使用者学习独立于Apache HttpClient或OkHttp的新的一套语法,不合适
- 判断调用者使用的HTTP Client框架,使用Javassist动态修改写各框架的代码,注入上述操作。
问题是Javassist无法动态加载生效,需要重启服务,不合适
- 为各主流HTTP Client框架编写独立的jar包,此jar包含同包同名的修改后的代码,注入上述操作。
无法保证加载优先级,不一定加载到修改后的class
- 使用Maven自定义插件,结合Javassist,在打包时动态生成各HTTP Client框架的修改代码并将生成的class文件放在项目classes中一并打包确定优先加载
此方法比较可行,试验中
Metadata
Metadata
Assignees
Labels
No labels