Hi Jason,

Does this mean even I re-invoke the ReferenceConfig.get() the second time, the 
reference may not need to be generated, as it is already cached somewhere in 
Dubbo client holder?

Best
Dat 

On 2019/10/23 09:43:10, Jason Joo <[email protected]> wrote: 
> Hi, tien
> 
> Oh that's a plain example to illustrate it simply and clearly but in actual 
> practice we use xml / annotation or other form of integrating.
> 
> If you use annotations in spring with `@EnableDubbo` for example you can 
> refer the implementation of `ReferenceAnnotationBeanPostProcessor ` to see 
> how they would be cached.
> 
> And in this kind of use case a reference should not be necessary to be GC 
> once created because it will be reused repeatedly. Can it solve your problem?
> 
> best regards,
> 
> Jason
> 
> > On Oct 23, 2019, at 17:26, Tien Dat PHAN <[email protected]> wrote:
> > 
> > Hi Jason,
> > 
> > According to this: 
> > http://dubbo.apache.org/en-us/docs/user/demos/reference-config-cache.html
> > 
> > If we use ReferenceConfig.get(), the usage of it remains at our concern.
> > Does invoking it, every time we use the API, is sub-optimal?
> > And how the reference is GCed?
> > 
> > Best 
> > Tien Dat
> > 
> > On 2019/10/23 09:03:06, Jason Joo <[email protected]> wrote: 
> >> Hi, tien
> >> 
> >> I just curious on why you use `ReferenceConfigCache` to get the reference? 
> >> Why not using `@Reference` everywhere instead?
> >> 
> >> best regards,
> >> 
> >> Jason
> >> 
> >>> On Oct 23, 2019, at 16:55, Tien Dat PHAN <[email protected]> wrote:
> >>> 
> >>> Dear
> >>> 
> >>> Related to the topic of this thread, I have a question:
> >>> When starting the consumer, we create a reference holder that is 
> >>> initialized to hold the API reference. We use the ReferenceConfigCache to 
> >>> keep the reference cache.
> >>> We only invoke the ReferenceConfigCache.get(ReferenceConfig<OurAPI>) at 
> >>> the very beginning of the holder.
> >>> This seems to result in bad outcome if the 
> >>> ReferenceConfigCache.get(ReferenceConfig<OurAPI>) is invoked when the 
> >>> service provider is not ready (not yet exported).
> >>> 
> >>> Our questions are:
> >>> 1. If this is a bad practice, should we invoke the 
> >>> ReferenceConfigCache.get(ReferenceConfig<OurAPI>) every time we want to 
> >>> use it?
> >>> 2. If the answer to the 1. question is YES. Then our concern is: Does 
> >>> creating new API reference everytime we use it lead to sub-performance? 
> >>> And how the system can GC the connection created everytime we invoke 
> >>> ReferenceConfigCache.get(ReferenceConfig<OurAPI>)? Or we, at the consumer 
> >>> side, have to handle the connection closeness?
> >>> 
> >>> Best regards
> >>> Tien Dat
> >>> 
> >>> On 2019/10/14 09:21:14, 郑泽超 <[email protected]> wrote: 
> >>>> 
> >>>> Hello,
> >>>> You can set check=false in your reference config
> >>>> 
> >>>>> 在 2019年10月14日,下午4:32,一陣風& <[email protected]> 写道:
> >>>>> 
> >>>>> Start the client first and then start the server to report an error:
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> Failed to invoke the method getBalance in the service 
> >>>>> com.github.autfish.dubbo.service.BalanceService. No provider available 
> >>>>> for the service com.github.autfish.dubbo.service.BalanceService from 
> >>>>> registry localhost:9090 on the consumer 192.168.8.249 using the dubbo 
> >>>>> version 2.7.1. Please check if the providers have been started and 
> >>>>> registered.
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> 
> >>>>> How should I configure in yml file
> >>>> 
> >>>> 
> >> 
> >> 
> 
> 

Reply via email to