Verify and Test Multiple orderer using Kafka cluster

My network is with 1 peer, 1 CA and 3 orderers
I have 3 zookeepers and 4 Kafka brokers. (All are in one machine)

I have fabric with 3 orderers but the problem is when I stop the orderer container which runs on 7050 port, I can’t make any transaction. It says me that “service unavailable” but when I stop another container (which is running on the port other than 7050) all works fine. What should be the reason behind this?

logs when I start the fabric:

1. peer logs:
2. orderer0 logs:
3. orderer1 logs:
2. orderer2 logs:

By tracing the log we found that the orderer 0 gives following warning.

2018-06-25 09:53:23.723 UTC [common/deliver] deliverBlocks -> WARN 4da
[channel: composerchannel] Rejecting deliver requestfor because of consenter error

Note: I am testing it using composer tool. I can also share the code if anyone can look into.
Git repo link :
All the modified code for setting up kafka cluster with multiple orderers is in folder.

For start the network run file of the root folder.

I hope it makes sense to your end. Let me know in case anything you would like to ask.

Thanks In Advance.

Can anyone help please?

Hey @Honey_Shah, if I am not wrong, you tried stopping one of the multiple orderer and tried making a transaction but it failed. You expected the other orderers will take up the failed transaction and execute.

There are two ways you can handle this.

  1. By docker-swarm approach. Please try understanding the working of docker-swarm.
  2. By writing a fault-tolerant logic in the fabric-client which uses other orderers to execute the transaction if the proposal failed.

I hope this helps.

Hey, thanks for the answer. But I found later that there is issue with fabric node sdk that it takes only first orderer defined in connection.json , but it is resolved now and I am waiting for composer upgrade. Can I overcome my issue using docker-swarm without waiting for composer upgrade?