berg369
2020-07-25 03:45
采纳率: 85.7%
浏览 190

dubbo调用(API方式)如何缓存ServiceConfig对象?

dubbo官方文档中,API方式调用代码示例如下:

...以上有服务提供者协议配置代码,此处省略

// 服务提供者暴露服务配置
ServiceConfig<XxxService> service = new ServiceConfig<XxxService>(); // 此实例很重,封装了与注册中心的连接,请自行缓存,否则可能造成内存和连接泄漏
service.setApplication(application);
service.setRegistry(registry); // 多个注册中心可以用setRegistries()
service.setProtocol(protocol); // 多个协议可以用setProtocols()
service.setInterface(XxxService.class);
service.setRef(xxxService);
service.setVersion("1.0.0");

// 暴露及注册服务
service.export();

这里的自行缓存应该怎么做呢?
我们会有很多接口需要暴露为服务,每个服务要初始化一个ServiceConfig对象吗?看这个写法是要的(接口作为ServiceConfig的参数?),那怎么缓存呢?
请指教!谢谢!

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2020-07-25 11:26
    已采纳

    可以用一个单例模式的对象,保存new创建的serviceconfig

    class Singleton
    {
    private static ServiceConfig<XxxService> service = new ServiceConfig<XxxService>();
    private Singleton() { }
    public static ServiceConfig<XxxService> GetServiceConfig() { return service; }
    }
    
    评论
    解决 无用
    打赏 举报
  • 查看更多回答(2条)

相关推荐 更多相似问题