I had some back and forth last year about this, I'll forward the discussion
email chain to you privately (it was in this mailing list).

Basically, the idea was to make *DispatcherRestEndpoint* and/or
*WebMonitorExtension* more accessible so we can extend them. It didn't look
too much work on Flink's side, but of course I can't tell confidently.


 --

[image: MotaWord]
Oytun Tez
M O T A W O R D | CTO & Co-Founder
oy...@motaword.com

      <https://www.motaword.com/blog>


On Tue, Apr 21, 2020 at 11:12 AM Jeff Zhang <zjf...@gmail.com> wrote:

> I know some users do the same thing in spark. Usually the service run
> spark driver side. But flink is different from spark. Spark driver is equal
> to flink client + flink job manager. I don't think currently we allow to
> run any user code in job manager. So allow running user defined service in
> job manager might a big change for flink.
>
>
>
> Flavio Pompermaier <pomperma...@okkam.it> 于2020年4月21日周二 下午11:06写道:
>
>> In my mind the user API could run everywhere but the simplest thing is to
>> make them available in the Job Manager (where the other REST API lives).
>> They could become a very simple but powerful way to add valuable services
>> to Flink without adding useless complexity to the overall architecture for
>> just a few methods.
>> I don't know whether Spark or Beam allow you to do something like that
>> but IMHO it's super useful (especially from a maintenance point of view wrt
>> the overall architecture complexity).
>>
>> @Oytun indeed we'd like to avoid recompiling everything when a single
>> user class (i.e. not related to Flink classes) is modified or added. Glad
>> to see that there are other people having the same problem here
>>
>> On Tue, Apr 21, 2020 at 4:39 PM Jeff Zhang <zjf...@gmail.com> wrote:
>>
>>> Hi Flavio,
>>>
>>> I am curious know where service run, Do you create this service in UDF
>>> and run it  in TM ?
>>>
>>> Flavio Pompermaier <pomperma...@okkam.it> 于2020年4月21日周二 下午8:30写道:
>>>
>>>> Hi to all,
>>>> many times it happens that we use Flink as a broker towards the data
>>>> layer but we need to be able to get some specific info from the
>>>> data sources we use (i.e. get triggers and relationships from jdbc).
>>>> The quick and dirty way of achieving this is to run a Flink job that
>>>> calls another service to store the required info. Another solution could be
>>>> to add a custom REST service that contains a lot of dependencies already
>>>> provided by Flink, with the risk of having misaligned versions between the
>>>> 2..
>>>> It would be much simpler to enable users to add custom REST services to
>>>> Flink in a configurable file. something like:
>>>> /myservice1/* -> com.example.MyRestService1
>>>> /myservice2/* -> com.example.MyRestService2
>>>>
>>>> The listed classes should be contained in a jar within the Flink lib
>>>> dir and should implement a common interface.
>>>> In order to avoid path collisions with already existing FLINK services,
>>>> the configured path can be further prefixed with some other token (e.g.
>>>> /userapi/*).
>>>>
>>>> What do you think about this? Does it sound reasonable to you?
>>>> Am I the only one that thinks this could be useful for many use cases?
>>>>
>>>> Best,
>>>> Flavio
>>>>
>>>
>>>
>>> --
>>> Best Regards
>>>
>>> Jeff Zhang
>>>
>>
>
> --
> Best Regards
>
> Jeff Zhang
>

Reply via email to