假设我需要将传入数据写入云上的数据集。我何时、何地以及是否需要在代码中使用数据集,取决于传入的数据。我只想获取对数据集的引用一次。实现这一目标的最佳方法是什么?
启动时初始化为全局变量并通过全局变量访问
if __name__="__main__":
dataset = #get dataset from internet
Run Code Online (Sandbox Code Playgroud)这看起来是最简单的方法,但即使从不需要它也会初始化该变量。
第一次需要数据集时获取引用,保存在全局变量中,并通过get_dataset()方法访问
dataset = None
def get_dataset():
global dataset
if dataset is none
dataset = #get dataset from internet
return dataset
Run Code Online (Sandbox Code Playgroud)第一次需要数据集时获取参考,保存为函数属性,并通过get_dataset()方法访问
def get_dataset():
if not hasattr(get_dataset, 'dataset'):
get_dataset.dataset = #get dataset from internet
return get_dataset.dataset
Run Code Online (Sandbox Code Playgroud)任何其他方式
我正在使用安装在 kubernetes 之上的服务网格https://istio.io/并安装了ISTIO 在其网站上提供的示例https://istio.io/docs/examples/bookinfo/。
假设,我已经创建了一个服务 FOO,想调用服务等级通过虚拟服务评级。
如何在内部调用评级FOO?我必须在FOO服务中提供http客户端哪个地址才能调用ratings。我必须为评级创建虚拟服务吗?评级不应在 kubernetes cluser 之外访问。
当FOO调用ratings 时,请求会首先通过自己的 envoy 代理还是直接进入ratings envoy 代理?
后续问题
以下是 kubernetes 集群上安装的所有虚拟服务:
[
2
集群 IP 地址为:
问题是,如何在FOO服务中调用ratings服务?用集群IP地址?