Über Theorieakkumulation und praktische Erfahrung beim Lernen

Sie müssen weiter lernen und sich selbst bereichern, während Sie im Leben wachsen. Warum muss ich weiter lernen, auch wenn ich die Schule verlassen habe? Weil ich ein besserer und vollkommenerer Mensch werden muss. Wenn ich andererseits ständig lerne und meinen Horizont erweitere und meine Welt bereichere, kann dies zu einem erfüllten Leben führen. Effektiv in die eigene Karriere investierte Studienzeit kann einen zu einem professionelleren Menschen machen, der unersetzlich ist und es einem ermöglicht, wichtigere Arbeit zu leisten. Aber für mich ist Lernen nicht nur für eine bessere Zukunft, es ist ein lebenslanges Hobby, das den Alltag zu einer Freude macht. ...

November 30, 2022

Wöchentlicher technischer Bericht für die vierte Woche im November 2022

Diese Woche habe ich mich hauptsächlich mit der Optimierung eines Dienstes beschäftigt. Dieser Dienst ist in Java geschrieben. Wenn in der Produktionsumgebung nicht viel Verkehr herrscht, gibt es auch eine Zeitüberschreitung für den Aufruf von Batches. Und wenn die Zeitüberschreitung gesendet wird, ist die CPU-Auslastung niedrig. Bei der Beobachtung stieg die CPU-Auslastung nie an. Zu diesem Zeitpunkt wurde spekuliert, dass alle Threads bei einer bestimmten Operation blockiert waren und das Problem verursachten. Die meisten der Dienste, mit denen ich gearbeitet habe, einschließlich dieses Dienstes, sind IO-intensiv. Diese Art von Diensten beinhaltet viele RPC-Aufrufe, und wenn RPC-Aufrufe erfolgen, blockieren die Worker-Threads und machen es unmöglich, andere Anfragen zu bearbeiten. Daher wird die Anzahl der Worker-Threads für diese Art von Diensten sehr hoch angesetzt, um sicherzustellen, dass zusätzliche Threads für die Bearbeitung von IO-Anfragen zur Verfügung stehen, so dass nachfolgende Anfragen nicht bearbeitet werden können, weil die Mehrheit der Threads blockiert, was letztendlich zu einer großen Anzahl von Timeouts führt. Das ist tatsächlich problematisch, obwohl Java das NIO-Modell beim Umgang mit Sockets und beim Parsen von Anfragen übernommen hat, aber die logische Verarbeitung der Anfrage verwendet immer noch einen Pool von Worker-Threads. Wenn ein Worker-Thread bei der IO-Anfrage blockiert ist, kann der Worker-Thread nur warten, bis die IO-Anfrage abgeschlossen ist oder eine Zeitüberschreitung eintritt. Wenn das von der IO-Anfrage zurückgegebene Ergebnis nicht vom Endergebnis der Anfrage abhängt, wird die Anfrage an einen anderen Thread-Pool zur Verarbeitung weitergeleitet. Diesmal ist die Verarbeitung für diesen Worker-Thread asynchron. Nach der Fehlersuche stellte sich schließlich heraus, dass dieser Dienst eine Konfiguration über die Anzahl der Worker-Threads hatte, die aufgrund eines Framework-Problems nicht gelesen wurde. Dies führte dazu, dass der Dienst mit der Standardeinstellung für die Anzahl der Worker-Threads startete, die der Anzahl der CPU-Kerne entspricht. Wenn die Worker-Threads also nachgelagerte RPC-Aufrufe verarbeiteten, führte jede kleine Schwankung in der verstrichenen Zeit der nachgelagerten Schnittstelle dazu, dass eine große Anzahl von Anfragen einen Timeout verursachte. Zu diesem Zeitpunkt ist auch die CPU-Auslastung gering, da die Worker-Threads die meiste Zeit blockiert sind und auf die Rückkehr der IO-Operation warten. Wie Sie das Problem beheben können, müssen Sie zunächst im Protokollrahmen den Namen des aktuellen Threads für den Logback-Protokollrahmen ausgeben lassen, d.h. in den Einstellungen für das Protokollformat % t hinzufügen. Dann einen einzelnen Knoten in der Testumgebung für Drucktests, um in einer bestimmten QPS den Dienst für die Anfrageverarbeitung zu sehen. Am besten fügen Sie StopWatch zum logischen Code der Anfrage hinzu, um die Analyse zu unterstützen. Schließlich stellen Sie fest, dass das Ausgabeprotokoll nur von einigen wenigen Threads stammt, was nicht stimmt. Verwenden Sie dann jstack, um die Anzahl der Threads herauszufiltern. Sie stellen fest, dass es tatsächlich nur vier sind. Dies lässt sich damit erklären, dass das von diesem Java-Dienst verwendete Framework das netty-Framework für die Verarbeitung von Anfragen verwendet und diese schließlich an den netty-Worker-Thread-Pool weitergeleitet werden, um die Anfragelogik zu verarbeiten. In diesem Fall entspricht der netty worker thread pool dem Präfix nioEventLoopGroup-5. Darüber hinaus kann anhand der kumulativen CPU-Zeit nachgewiesen werden, dass es wirklich nur diese vier Threads gibt, die die gesamte Hauptlogik der Anfrage verarbeiten. Für diese Art von Dienst wird in der Produktionsumgebung die Anzahl der Worker-Threads in der Regel auf 800~1000 festgelegt und die Zeitüberschreitung für RPC-Aufrufe wird streng eingestellt, um zu verhindern, dass eine große Anzahl von Worker-Threads blockiert wird, was letztendlich zu einem drastischen Rückgang des Durchsatzes des Knotens führt. Nachdem ich das Framework aktualisiert hatte, war das Problem gelöst. Außerdem entdeckte ich, dass eine der wichtigsten Schnittstellen des Dienstes einen nachgelagerten Aufruf auf der Grundlage des http-Protokolls enthielt. Der Aufruf erfolgte durch Manipulation der OkHttp-Bibliothek, und ich stellte fest, dass der Aufruf kein Timeout setzte. Das ist falsch, denn in einer extremen Situation, in der der Downstream verzögert zurückkehrt, wird der Worker-Thread lange Zeit blockiert. Daher müssen Sie eine angemessene Timeout-Zeit für Downstream-Aufrufe festlegen, um den reibungslosen Ablauf zwischen Upstream- und Downstream-Aufrufen zu gewährleisten und das Auftreten von Lawinen zu verhindern. Die Timeout-Zeit wird im Allgemeinen in drei Arten unterteilt: Verbindungs-Timeout, Lese-Timeout und Schreib-Timeout, die alle festgelegt werden müssen. Außerdem habe ich für die mögliche Existenz einer großen Anzahl von Http-Aufrufen den OkHttp ConnectionPool aktiviert. Laut der Dokumentation besteht der Vorteil von ConnectionPool darin, dass sich mehrere http- oder http/2-Anfragen an dieselbe Adresse dieselbe Verbindung teilen können. Es sei jedoch darauf hingewiesen, dass die Voraussetzung für diese gemeinsame Nutzung ist, dass die Serverseite eine lange http-Verbindung unterstützt. Außerdem haben wir uns in dieser Woche hauptsächlich mit den TCP-Inhalten des Tencent Cloud’s Advanced Architect beschäftigt, da die Prüfung am Wochenende angesetzt ist. Diese TCP-Prüfung ist etwas schwieriger als die ursprünglichen Architect- und Practitioner-Prüfungen, so dass Sie sich trotzdem darauf vorbereiten müssen. Ich hatte auf der Arbeit nicht viel Zeit, um mir den Stoff anzusehen, also habe ich den schweren Stoff direkt bis 5 Uhr morgens am Samstag durchgearbeitet und zum Glück habe ich die Prüfung am Ende bestanden. Ich sollte einen Artikel über diese Prüfung schreiben. ...

