mercyblitz / java-training-camp

Java Training Camp
Apache License 2.0
168 stars 116 forks source link

第四期 作业四:基于 Spring 6.0+ HTTP Interface 实现通用同区域优先以及 Zone 多活架构 #36

Open mercyblitz opened 7 months ago

mercyblitz commented 7 months ago

要求:

walklown commented 7 months ago

服务端核心代码: 1、整合 ZoneAttachmentPreRegistrationHandler,实现区域信息注册到eureka。(代码链接) 2、提供 HTTP Interface 服务端(代码链接

客户端核心代码: 1、提供 microspere 项目中的 ZonePreferenceLoadBalancerClientConfiguration 的完善版本(代码链接) 2、将1的代码手动注册到LoadBalancerClientFactory(代码链接) 3、通过 RestTemplate 实现 HTTP Interface 客户端(代码链接

image

遗留问题: 一:暂未实现 HTTP Interface 客户端的自动装载。 二:microsphere.availability.zone 与 microsphere.availability.zone.enabled 属性共存,在 yml 配置场景下无法使用。

mercyblitz commented 7 months ago

问题一:RestTemplateDiscoveryClientOptionalArgs.preRegistrationHandler 属性的 Inject 注解去除了,导致注入实现不得不覆盖 RestTemplateDiscoveryClientOptionalArgs 原本的 Bean 注册。

如果新版本移除了 @Inject 注入,可以通过 BeanPostProcessor 来处理 RestTemplateDiscoveryClientOptionalArgs

Kurok1 commented 7 months ago

HTTP Interface的自动装载代码 单元测试代码单元测试