成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

NettyClient端調(diào)用remote service的方式

sean / 3318人閱讀

摘要:對于發(fā)布的服務(wù),使用的接口暴露給使用者,使用者引入該服務(wù)接口,然后配置接口。不使用的方式這個(gè)是最直接的使用方式,通過的返回代理類,然后直接調(diào)用。以下幾種就是使用的調(diào)用方式。

使用netty開發(fā)rpc的話,對于client端來說,面臨的一個(gè)問題就是client如何方便地對遠(yuǎn)程服務(wù)進(jìn)行調(diào)用。java的rmi通過代理模式給了很好的實(shí)例,通過代理,使得調(diào)用遠(yuǎn)程服務(wù)像調(diào)用本地服務(wù)一樣,對使用者來說,非常簡便。對于發(fā)布的服務(wù),使用java的接口暴露給使用者,使用者引入該服務(wù)接口,然后配置接口。這里簡述了幾種具體的調(diào)用方式。

不使用ioc的方式
public void proxyDemo(){
        HelloService helloService = client.rpcProxy(HelloService.class, Pair.of(500L, TimeUnit.MILLISECONDS));
        System.out.println(helloService.say("proxy demo"));
    }

這個(gè)是最直接的使用方式,通過jdk的proxy返回代理類,然后直接調(diào)用。不過,一般工程里頭涉及多次調(diào)用的話,每次new一個(gè)代理類比較浪費(fèi),可以考慮集成ioc容器。以下幾種就是使用spring的調(diào)用方式。

java config方式
    @Bean
    public HelloService buildHelloService(RpcProxyFactory rpcProxyFactory){
        return rpcProxyFactory.proxyBean(HelloService.class,100/*timeout*/);
    }

好處是,可以直接共用service-api的接口,不好的是java config稍微不如xml直觀,不過適應(yīng)就好

xml方式

        
            com.codecraft.rpc.service.demo.HelloService
        
        
            200
        
    

這種方式就是配置感覺略微復(fù)雜點(diǎn),不過還可以接受,具體可參照navi

自定義schema的xml

參照dubbo的方式,自定義schema,dubbo-config-spring,這種方式是使用簡單,但是擴(kuò)展spring的xsd略微復(fù)雜。

client再次定義接口

使用spring的scanner的方式,client端再次寫接口添加注解,然后client端掃描裝配,重復(fù)定義,不建議用,具體可參照rpc-spring

參考

Spring bean 實(shí)現(xiàn)生命周期的三種解決方案

dubbo是如何“插入”到spring框架中的

Dubbo之旅--啟動(dòng)解析(DubboBeanDefinitionParser#parse)

spring hessian 自動(dòng)掃描注入

hessian-spring

rpc-spring

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65762.html

相關(guān)文章

  • Dubbo服務(wù)消費(fèi)者調(diào)用過程

    摘要:先來說第種類型,即遠(yuǎn)程通信的,看的源碼,調(diào)用過程大致內(nèi)容就是將通過遠(yuǎn)程通信將信息傳遞給服務(wù)器端,服務(wù)器端接收到該信息后,找到對應(yīng)的本地,然后通過反射執(zhí)行相應(yīng)的方法,將方法的返回值再通過遠(yuǎn)程通信將結(jié)果傳遞給客戶端。 showImg(https://segmentfault.com/img/remote/1460000015285374?w=640&h=363); 上圖是服務(wù)消費(fèi)的主過程:...

    B0B0 評論0 收藏0
  • 使用Protostuff序列化

    摘要:序調(diào)用,有多種序列化的方式,通用如,使用的方面的,比如默認(rèn)的序列化,比如還有跨語言的,比如。所以也一直在尋找運(yùn)行效率與開發(fā)效率兼得的序列化方式。偶爾在網(wǎng)上看到,覺得找到了一直在找的這種序列化方式。 序 rpc調(diào)用,有多種序列化的方式,通用如json,mongodb使用的bson;java方面的,比如Java默認(rèn)的序列化,比如hessian;還有跨語言的,比如thrift、protoco...

    ephererid 評論0 收藏0
  • Dubbo 源碼分析 - 服務(wù)引用

    摘要:如果有多個(gè)注冊中心,多個(gè)服務(wù)提供者,這個(gè)時(shí)候會得到一組實(shí)例,此時(shí)需要通過集群管理類將多個(gè)合并成一個(gè)實(shí)例。并保留服務(wù)提供者的部分配置,比如版本,,時(shí)間戳等最后將合并后的配置設(shè)置為查詢字符串中。 1. 簡介 在上一篇文章中,我詳細(xì)的分析了服務(wù)導(dǎo)出的原理。本篇文章我們趁熱打鐵,繼續(xù)分析服務(wù)引用的原理。在 Dubbo 中,我們可以通過兩種方式引用遠(yuǎn)程服務(wù)。第一種是使用服務(wù)直聯(lián)的方式引用服務(wù),第...

    Apollo 評論0 收藏0
  • Java 遠(yuǎn)程通訊技術(shù)及原理分析

    摘要:對于與而言,則可以看做是消息傳遞技術(shù)的一種衍生或封裝。在生產(chǎn)者通知消費(fèi)者時(shí),傳遞的往往是消息或事件,而非生產(chǎn)者自身。通過消息路由,我們可以配置路由規(guī)則指定消息傳遞的路徑,以及指定具體的消費(fèi)者消費(fèi)對應(yīng)的生產(chǎn)者。采用和來進(jìn)行遠(yuǎn)程對象的通訊。 消息模式 歸根結(jié)底,企業(yè)應(yīng)用系統(tǒng)就是對數(shù)據(jù)的處理,而對于一個(gè)擁有多個(gè)子系統(tǒng)的企業(yè)應(yīng)用系統(tǒng)而言,它的基礎(chǔ)支撐無疑就是對消息的處理。與對象不同,消息本質(zhì)上...

    rozbo 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<