November 27, 2022

Technische Überprüfung für die dritte Woche im November 2022

Dies ist der erste meiner regelmäßigen Rückblicke auf technische Probleme, die mir bei der Arbeit begegnet sind. Dieser Rückblick ist also hauptsächlich eine Zusammenfassung der Erfahrungen, die ich im Laufe der Zeit gemacht habe, um einen Vorsprung für künftige technische Rückblicke zu erhalten. Ich arbeite jetzt seit fast sechs Monaten in dem Unternehmen und habe vor kurzem von der clientseitigen Entwicklung zur Backend-Entwicklung gewechselt. Das ist das, was ich mir wünsche, aber eigentlich nicht das, worum ich gebeten habe. Denn ich persönlich habe das Gefühl, dass Backend-Entwickler in der aktuellen Karriereplanung der chinesischen Tech-Industrie etwas mehr Möglichkeiten haben und viel mehr mit Problemen konfrontiert werden. Auch die Client-Seite ist vielversprechend. ...

November 20, 2022

Limit für reservierte AWS-Instanzen überschritten Problem Ursache und Lösung

Diese Warnung tritt in der Regel auf, wenn Sie die Reservierungsoption “ohne Vorauszahlung” wählen. Der Grund dafür ist, dass Sie nicht genug Kredit haben, mit anderen Worten, dass Ihre monatlichen Ausgaben zu niedrig sind. In diesem Fall wählen Sie am besten einen Plan mit teilweiser oder vollständiger Vorauszahlung, und Sie kommen durch. Außerdem sind die Optionen der teilweisen Vorauszahlung und der vollständigen Vorauszahlung kostengünstiger. Sie können eine Menge Geld sparen, wenn Sie für eine lange Anzahl von Jahren kaufen. ...

