Yes or Kafka will need it ...
As soon as your orchestrate different microservices this will happen.



> On 8. Jul 2018, at 11:33, Mich Talebzadeh <mich.talebza...@gmail.com> wrote:
> 
> Thanks Jorn.
> 
> So I gather as you correctly suggested, microservices do provide value in
> terms of modularisation. However, there will always "inevitably" be
> scenarios where the receiving artefact say Flink needs communication
> protocol changes?
> 
> thanks
> 
> Dr Mich Talebzadeh
> 
> 
> 
> LinkedIn * 
> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw
> <https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw>*
> 
> 
> 
> http://talebzadehmich.wordpress.com
> 
> 
> *Disclaimer:* Use it at your own risk. Any and all responsibility for any
> loss, damage or destruction of data or any other property which may arise
> from relying on this email's technical content is explicitly disclaimed.
> The author will in no case be liable for any monetary damages arising from
> such loss, damage or destruction.
> 
> 
> 
> 
>> On Sun, 8 Jul 2018 at 10:25, Jörn Franke <jornfra...@gmail.com> wrote:
>> 
>> That they are loosely coupled does not mean they are independent. For
>> instance, you would not be able to replace Kafka with zeromq in your
>> scenario. Unfortunately also Kafka sometimes needs to introduce breaking
>> changes and the dependent application needs to upgrade.
>> You will not be able to avoid these scenarios in the future (this is only
>> possible if micro services don’t communicate with each other or if they
>> would never need to change their communication protocol - pretty impossible
>> ). However there are ways of course to reduce it, eg kafka could reduce the
>> number of breaking changes or you can develop a very lightweight
>> microservice that is very easy to change and that only deals with the
>> broker integration and your application etc.
>> 
>>> On 8. Jul 2018, at 10:59, Mich Talebzadeh <mich.talebza...@gmail.com>
>> wrote:
>>> 
>>> Hi,
>>> 
>>> I have created the Kafka messaging architecture as a microservice that
>>> feeds both Spark streaming and Flink. Spark streaming uses micro-batches
>>> meaning "collect and process data" and flink as an event driven
>>> architecture (a stateful application that reacts to incoming events by
>>> triggering computations etc.
>>> 
>>> According to Wikipedia, A Microservice is a  technique that structures an
>>> application as a collection of loosely coupled services. In a
>> microservices
>>> architecture, services are fine-grained and the protocols are
>> lightweight.
>>> 
>>> Ok for streaming data among other things I have to create and configure
>>> topic (or topics), design a robust zookeeper ensemble and create Kafka
>>> brokers with scalability and resiliency. Then I can offer the streaming
>> as
>>> a microservice to subscribers among them Spark and Flink. I can upgrade
>>> this microservice component in isolation without impacting either Spark
>> or
>>> Flink.
>>> 
>>> The problem I face here is the dependency on Flink etc on the jar files
>>> specific for the version of Kafka deployed. For example kafka_2.12-1.1.0
>> is
>>> built on Scala 2.12 and Kafka version 1.1.0. To make this work in Flink
>> 1.5
>>> application, I need  to use the correct dependency in sbt build. For
>>> example:
>>> libraryDependencies += "org.apache.flink" %%
>> "flink-connector-kafka-0.11" %
>>> "1.5.0"
>>> libraryDependencies += "org.apache.flink" %%
>> "flink-connector-kafka-base" %
>>> "1.5.0"
>>> libraryDependencies += "org.apache.flink" %% "flink-scala" % "1.5.0"
>>> libraryDependencies += "org.apache.kafka" % "kafka-clients" % "0.11.0.0"
>>> libraryDependencies += "org.apache.flink" %% "flink-streaming-scala" %
>>> "1.5.0"
>>> libraryDependencies += "org.apache.kafka" %% "kafka" % "0.11.0.0"
>>> 
>>> and the Scala code needs to change:
>>> 
>>> import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer011
>>> …
>>>   val stream = env
>>>                .addSource(new FlinkKafkaConsumer011[String]("md", new
>>> SimpleStringSchema(), properties))
>>> 
>>> So in summary some changes need to be made to Flink to be able to
>> interact
>>> with the new version of Kafka. And more importantly if one can use an
>>> abstract notion of microservice here?
>>> 
>>> Dr Mich Talebzadeh
>>> 
>>> 
>>> 
>>> LinkedIn *
>> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw
>>> <
>> https://www.linkedin.com/profile/view?id=AAEAAAAWh2gBxianrbJd6zP6AcPCCdOABUrV8Pw
>>> *
>>> 
>>> 
>>> 
>>> http://talebzadehmich.wordpress.com
>>> 
>>> 
>>> *Disclaimer:* Use it at your own risk. Any and all responsibility for any
>>> loss, damage or destruction of data or any other property which may arise
>>> from relying on this email's technical content is explicitly disclaimed.
>>> The author will in no case be liable for any monetary damages arising
>> from
>>> such loss, damage or destruction.
>> 

Reply via email to