我正在阅读有关使用Spring Cloud AWS进行缓存的文档
http://cloud.spring.io/spring-cloud-static/spring-cloud-aws/2.0.0.RELEASE/multi/multi__caching.html
在上一节中提到,它会自动从其逻辑名称获取缓存集群的物理名称。它是怎么做到的?
我的意思是说我可能有多个具有相同逻辑名称但物理名称不同的堆栈。
答案 0 :(得分:1)
我自己仔细查看了源代码之后,找到了答案。
Spring Cloud使用类SELECT
id,
key['a'] AS A,
key['b'] AS B
FROM (
SELECT id, map_agg(key, value) key
FROM table_a
GROUP BY id
) temp
,该类使用云形成的Amazon Client将逻辑ID从堆栈资源解析为物理资源ID。
现在,您可能想知道如何在没有堆栈名称的情况下获取堆栈的资源。通过使用EC2实例ID来做到这一点,该实例ID始终可以从实例元数据(https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)中获得。
云形成客户端允许您通过堆栈名称或该堆栈中存在的任何资源的物理资源ID描述堆栈资源。
它还具有故障转移功能,它通过获取StackResourceRegistryDetectingResourceIdResolver
中存在堆栈名称的实例的标签来返回堆栈名称