Hi KimmKing,
On 9/1/2019 6:24 PM, KimmKing wrote:
Thanks, Scott,
Integration with other popular frameworks is always in Dubbo Ecosystem
Principles.
I am familiar with OSGi, and can you guide me how to implement this Dubbo
extensibility.
I've noticed that Dubbo uses the java ServiceLoader for extensibility.
I believe one good way to leverage the OSGi Service registry would be to
use the ServiceLoader to load (e.g.) an OSGiRegistryFactory, and then
have the impl of the OSGiRegistryFactory use the OSGi service registry
to dynamically use or create instances of (e.g.) Registry instances.
There is more to it than this, obviously, but the general point is that
the OSGi Service Registry is sufficiently dynamic that it can support
both load/start time extensibility (as ServiceLoader does) as well as
runtime extensibility (bundles and services being added and removed from
a running system).
Asynchronous events for disconnection or failure to reconnect is not supported
now, should we complete this feature first for ECF?
It would be a nice feature to have for ECF's usage of Dubbo. The main
reason is that it would allow disconnection events (and/or reconnect
failure) to be detected by clients...with the result in OSGi of
automatic unregistration of proxy service instances. This is something
that some remote services users value...i.e. the ability to detect
network failure, resulting in proxy unregistration.
Thanks,
Scott
At 2019-08-31 06:05:31, "Scott Lewis" <[email protected]> wrote: >Hi, > >I'm the project lead for the Eclipse Communication Framework [1]. >Among other things, ECF provides an implementation of the
OSGi R7 Remote >Services/Remote Service Admin specifications [2]. > >ECF supports pluggable 'distribution providers', responsible for the >rpc, serialization/marshalling, and wire protocol. We have upwards of >10
distribution providers [3] created by us and others. > >I've recently learned about Apache Dubbo, and decided to use it to >create a new ECF Remote Service Distribution Provider [4]. What this >means is that Apache
Dubbo can now be used as a distribution impl for >any OSGi remote service. This also makes it quite possible to have >Other Runtimes -> OSGi and OSGi->Other runtimes and retain all the OSGi >service dynamics,
injection through declarative services, etc. > >If the Dubbo dev community is interested, I could easily describe how >Dubbo extensibility could be exposed via the OSGi service >registry/remote services. This would
make it possible for Dubbo to be >easily extended using the OSGi service registry. > >If Dubbo folks wanted to expose Dubbo modules as OSGi bundles, I believe >this could also be easily done and would be happy to
contribute it back >to Dubbo. > >One technical question: With Dubbo, is it possible to listen for >asynchronous events (such as disconnection/failed reconnect requests) >and respond to them? If so are there docs
or examples of how to do >this? (java API best). > >Thanks. > >Scott > >[1] http://www.eclipse.org/ecf https://wiki.eclipse.org/ECF > >[2]
>https://osgi.org/specification/osgi.cmpn/7.0.0/service.remoteserviceadmin.html > >[3] https://wiki.eclipse.org/Distribution_Providers > >[4] https://github.com/ECF/DubboProvider