mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-24 13:48:49 +08:00

* Replace Nats with Nats Jestream For PubSub Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Add Stream Description Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Subscribe using wildcard Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Add consumers description Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Remove unused queue variable Signed-off-by: rodneyosodo <blackd0t@protonmail.com> * Add extra configs to stream Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * Use inline error handling Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * Fix connection leak in NATS publisher The publisher struct in pkg/messaging/nats/publisher.go was modified to include a new `conn` field of type `*broker.Conn`. This change was made to fix a connection leak issue in the NATS publisher. The `NewPublisher` function was updated to assign the `conn` parameter to the new `conn` field in the publisher struct. Additionally, the `Close` method in the publisher struct was modified to close the `conn` connection. This commit fixes the connection leak issue in the NATS publisher and ensures that connections are properly closed. Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> * feat(messaging): Add support for durable consumers This commit adds support for durable consumers to NATS JS in the messaging package. To support this functionality, the `strings` package has been imported in the `pubsub.go` file to check the topic. Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com> * feat : remove internal logic to keep subscribers Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com> * feat(messaging): add function to format consumer name This commit adds a new function to the `pubsub` package in the `messaging` module. The function is called `formatConsumerName` and is used to generate a consumer name for NATS messaging. The function takes two parameters, `topic` and `id`, and returns a formatted consumer name. The consumer name is generated by concatenating the `topic` and `id` parameters, with some restrictions on the characters that can be used. This function will be useful for creating durable subscriptions in NATS messaging. Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com> --------- Signed-off-by: rodneyosodo <blackd0t@protonmail.com> Signed-off-by: Rodney Osodo <socials@rodneyosodo.com> Signed-off-by: Rodney Osodo <28790446+rodneyosodo@users.noreply.github.com>
Docker Composition
Configure environment variables and run Mainflux Docker Composition.
Note*: docker-compose
uses .env
file to set all environment variables. Ensure that you run the command from the same location as .env file.
Installation
Follow the official documentation.
Usage
Run following commands from project root directory.
docker-compose -f docker/docker-compose.yml up
docker-compose -f docker/addons/<path>/docker-compose.yml up
To pull docker images from a specific release you need to change the value of MF_RELEASE_TAG
in .env
before running these commands.