我无法理解Zuul和Ribbon之间的联系.
我想我清楚了.这是一个反向代理,我可以联系以达到我的几个服务实例之一.它将使用循环算法或您配置的任何内容来选择正确的服务器.它是传统的负载均衡器.要知道可用的实例,它可以使用像Eureka这样的注册表.
但是我在Ribbon上遇到了更多麻烦.它作为客户端负载均衡器出售,但它意味着什么?它不需要外部服务器?功能区是否与Eureka客户端一样嵌入客户端?如果是这样,它是如何工作的?我使用Ribbon时是否需要Zuul,反之亦然?
在一些文章中,我看到实际上,Zuul默认使用Ribbon作为负载平衡部分,这让我更加困惑.如果这是真的,"客户端"是什么意思?除了路由之外,Zuul会怎么做?
我希望你能帮助我.
假设我在两个文件中有两个类:
from Son import Son
class Mother:
def __init__(self):
self.sons = []
def add_son(self, son: Son):
self.sons.append(son)
Run Code Online (Sandbox Code Playgroud)
和
from Mother import Mother
class Son:
def __init__(self, mother: Mother):
self.mother = mother
mother.add_son(self)
Run Code Online (Sandbox Code Playgroud)
加上一个主文件
from Mother import Mother
from Son import Son
if __name__ == '__main__':
mother = Mother()
son1 = Son(mother)
son2 = Son(mother)
Run Code Online (Sandbox Code Playgroud)
显然,我有一个循环依赖.如何在不丢失类型提示的情况下处理这种行为?
当我调整窗口高度时,如何调整树视图大小?我尝试设置sticky="sn",我试图打包树视图fill='y',但没有任何效果.
import tkinter as tk
from tkinter.ttk import Treeview
root = tk.Tk()
f1 = tk.Frame(root)
f2 = tk.Frame(root)
f1.grid(column=0, row=0, sticky="s")
f2.grid(column=1, row=0, sticky="n")
root.rowconfigure(0, weight=1)
Treeview(f1).pack()
tk.Button(f2, text="DAT BUTTON IS IN F2").pack()
tk.Button(f2, text="DAT BUTTON IS IN F2").pack()
tk.Button(f2, text="DAT BUTTON IS IN F2").pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)