chokchit

chokchit

How to declare different topics in kafka_ex?

How can I declare diff topics in supervisor using kafka_ex? I already follow this instruction: https://hexdocs.pm/kafka_ex/KafkaEx.ConsumerGroup.html

My code:

children = [
supervisor(
        KafkaEx.ConsumerGroup,
        [
          MyConsumer1,
          "consumer_group_name",
          "my-topic1",
          @opts
        ]
      ),
supervisor(
        KafkaEx.ConsumerGroup,
        [
          MyConsumer2,
          "consumer_group_name",
          "my-topic2",
          @opts
        ]
      )
]

It returns

children = [
      Supervisor.child_spec({MyWorker, arg}, id: :my_worker_1),
      Supervisor.child_spec({MyWorker, arg}, id: :my_worker_2)
    ]

** (Mix) Could not start application myapp: MyApp.Application.start(:normal, []) returned an error: bad child specification, more than one child specification has the id: KafkaEx.ConsumerGroup.
If using maps as child specifications, make sure the :id keys are unique.
If using a module or {module, arg} as child, use Supervisor.child_spec/2 to change the :id, for example:

    children = [
      Supervisor.child_spec({MyWorker, arg}, id: :my_worker_1),
      Supervisor.child_spec({MyWorker, arg}, id: :my_worker_2)
    ]

It suggests that I have to make a different KafkaEx.ConsumerGroup for the id but there’s only one in kafka_ex. Please help. Can’t find any solution. What’s the syntax for that? :frowning:

Marked As Solved

sionide21

sionide21

You need to specify an id for each of the supervisors.

For example:

children = [
supervisor(
        KafkaEx.ConsumerGroup,
        [
          MyConsumer1,
          "consumer_group_name",
          "my-topic1",
          @opts
        ],
        id: "my-topic1"
      ),
supervisor(
        KafkaEx.ConsumerGroup,
        [
          MyConsumer2,
          "consumer_group_name",
          "my-topic2",
          @opts
        ],
        id: "my-topic2"
      )
]

Also Liked

Fl4m3Ph03n1x

Fl4m3Ph03n1x

I believe you’d have to use something like this:

https://hexdocs.pm/kafka_ex/KafkaEx.Protocol.CreateTopics.html

Hope it helps!

Where Next?

Popular in Questions Top

dotdotdotPaul
Okay, I'm having a heck of a time trying to figure out how to best handle the validation of belongs_to associations in Ecto. I'm sure I'...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
quazar
How to set Jason to encode all fields in ecto schema, I don’t care about security and implementing only is taking long list of attributes...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
freewebwithme
Using vs code and installed ElixirLS: support and debugger. And I got an error popped up on start up says Failed to run ‘elixir’ comma...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
siddhant3030
Hi, I have to write a raw query for one of my project. But till now I have used ecto queries and don’t have much experience writing raw ...
New

Other popular topics Top

JDanielMartinez
Hi! May someone helps me, please! I have two apps into an umbrella project: the first one is Database, which manages queries, and the se...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: https://hexdocs.pm/ecto/Ecto.Schema.html#module-...
New
ycv005
I have followed this StackOverflow post to install the specific version of Erlang. And When I am running mix ecto.setup then getting fol...
New
fireproofsocks
I’m working on defining a simple Ecto schema for a table (in PostGres), but I don’t see where I can define a column as NOT NULL. Conside...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
vonH
When I run the Plug and I recompile I wind up having to use Ctrl C to quit iex and start again. Witht the help of rlwrap I can use the cu...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New

We're in Beta

About us Mission Statement