.. This work is licensed under a Creative Commons Attribution 4.0 International License. | |
.. http://creativecommons.org/licenses/by/4.0 | |
High-level architecture of Heartbeat Microservice | |
================================================= | |
**Heartbeat Microservice** startup script (misshtbtd.py) gets the | |
configuration from CBS and parses these entries and saves them in the | |
postgres database having table name **vnf_table_1**. Each entry in the | |
configuration is for a particular eventName. Each entry has missed | |
heartbeat count, heartbeat interval, Control loop name etc. along with | |
many other parameters. | |
Whenever a heartbeat event is received, the sourceName, lastEpochTime | |
and other information is stored in another postgres database having | |
table name **vnf_table_2**. It is designed to process the heartbeat event | |
having different sourceNames having same eventName. In such case, | |
sourceName count is maintained in vnf_table_1 which would give number of | |
SouceNames that have same eventName. As and when new sourceName is | |
received, sourceName count is incremented in vnf_table_1 | |
The heartbeat Microservice is designed to support multiple instances of | |
HB Microservice to run simultaneously. The first instance of the HB | |
Microservice would assume the role of active instance, and instances | |
that started running later would become inactive instances. If the | |
active HB microservice is not responding or killed, the inactive HB | |
instance would take over the active role. To achieve this functionality, | |
one more postgres table **hb_common** is introduced which has parameters | |
specific to active instances such as process id/hostname of the active | |
instance, last accessed time updated by active instance. | |
Heartbeat Microservice supports the periodic download of CBS | |
configuration. The periodicity of download can be configured. | |
Heartbeat Microservice also supports the download of CBS configuration | |
whenever configuration changes. Here Docker container would call the | |
function/method to download the CBS configuration. | |
The heartbeat microservice has 2 states | |
**Reconfiguration state** – Download configuration from CBS and update | |
the vnf_table_1 is in progress. | |
**Running state** – Normal working that comprises of receiving of HB | |
events and sending of control loop event if required conditions are met. |