问题一:老师,这个缓存一般用哪个类来存储?Map?Redis?还是别的线程安全的集合?还是其他工具类?
问题二:微服务上做一个缓存,通过定时任务来做。以内容微服务为例,由于内容微服务的实例有多个,那么所有的内容微服务的实例都要去更新?
问题三:本地缓存的微服务的地址,这个地址是ip的形式吗?例如:http://192.168.1.1:8080/
问题四:本地缓存的地址如何和Ribbon/Feign一起使用?我以Ribbon为例描述问题,使用了Ribbon后,内容中心调用微服务的接口的代码:
UserDTO userDTO = this.restTemplate.getForObject("http://user-center/users/{userId}, UserDTO.class, userId);
这行代码的意思是:Ribbon会自动的把user-center名称转换成用户中心在nacos上面的地址,并且去进行负载均衡算法,计算出一个实例给我们请求。
那本节你提到的微服务调用是直接调用的,从本地缓存拿到想要调用的微服务的地址,不是先去请求服务发现组件再去调用的。
那整合了Ribbon后,本地缓存这个操作还需要吗?如果需要,怎么一起协作呢?
面向未来微服务:熟练掌握Spring Cloud Alibaba
了解课程