genofire/hs_monolith
genofire
/
hs_monolith
Archived
1
0
Fork 0

[Task:] Add new infos to documentation

This commit is contained in:
mlabusch 2017-05-19 09:45:28 +02:00
parent 30841cf64d
commit b02269abdf
2 changed files with 14 additions and 5 deletions

View File

@ -8,7 +8,7 @@ go get ./...
\end{lstlisting}
\subsection{Start des Microservice}
Um den Microservice Warenwirtschaft zu starten, muss die folgende Befehlszeile unter dem Root-Verzeichnis des Microservice ausgeführt werden. Anschließend wird der Microservice unter \texttt{http://localhost:8080/} bereitgestellt.
Um den Microservice Warenwirtschaft zu starten, muss die folgende Befehlszeile unter dem Root-Verzeichnis des Microservice ausgeführt werden. Anschließend wird der Microservice unter \texttt{http://localhost:8080/} bereitgestellt. Zusätzlich wird der Microservice aktuell unter der URL \texttt{https://stock.pub.warehost.de/} automatisch ausgebracht.
\begin{lstlisting}[caption=Start des Go-Microservice]
go run main.go
\end{lstlisting}

View File

@ -117,21 +117,30 @@ Die Packages des Application Layers umfassen die Logik des Microservice Warenwir
\subsection{Persistant Layer}
Der Persitant Layer umfasst eine SQL-Lite-Datenbank, die im Cache gehalten wird. Die nachfolgende Abbildung \ref{pic:Datenbankmodell des Microservice} zeigt den grundsätzlichen Aufbau der Datenbank. Sie speichert den Warenbestand (stock) in Produkten (product). Jedes Produkt wird mit seiner ID und seinem Namen gehalten, die aus dem Produktkatalog bezogen und in einem Cache zwischengespeichert werden. Zu jedem Produkt gehören wiederum mehrere Waren (good), die eine ID, ein Ablaufdatum und eine Lagerposition besitzen. Dabei kann eine Ware nur zu einem Produkt gehören.
Der Persitant Layer umfasst eine SQL-Lite-Datenbank, die im Cache gehalten wird. Die nachfolgende Abbildung \ref{pic:Datenbankmodell des Microservice} zeigt den grundsätzlichen Aufbau der Datenbank. Sie speichert den Warenbestand (stock) in Produkten (product). Jedes Produkt wird mit seiner ID und seinem Namen gehalten, die aus dem Produktkatalog bezogen und in einem Cache zwischengespeichert werden. Zu jedem Produkt gehören wiederum mehrere Waren (good), die eine ID, ein Ablaufdatum und eine Lagerposition besitzen. Dabei kann eine Ware nur zu einem Produkt gehören. Die Datenbank kann über die Konfigurationsdatei \texttt{config\_example.conf}, deren relevanter Ausschnitt nachfolgend dargestellt wird, flexibel angepasst werden.
\begin{lstlisting}[caption=Datenbankeinstellungen in der Konfigurationsdatei]
[database]
type = "sqlite3"
# logging = true
connection = "file::memory:?mode=memory&cache=shared"
# For Master-Slave cluster
# read_connection = ""
\end{lstlisting}
\begin{figure}[H]
\centering
\includegraphics[width=0.65 \textwidth]{./pics/db.pdf}
\includegraphics[width=0.45 \textwidth]{./pics/db.pdf}
\caption{Datenbankmodell des Microservice}
\label{pic:Datenbankmodell des Microservice}
\end{figure}
\newpage
\subsection{Integrierte Tests}
\label{subsec: Integrierte Test}
Neben bisherigen Packages, die bereits Whitebox-Tests umfassen, ist in dem Package \textbf{\texttt{test}} ein weiteres Go-File (\texttt{testRest.go}) enthalten. Dieses setzt einen Test des Webservers um, bei dem auf Testdaten eines Produktkataloges zurückgegriffen wird. Mit Hilfe der integrierten Tests kann in der hier beschriebenen Version eine Code-Coverage von 100\% erreicht werden, das heißt jedes Stück Code wird mindestens einmal zur Ausführung gebracht.
\newpage
\subsection{Anpassung des Monolithen}
\label{subsec: Anpassung des Monolithen}
Damit der Microservice Warenwirtschaft durch den bestehenden Monolithen des Webshops Mosh genutzt werden kann, wurden hier dir nachfolgend aufgeführten Änderungen vorgenommen. Zunächst wurde für den Aufruf des Admin-Frontends über die URL des Monolithen \texttt{/stockadmin} das nachfolgende Mapping in der Java-Datei \texttt{HomepageController.java} ergänzt.