November 20, 2022

Relativität und Bedingtheit des Wissens

Dieser Artikel wurde von AI auf der Grundlage der Analyse des Originalartikels erstellt. Ein breites und tiefes Wissen ist für die persönliche Entwicklung von entscheidender Bedeutung, da es nicht nur die Tiefe unseres Denkens, sondern auch unsere Fähigkeit zur Bewältigung komplexer Sachverhalte fördert. Die Aneignung von Wissen ist nicht einfach nur eine Frage der Aufnahme von Informationen von außen, sondern erfordert tiefgreifende persönliche Überlegungen und kritische Analysen. Das Verständnis der relativen und bedingten Natur des Wissens wird in diesem Prozess besonders wichtig. ...

November 9, 2022

Was ist die Natur der Dinge

Aktuell Veröffentlicht: 2018-05-25 Original Artikel In meinem täglichen Leben habe ich zufällig angefangen, diese Worte zu schreiben. Schreiben ist für mich nicht nur eine Beruhigung des Geistes, sondern auch eine Vertiefung des Denkens. Durch das Schreiben gelingt es mir, meine Gedanken zu ordnen und meinen Geist zu beruhigen, um tief zu denken. Diese Worte scheinen ein philosophisches Outfit zu sein, sowohl eine scharfe Waffe für die Theorie als auch ein stabiler Schutzschild. Sie helfen mir, die Herausforderungen und Verwirrungen in meinem Leben zu meistern, zu denen auch Gedanken über die Theorie des Wissens und des Handelns gehören. Diese Gedanken stammen aus meinem täglichen Leben, den Büchern, die ich lese, und meinen persönlichen Überlegungen. ...

November 9, 2022

Über das Phänomen des psychologischen "Antiplasmas"

Aktuelles Datum der Erstellung: 2017-05-14 11:08:30 Originalartikel Um das Phänomen des antiplasmatischen Wandels zu verstehen, muss man die psychologischen und philosophischen Mechanismen, die ihm zugrunde liegen, eingehend erforschen. Der antiplasmatische Wandel ist nicht nur eine einfache psychologische Reaktion, sondern ein Prozess, der komplexe Emotionen, Überzeugungen und Wahrnehmungen umfasst. Er offenbart die tiefe Struktur der menschlichen Kognition und wie wir Informationen und Emotionen verarbeiten. Dieses Phänomen ist im täglichen Leben allgegenwärtig und kann durch den antiplasmatischen Wandel beeinflusst werden, von unserem Verständnis von Beziehungen bis hin zu unserer Sicht der Welt. ...

November 9, 2022

Pläne für die nächste Phase

