Migrating Kafka C#/.NET Applications to HPE Ezmeral Data Fabric Streams
With some modification, you can use existing confluent-kafka C#/.NET applications to consume and produce topics in HPE Ezmeral Data Fabric Streams. The HPE Ezmeral Data Fabric Streams C#/.NET Client is a binding for Apache librdkafka that works with HPE Ezmeral Data Fabric Streams.
Migrating a .NET 4.5 or 4.6 Application
To migrate an existing .NET 4.5 or 4.6 application:
- Install and configure the HPE Ezmeral Data Fabric Streams C Client. See Configuring the HPE Ezmeral Data Fabric Streams C Client.
- Replace the librdkafka.dll with the HPE Ezmeral Data Fabric librdkafka 0.11.3 from /bin/.../runtimes/<win7-x64>/<native folder>.
- Add a symlink from the MapRClient.dll to the librdkafka.dll.
- Restart the application.
Migrating a .NET Core Application1
To migrate an existing .NET Core application:
- Install and configure the HPE Ezmeral Data Fabric Streams C Client. See Configuring the HPE Ezmeral Data Fabric Streams C Client.
- Replace the librdkafka.dll with the MapR librdkafka 0.11.3 from USER_HOME/.NUGET/PACKAGES/LIBRDKAFKA.REDIST/0.11.3/runtimes/<platform>/<native folder>.
- Add a symlink from the MapRClient.dll to the librdkafka.dll.
- Restart the application.
Migrating a .NET Core Application2
To migrate an existing .NET Core application:
- Remove all .so files from the ~/.NUGET/PACKAGES/LIBRDKAFKA.REDIST/0.11.3/runtimes/<platform>/<native folder> directory.
- Install and configure the HPE Ezmeral Data Fabric Streams C Client. See Configuring the HPE Ezmeral Data Fabric Streams C Client.
- Replace the librdkafka.dll with the MapR librdkafka 0.11.3 from USER_HOME/.NUGET/PACKAGES/LIBRDKAFKA.REDIST/0.11.3/runtimes/ directory.
- If the MapR Client doesn not install into the ID search path, add a symlink from the MapRClient.dll to the l/usr/local/lib.
- Restart the application.
General Migration Information
- When you refer to a topic in the application code, include the path and name of the stream
in which the topic is located:
/<path and name of stream>:<name of topic>
For example, you might have a stream in a MapR cluster that is named stream_A, and the stream might be in a volume named IoT and in a directory named automobile_sensors. You want to redirect a producer application to a topic in that stream. The syntax of the path to the topic might look like this:
/mapr/IoT/automobile_sensors/stream_A:<name of topic>
.NOTEOptionally, use thestreams.consumer.default.stream
andstreams.producer.default.stream
configuration parameters. When you configure these parameters, applications can specify just the topic name to write or read from the default stream. - Review the APIs that are supported and make changes to your application, as needed. See API for HPE Ezmeral Data Fabric Streams C#/.NET.
- See Configuration Properties for HPE Ezmeral Data Fabric Streams C#/.NET Client for the list of supported configuration
parameters and make changes to your application, as needed. NOTESSL-related configuration parameters are ignored. When you set these parameters, the HPE Ezmeral Data Fabric Streams Client issues a warning indicating that the parameters are not supported.