Ich evaluiere Python-Frameworks, um eine REST-API zu erstellen. Ich habe viele Frameworks einschließlich Flask durchlaufen und Flask gefunden ziemlich interessant und einfach zu bedienen mit allen Funktionen benötigt, um einen REST-Web-Service zu bauen.
Eine Sache, die ich nicht bekomme, ist in Flaschendokumenten, es wird erwähnt, dass es "Thread lokal verwendet und Probleme mit der Skalierbarkeit hat".
Flask verwendet lokale Thread-Objekte (Kontext lokale Objekte tatsächlich, sie Unterstützung von Greenlet-Kontexten für Anfragen, Sitzungen und ein Extra Objekt, auf das du deine eigenen Sachen setzen kannst (g). Warum ist das und ist das nicht? eine schlechte Idee? Ja, es ist normalerweise keine so gute Idee, einen Thread zu verwenden Einheimische. Sie verursachen Probleme für Server, die nicht auf dem basieren Konzept von Threads und machen große Anwendungen schwieriger zu warten. Allerdings ist Flask einfach nicht für große Anwendungen ausgelegt oder asynchrone Server. Flask will es schnell und einfach machen, ein zu schreiben traditionelle Webanwendung.
Kann mir jemand dabei helfen, das zu verstehen, welche Skalierbarkeitsprobleme angesprochen werden und wie andere Frameworks damit umgehen?
Es ist nicht wirklich ein Skalierbarkeitsproblem, sondern kann die Pflege einer komplexen Codebasis erschweren. Dies liegt daran, dass Thread-Locals als globaler Datenspeicher verwendet werden, um zu vermeiden, dass der Status über Funktionsargumente weitergegeben wird, was es schwieriger macht, den Vorgängen zu folgen.
Geschwindigkeit Thread Locals sind nicht besonders langsam, aber sie machen es schwierig oder unmöglich, ein asynchrones Framework zu verwenden, wo viele Aufgaben für kurze Zeit in einem einzelnen Thread ausgeführt werden.
Tags und Links python web-services flask scalability