Aktuelle Zeit geschrieben: 2017-05-20 20:57:23 Ich muss zugeben, dass das letzte Jahr ein Tiefpunkt war, ob im Leben, im Studium oder im Geist. Das Sehen und das Ziel rückt immer weiter in die Ferne, und sie sind machtlos, etwas zu ändern. Aber jetzt ist es anders. Nach all den Schwierigkeiten habe ich endlich eine neue Sichtweise auf die Dinge gefunden und mich selbst zum ersten Mal entdeckt. Nachdem ich eine Reihe von Problemen gelöst habe, haben sich meine inneren Sorgen aufgelöst, und ich habe das Gefühl, dass ich endlich alle meine Fähigkeiten konzentrieren kann, ohne von mir selbst eingeschränkt zu werden. ...

November 9, 2022

Wissen und Tun: Eine Erweiterung des Lernens und der Horizonte in beide Richtungen

Lernen ist der Grundstein des menschlichen Fortschritts. Seit der Antike haben die Menschen gelernt, Wissen angehäuft und Innovationen entwickelt. In der modernen Gesellschaft, mit dem Aufkommen des Informationszeitalters, ist Wissen immer wichtiger geworden. In dieser Ära der rasanten Entwicklung ist es unerlässlich, ständig zu lernen und aufgeschlossen zu sein. Lebenslanges Lernen ermöglicht es uns vor allem, uns selbst ständig zu verbessern. Am Arbeitsplatz ist es sehr wichtig, über bestimmte berufliche Fähigkeiten zu verfügen. Diese Fähigkeiten werden jedoch immer schneller aktualisiert, und das Aufkommen vieler neuer Fähigkeiten stellt unweigerlich das konventionelle Denken der Vergangenheit in Frage. Wenn wir nicht lernen, werden wir von der Zeit abgehängt. Und lebenslanges Lernen ermöglicht es uns, immer wieder neue Kenntnisse und Fähigkeiten zu erwerben, unsere Wahrnehmungen und Denkweisen ständig zu erneuern und die Wettbewerbsfähigkeit am Arbeitsplatz zu erhalten. ...

November 8, 2022

Ziehen Sie Ihre eigenen praktischen Lektionen zur Entwicklung von Gewohnheiten

