Open Closed

Distributed Event Bus with MicroService Architect #6676


User avatar
0
DominaTang created

After reading this document page, https://docs.abp.io/en/abp/latest/Distributed-Event-Bus I am confused about shall I add distributed lock for event handler. Scenario: The event hander is within a Micro Service and Deployed with two instances. Shall I add distributed lock in event handler so that to make sure one message only processed once? Like code below:

 public async Task HandleEventAsync(EntityDataSyncEto eto)
        {
            try
            {
                await using var handle = await _distributedLock.TryAcquireAsync("SyncEntityList");
                if (handle != null)
                {
                    _ = await _dataSyncAppService.ProcessEntity(eto);
                }
            }
            catch (Exception ex)
            {
                _logger.LogException(ex);
            }
        }

Then I noticed with above lock, if there are several messages coming almost at the same time, some messages are missed to process in the event handler. Thanks, Domina

  • ABP Framework version: v7.2.3
  • UI Type: Angular
  • Database System: EF Core/ MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes , Microservice
Markdown supported.
Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)

1 Answer(s)
  • User Avatar
    0
    liangshiwei created
    Fullstack Developer

    This is by design, if the lock is not acquired, it returns immediately

    You can consider specifying a waiting time, or issuing a compensation event See: https://github.com/madelson/DistributedLock?tab=readme-ov-file#tryacquire

    • https://docs.abp.io/en/abp/latest/Distributed-Locking#using-the-iabpdistributedlock-service

    Markdown supported.
    Copy, paste, or drag & drop images and files (max 100 MB per file, 100 MB total per post)
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.8.0-preview. Updated on September 23, 2026, 09:57
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.