41 lines
1.6 KiB
TeX
41 lines
1.6 KiB
TeX
\begin{figure}[H]
|
|
\centering
|
|
\resizebox{\textwidth}{!}{%
|
|
\begin{tikzpicture}[
|
|
font=\footnotesize,
|
|
node distance=0.45cm and 0.55cm,
|
|
box/.style={draw=ipsblue, rounded corners=3pt, align=center, inner sep=4pt,
|
|
minimum height=0.95cm, minimum width=2.55cm, fill=codebg, text=black},
|
|
title/.style={font=\small\bfseries, text=ipsblue, anchor=west},
|
|
arr/.style={-{Latex}, thick, draw=ipsblue}
|
|
]
|
|
% --- 1: API Gateway ---
|
|
\node[title] (t1) at (0,0) {API Gateway};
|
|
\node[box, below=0.3cm of t1.west, anchor=west] (client) {Desktop / Agent};
|
|
\node[box, right=of client] (gw) {Gateway :8189};
|
|
\node[box, right=of gw] (svc) {Microservicios};
|
|
\draw[arr] (client) -- (gw);
|
|
\draw[arr] (gw) -- (svc);
|
|
|
|
% --- 2: ARQ ---
|
|
\node[title] (t2) at (0,-2.15) {Cola async (ARQ)};
|
|
\node[box, below=0.3cm of t2.west, anchor=west] (api) {extraction API};
|
|
\node[box, right=of api] (redis) {Redis / ARQ};
|
|
\node[box, right=of redis] (w) {Workers $\times N$};
|
|
\draw[arr] (api) -- (redis);
|
|
\draw[arr] (redis) -- (w);
|
|
|
|
% --- 3: Claim ---
|
|
\node[title] (t3) at (0,-4.3) {Claim / lease (orquestaci\'on)};
|
|
\node[box, below=0.3cm of t3.west, anchor=west] (store) {bot-descarga\\(orquestador)};
|
|
\node[box, right=of store] (claim) {claim at\'omico};
|
|
\node[box, right=of claim] (agent) {Agent Selenium\\(PC)};
|
|
\draw[arr] (store) -- (claim);
|
|
\draw[arr] (claim) -- (agent);
|
|
\end{tikzpicture}%
|
|
}
|
|
\caption{Patrones: Gateway, cola ARQ y claim. El servicio \texttt{bot-descarga} \textbf{orquesta};
|
|
el \textbf{agent Selenium} en el PC ejecuta la descarga.}
|
|
\label{fig:patrones}
|
|
\end{figure}
|