Tools for testing a Kafka Cluster - apache-kafka

I'm currently using Gatling & a home grown solution, but I was wondering if Kafka offer anything?

Yes, Kafka has both kafka-{producer,consumer}-perf-test.sh included

Related

UI tools to connect to strimzi kafka cluster

Looking for UI tools to connect to Strimzi kafka cluster to get visibility to kafka topics, read messages within topics, broker and partition details and ability to connect with or without SSL/SASL connections.I have already tried using kafka tool and facing issues with it hence looking for an alternative). Kindly suggest some UI tools for the same ? ( similar to confluent center/kafka tool) which are either free or with minimal cost.
There are no UI tools for now but a new issue was started about it. I would follow it https://github.com/strimzi/strimzi-kafka-operator/issues/3287
There is a project in early stage of developement: https://github.com/strimzi/strimzi-ui
Strimzi UI provides a way for managing Strimzi and Kafka clusters (+
other components) deployed by it using a graphical user interface.
But unforunately in the moment of writing:
This UI is currently not in a state where it can be used. Is it still
early on in it's development but we hope to have something usable very
soon!
So, keep an eye on it.

Can kafka server be installed with dotNet

Can kafka server be installed with dotnet?
I'm finding it goes with JVM. Without JVM can it work in dotnet tech stack?
Kafka Server requires the JVM, yes. It cannot run without the JVM.
Kafka Clients support multiple languages, including .NET
Currently microsoft kafka client is not actively developed/supported. Instead the author recommends to use rdkafka-dotnet It has better documentation and is easy to use
https://github.com/Microsoft/CSharpClient-for-Kafka
https://github.com/ah-/rdkafka-dotnet
But confluent has a great .net kafka library. It's easy to implement consumer groups and highly configurable.
https://www.nuget.org/packages/Confluent.Kafka/

Consuming a Kafka Topic from Salesforce

We have a microservice architecture and we want to publish events into Kafka topics to then be consumed by Salesforce. What is the best approach to do this ? Is there any example Apex code that do that ?
Best Regards.
Please note that most Salesforce Kafka connectors are using the Salesforce Streaming API for which following limits apply and might be very limiting:
https://developer.salesforce.com/docs/atlas.en-us.188.0.api_streaming.meta/api_streaming/limits.htm
Kafka Salesforce connector paid version is available on Confluent Connector Hub.As of now ,Kafka Salesforce connector is not available on any Open Source Platforms but some source code is available on GitHub. You can use and customized the code according to your requirement.
https://github.com/Entanet/kafka-salesforce-connect
https://github.com/nodefluent/salesforce-kafka-connect
https://javalibs.com/artifact/com.github.jcustenborder.kafka.connect/kafka-connect-salesforce

Kafka - Confluent Hub - Exploit only part of it

I already saw a similar question in SO, but not clearly answer my doubts.
We have different Kafka clusters and lot of exploitation operational habits around it. We have our way to start/stop the cluster, lots of exploit scripts that help maintain the cluster etc..
Now we would like to use Kafka connect connectors for new needs, but from what I saw, Kafka connect is extremely coupled to confluent-hub.
It's like I can't even use the connectors without having to install a full operational confluent-hub.
This makes it very difficult for us to use Kafka connect connectors, I understand that confluent-hub might be a framework that help running those connectors, but it's like we can't even use a dissociated Kafka cluster ( a one not exploited by confluent-hub..).
But maybe I miss something..
Do you know if there is any way to use properly Kafka connectors on a already existing Kafka cluster ( completely independent from confluent-hub) ?
EDITED :
It's more a question regarding the high coupled behaviour between confluent-hub and Kafka-connect. All the features that comes with Kafka connect ( distributed workers to handle different fail over scenarios, etc..) are not usable without confluent-hub, thus a "need" to have Kafka cluster running exclusively via confluent-hub, which is not an easy task when you already have an existing big Kafka cluster with lots of OPS habits on it.
Kafka Connect is part of Apache Kafka. It's a pluggable framework for streaming integration between systems in and out of Kafka.
To use Kafka Connect you need connectors for the specific technology with which you want to integrate. For example, S3 sink, Elasticsearch sink, JDBC source or sink, and so on.
The connector API is part of Apache Kafka, and available for anyone who wants to develop a connector.
Connectors are written by various people and organisations, and available in various different ways. How you obtain a connector depends on which connector you want, how its licensed, and how the author has made it available for distribution. It could be you go to github, clone the repo and build the JAR. It could be you can download the JAR directly.
All that Confluent Hub does is make lots of these connectors available for you in one place, easily searchable, and with an optional CLI tool that will install them for you.
Do you have to use Confluent Hub? No, not at all. Might it make your life easier in locating connectors that you want to use, and make it easier to install them? Hopefully :)
Disclaimer: I work for Confluent.

Upgrading Kafka client from 0.8.2.0 to 0.11.0.0

Currently, at my company we are migrating from Kafka 0.8 to 0.11, brokers migration steps and clearly stated in kafka documentation here
What I am stuck in is, upgrading the kafka clients (producers, consumers, spark-streaming), I don't find any documentation/ articles listing out clearly what are the required changes or steps to follow to upgarde the client, all what I found is the java doc Producer Client
What I did so far is to change the kafka client version in my gradle to kafka-clients-0.11.0.0, and everything from the compilation point of view went fine with no code changes at all.
What I seek help with is, is there any expected problems I should take care of, any pointers for client changes other than the kafka-client version?
I went through lots of experiments to get this done.
For the consumers and producers, I just used the kafka consumers and producers 0.11.0.
The trick part was replacing spark-streaming, spark-streaming latest version only support upto kafka 0.10.X, which doesn't contains any updates related to the new broker.
What I recommend here, if you are about to write an application from scratch and your main goal is realtime streaming go for kafka-streaming API, it is just AWESOME!, if you already have spark streaming app (which was my case), you should either judge which is more important than the other wether to get stuck with the kafka-broker version 10.X and spark-streaming which was [experimental][1] btw.
The benefits of having the streaming inside kafka not spark the following:
Kafka streaming is a normal jar that can be injected in any java application, so you don't care that much about deployment, and environment
Auto-scaling is so easy when using kafka-streaming using any scaleset provided by any cloud service provider, unlike scaling a HDP cluster.
Monitoring using something like prometheus would be much easier.