[JAVA] JJUG CCC 2018 Frühlingsbeteiligungsprotokoll

Technologie, die Japans größte Jobsuchmaschine "Standby" unterstützt

https://speakerdeck.com/marevol/ri-ben-zui-da-ji-falseqiu-ren-jian-suo-enzin-sutanbai-wozhi-eruji-shu

Über die Standby-Suchfunktion

--Standby: Suchen Sie nach mehr als 8 Millionen verschiedenen Jobinformationen gleichzeitig

Standby-Index und Abfrage

Suchprobleme und Antworten

Maschinelles Lernen

von jetzt an

Fragen und Antworten

――Was ist Ihre Bewertung von Query Turing?

Java10 Zusammenfassung und was passiert mit Java11

https://www.slideshare.net/nowokay/java10-and-11

Unterstützung

JDK10

JDK11

Support

##Ich möchte eine Microservice-Architektur auch mit einem alten Framework haben https://docs.google.com/presentation/d/1OZFgxuJQacfTc-3SY-ldxEE4OM3KUaUocdwIdkmy1z8/edit#slide=id.g3b5fd37ef4_0_83

-Ich möchte einen alten Dienst in einen Mikrodienst einfügen +Reduzieren Sie die Betriebslast (stellen Sie sie auf eine gemeinsame Plattform) +Teilen Sie die Dienste auf, um den Austausch zu vereinfachen

Spring Cloud Config

Spring Cloud Stream(Apahce Kafka)

-Ich möchte eine Nachbearbeitung zu einer Verarbeitung mit altem Service hinzufügen +Push-Benachrichtigung, Mail-Sendefunktion +Ich möchte nicht dieselbe Verarbeitung schreiben, die in anderen Diensten verwendet wird, sondern eine gemeinsame Verarbeitung für jeden Dienst +Wenn Sie es zu einem Modul machen, müssen Sie es an das Formular anpassen, das in alten Diensten verwendet werden kann +Ich möchte, dass es asynchron ausgeführt wird -Verwenden Sie Apache Kafka (1 Quelle, 2 Waschbecken) -Themendesign +Beispiel: Push-Benachrichtigung nach einer Funktion +Machen Sie "was Sie getan haben" Tipic, zB) like / follow / post ("Drücken Sie JJJ auf XXX"Thema nicht machen) -So ändern Sie den Nachrichteninhalt +Es ist besser, ein neues Thema zu erstellen +Nachdem die Quellseite Nachrichten an das neue Thema gesendet hat, verweist die Sink-Seite auf das neue Thema.

##Beispiel für die Verwendung von gRPC im Werbegebotssystem von Logicad, das 160.000 Anfragen pro Sekunde verarbeitet https://www.slideshare.net/hiroiso/logicad16grpc

gRPC

-Kandidaten zur Auswahl +Redis: Arbeitet in einem einzelnen Thread, was sich auf den Durchsatz auswirkt (Blöcke) +Aerospike: Daten sind gespalten und wirken sich auf die Latenz aus (Mehrfachkommunikation, Multithreading erhöht Thread-Verbindungen)

###Ergebnis der tatsächlichen Anwendung von gRPC -Benchmark +Stresstest nur des Werbeartikel-Informationsservers (maximaler Durchsatz, Messung von Änderungen in der Anzahl der Verbindungen) +Messung von Latenz und Durchsatz in einer Lasttestumgebung (eine Reihe von Gebotsverarbeitungen) -Es ist möglich, mit JMeter auch mit gRPC eine Last aufzubringen +Es ist möglich, eine Klasse vorzubereiten, die JavaSamplerClient implementiert, und ein beliebiges Protokoll anzufordern. -Lade Test

##Die Geschichte einer Serveranwendung mit DDD und sauberer Architektur -Eilbau funktioniert nicht +Der Umriss der Spezifikation wurde festgelegt, einige der Kernfunktionen hatten Teile, daher möchte ich so schnell wie möglich sehen, was mit ihnen funktioniert +Das Prototyping wurde fortgesetzt, während Funktionsspezifikationen erstellt wurden +Ich wurde sehr gedrängt und der Prototyp sollte ein Produktionscode werden. ⇒ Ich konnte ihn nicht veröffentlichen -Verschiedene Überlegungen +Laden Sie alle Clients vom Server herunter und verarbeiten Sie sie (abnormales Verkehrsaufkommen, erhöhte Client-Verarbeitungslast). +Die Reflexion von Spezifikationsänderungen des externen Kooperationsziels spiegelt sich in allen Komponenten wider +Es gibt keine Komponente, die den Hauptteil der Geschäftslogik darstellt, und jede Komponente kann sich nicht auf die Kernlogik konzentrieren und trägt den Konvertierungsprozess