Viele Menschen möchten eine gute Gewohnheit entwickeln, denn eine gute Gewohnheit kann noch lange Zeit etwas Gutes bewirken. Diese gute Sache wird jedes Mal, wenn Sie sie tun, eine gewisse Menge an gutem Einfluss mit sich bringen. Und eine gute Auswirkung, die sich immer wieder einstellt, kann nach einer relativ langen Zeitspanne bei einem Menschen einige Aspekte einer großen positiven Veränderung bewirken. Viele Menschen versuchen, Gewohnheiten zu entwickeln, haben aber Schwierigkeiten, sie beizubehalten. Stattdessen greifen sie auf viele äußere Kräfte zurück, um sich selbst zu “überwachen”, was sie wiederum noch schmerzhafter macht. Ich glaube, die Ursache dafür ist das Fehlen einer starken intrinsischen Motivation. Nehmen wir an, Sie möchten eine Fremdsprache lernen. Sie wissen, dass das Erlernen einer Fremdsprache alle möglichen Vorteile mit sich bringen kann. Aber Sie wissen im Grunde Ihres Herzens, dass diese Vorteile nur das Sahnehäubchen auf dem Kuchen sind und Ihre Zukunft nicht beeinflussen werden. Machen Sie sich nichts vor, und ich will damit nicht sagen, dass es wichtig ist, sich immer wieder einzureden, dass das Erlernen einer Fremdsprache wichtig ist. Was ich damit sagen will, ist, dass Sie das Erlernen einer Fremdsprache für sich wirklich wichtig machen müssen, damit es effektiv ist. Nehmen wir zum Beispiel an, Sie haben sich im Rahmen Ihrer Lebensplanung für ein Studienprogramm im Ausland angemeldet und viel Geld für einen Vertrag ausgegeben. Sie sind jetzt in einer Situation, in der Sie es sich nicht leisten können, es nicht zu lernen. Wenn Sie es nicht lernen, wird Ihr Lebensplan nicht erfüllt und das Geld, das Sie für die Unterzeichnung des Vertrags ausgegeben haben, ist futsch. Auf diese Weise wird ein starker innerer Antrieb geschaffen. Wenn dieser innere Antrieb erst einmal da ist, wird er Sie ständig daran erinnern und Sie dazu anspornen, automatisch ein Fremdsprachenbuch in die Hand zu nehmen. Solange Sie keinen Grund haben, es abzulehnen, wird Ihre Faulheit nicht an Ihnen vorübergehen. Ein weiterer wichtiger Punkt, den ich herausgefunden habe, ist, dass Gewohnheiten im Einklang mit der Natur und vor allem im Einklang mit Ihrem eigenen Herzen entstehen. Sie können sich z.B. keine Gewohnheit machen, die Sie nicht mögen. Wenn Sie etwas nicht mögen und Sie sich dazu zwingen müssen, dann werden Sie es letztendlich nicht tun können. Ob Sie etwas mögen oder nicht, hängt in erster Linie davon ab, ob Sie ein Gefühl der Freude haben, bevor Sie es tun, können Sie daran denken, was Sie gewinnen können, nachdem Sie es getan haben, was Ihnen ein Gefühl der Freude gibt. Es gibt ein Gefühl der Freude, das Sie von Zeit zu Zeit daran erinnern kann, etwas zu tun. Der dritte Punkt ist, dass Sie nicht ständig, sondern über einen längeren Zeitraum dabei bleiben sollten. Man kann nicht sagen, dass Sie sich zwingen müssen, eine bestimmte Gewohnheit ständig beizubehalten, denn Gewohnheiten ändern sich langsam, wenn Ihr Leben weitergeht. Bleiben Sie über einen längeren Zeitraum dabei, was bedeutet, dass Sie es über einen langen Zeitraum hinweg regelmäßig tun werden. Nur weil Sie es ein- oder zweimal nicht tun, heißt das nicht, dass die Gewohnheit verschwunden oder gebrochen ist. Da die Dinge nicht reibungslos ablaufen, gibt es immer wieder Wiederholungen. Gönnen Sie sich also ein wenig Zeit, um die Dinge anders zu machen oder die Sache nicht zu tun und sich in einen entspannteren Zustand zu versetzen. Denken Sie daran, dass der Überschuss das Defizit ist, also lassen Sie sich immer ein wenig schwimmen, erlauben Sie sich ein kleines Faulenzen, der Prozess der Gewohnheitsbildung wird keine großen Racheschwankungen haben. Im Laufe der Entwicklung von Gewohnheiten werden Sie vielleicht feststellen, dass diese Gewohnheit nicht gut ist oder nicht zu Ihnen passt. Zu diesem Zeitpunkt sollten Sie die Gewohnheit entschlossen aufgeben. Denn die Bildung von Gewohnheiten ist eine positive Rückkopplung, ein Prozess, bei dem Sie sich selbst motivieren und Gewinne erzielen, und nicht ein Prozess, bei dem Sie sich selbst und Ihr inneres Selbst in die Zange nehmen. Eine weitere Sache ist, dass die Gewohnheitsbildung Ihre normale Routine nicht beeinträchtigen sollte. Sie können nicht sagen: “Heute lerne ich den Text auswendig”, es dann aufgrund unvorhergesehener Umstände nicht tun und es dann spät in der Nacht zu Ende bringen, wodurch Sie aus dem Bett gezwungen werden. Das ist die Mühe nicht wert, sondern führt aufgrund der Unterbrechung ihres Lebenszyklus in eine Situation der Erschöpfung, die dazu führt, dass Gewohnheiten immer schwerer zu entwickeln sind. Und schließlich: Woher wissen Sie, ob sich eine Gewohnheit entwickelt hat? Wenn Sie feststellen, dass etwas zu fehlen scheint, wenn Sie es heute nicht tun. Oder wenn Sie sich automatisch daran erinnern, es zu einer bestimmten Zeit zu tun. An diesem Punkt können Sie die Gewohnheit als gebildet betrachten, Sie machen einfach mit, genießen die Gewohnheit der Trägheit, um Ihnen Glück zu bringen, dabei können Sie weiterhin ihr eigenes Wachstum und Glück in einem bestimmten Bereich ernten. ...

April 22, 2022