小编Rob*_*bbe的帖子

在模块中初始化变量的最佳方法?

假设我需要将传入数据写入云上的数据集。我何时、何地以及是否需要在代码中使用数据集,取决于传入的数据。我只想获取对数据集的引用一次。实现这一目标的最佳方法是什么?

  1. 启动时初始化为全局变量并通过全局变量访问

    if __name__="__main__":
        dataset = #get dataset from internet
    
    Run Code Online (Sandbox Code Playgroud)

这看起来是最简单的方法,但即使从不需要它也会初始化该变量。

  1. 第一次需要数据集时获取引用,保存在全局变量中,并通过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)
  2. 第一次需要数据集时获取参考,保存为函数属性,并通过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)
  3. 任何其他方式

python initialization global-variables function-attributes

11
推荐指数
1
解决办法
7259
查看次数

如何在 ISTIO 中调用网格内的服务?

我正在使用安装在 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地址?

kubernetes istio

3
推荐指数
1
解决办法
1238
查看次数