###Design -Designauftrag +Aufzugsneigung definieren +Definieren Sie Funktionsspezifikationen und Verwendungsszenarien (definieren Sie auch nichtfunktionale Anforderungen). +Robustheitsanalyse +Begrenzten Kontext extrahieren +Erstellen einer Kontextkarte -Robustheitsanalyse +Erstellen Sie im Voraus ein Anwendungsfallszenario +Überlegen Sie, wie Sie eine Funktion erstellen, die dem Szenario entspricht +Drücken Sie es mit Grenzen (Bildschirme, Cron), Entitäten (zu verwaltende Daten), Steuerelementen (Verarbeitung, Benutzerauthentifizierung, Werterfassung usw.) aus. +Handgeschrieben, geschrieben und gelöscht im Notizbuch und adoptierte denjenigen, der von zwei Personen gut zu analysieren scheint -Kontextkarte +Sammeln Sie für die Funktionen, die im Robustheitsdiagramm angezeigt werden, ähnliche Funktionen und definieren Sie einen "begrenzten Kontext". +Schreiben → korrigieren → schreiben → korrigieren +Sorgfältige Beurteilung der Beziehungen zwischen Kontexten (Partnerschaft, Kunde/Lieferant, Adapter) -Allgegenwärtige Sprache +Legen Sie für jeden Kontext eindeutige Begriffe fest +Als System ist es einfacher zu verstehen, ob die Begriffe zwischen Kontexten vereinheitlicht sind, und wir verwenden nicht dieselben Begriffe in unterschiedlichen Kontexten mit unterschiedlichen Bedeutungen. +Ich habe auch beschlossen, es im Programm zu benennen → Dies ist beliebt

###Dinge, die vor der Implementierung vorbereitet werden müssen -Regel +Git-Repository-Betrieb, Codierungsstandard, Paketkonfiguration, Rest-API-Standard, Protokollstufe +Die Ausnahme definiert die Klasse in der Nähe des Ortes, an dem sie aufgetreten ist -Perspektive der Überprüfung des Quellcodes +Ist es einer anderen Person möglich, es zu warten, ist es in Zukunft erweiterbar, gibt es keine Verschwendung, ist der Einflussbereich zu groß? ⇒ Im Wiki beschrieben +Sicherheit (Umschreiben von Instanzvariablen der Autowired-Klasse, wird der Cache-Ablauf berücksichtigt?) -Architektur in jedem Kontext

###Architektur in jedem Kontext -Schnittstellenschicht

###Was ich nach der Implementierung gefunden habe -Sie können sich auf Ihre Interessen konzentrieren

Recommended Posts

JJUG CCC 2018 Frühlingsbeteiligungsprotokoll
JJUG CCC Frühjahr 2018 Memo
JJUG CCC Frühjahrsbericht 2018
Ich ging zum JJUG CCC 2019 Spring
Ich habe am JJUG CCC 2019 Spring teilgenommen
Frühlingsrückblick Memo
Zusammenfassung der Teilnahme am JJUG CCC 2019 Spring
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
[Memo] JJUG-Nachtseminar
Hinweise zur Verwendung von Spring Shell
Schreiben von Frühlingsstiefel-Memos (1)
JJUG CCC Herbstbericht 2018
Schreiben von Spring Boot-Memos (2)
JJUG CCC Herbst 2018 Materialübersicht
Spring Security-Nutzungsnotiz CSRF
Spring Framework Selbststudium Memo series_1
Spring Security-Nutzungsnotiz Run-As
Sicherheit der Verwendungsnotizmethode für Spring Security
Spring Security-Nutzungsnotiz Remember-Me
JJUG CCC 2019 Herbstfolienliste
JJUG CCC 2017 Herbstbericht Java
Teilnahme am JJUG CCC 2019 FALL
JJUG CCC 2019 Herbstmaterialien zusammengefasst
Eindrücke eines Ingenieurlehrlings zum JJUG CCC 2018 Spring
Spring Security-Nutzungsnotiz CORS
Spring Security-Verwendungsnotiztest
Memo zur Spring Boot Controller-Methode
Spring Security-Nutzungsnotiz Authentifizierung / Autorisierung
◆ Konstruktionsnotiz für Spring Boot + Gradle-Umgebung
Frühlingsrahmen Einfaches Studienmemo (2): AOP
Antwortheader für die Verwendung von Spring Security
Memo nach dem ersten Frühjahrsprojekt-MVC-
Ich habe am JJUG CCC 2019 Herbst teilgenommen
Sitzungsverwaltung für Spring Security-Nutzungsnotizen
Spring Security-Nutzungsnotiz Basic / Mechanismus
Ein Memo, das Spring Boot berührte
Frühjahr gründliche Einführung Version Upgrade Memo
Memo nach dem ersten Frühjahrsprojekt-Datenbank-
Ich habe am JJUG CCC 2019 Herbst teilgenommen.