[OpenSIPS-Users] Need some clarification in opensips cachedb_mongo db configutaion .
Liviu Chircu
liviu at opensips.org
Tue Aug 23 10:01:51 UTC 2022
On 22.08.2022 08:44, Sasmita Panda wrote:
>
> When I am configuring 2 connectionstrings here , that means
> 1. Opensips will always honor the 1st one as primary and 2nd one as
> secondary ?
>
> 2. If the 1st one will get down and 2nd one becomes primary , what
> will happen to opensips ? Will that keep the 2nd one as primary
> automatically or I have to switch the domain in the config ?
>
> 3. How does opensips decide which one is primary and which is secondary ?
>
> Please help me out . I am stuck in the middle of something here .
Hi Sasmita,
This has more to do with the libmongoc library behavior, rather than
OpenSIPS. First, the multi-host replica set syntax is part of the
MongoDB connection string syntax[1], so everything that you can read on
the Mongo website also applies to the "cachedb_mongodb" module.
1. This means that once you include the "replicaSet=rs0" component, the
library will automatically establish who is the PRIMARY node on each
query. If the PRIMARY should ever change (either due to system failure,
manual switch, etc.), the library will be able to switch to the new
PRIMARY, whichever that may become (imagine you have a 5-node replica set).
2. no need to change the config string. The library will always know
which is the PRIMARY (writer) node.
3. I cannot say... I image the library will connect to each node and run
an "isMaster()"[2] command? I suggest you do an ngrep or even a PCAP
capture - that should give you more info on libmongoc behavior.
[1]: https://www.mongodb.com/docs/v5.2/reference/connection-string/
[2]: https://www.mongodb.com/docs/v4.2/reference/command/isMaster/
Best regards,
--
Liviu Chircu
www.twitter.com/liviuchircu | www.opensips-solutions.com
OpenSIPS Summit 2022 Athens, Sep 27-30 | www.opensips.org/events
More information about the Users
mailing list