关于写dubbbo 的rest风格的 demo经历

       来公司实习,过了没多久。leader给我发了一份项目代码,让我仔细研读。看一看现在公司写项目都用到了哪些东西。大概看了一遍。有几个注解以前没有接触过。分别是@path ,@post @consumers回去了解了一下是javax提供的注解。与dubbo一起使用可以提供rest风格的远程调用。

       因为以前没了解过,所以准备写一个小demo试一下。那成想从网上搜索资料,geihub上找例子。搞了一天也没写出来,甚至都迷糊,这rest风格url是干嘛用的都不知道了。已经开始怀疑自己的智商了。当时的步骤是 :引入dubbo依赖,引入javax依赖,然后修改配置文件,但是我当时因为粗心大意。没有完整的阅读官方文档,只把协议名改成了rest,然后就以为OK 了(顺便提醒一下,dubbo在由dubbo当当团队维护后整合了rest风格url。之前可能没有可以再dubbbo依赖包下META-INF/dubbo/com.alibaba.dubbo.rpc.Protocol配置文件里看到,比如2.5.10版本里面就没有rest协议。我用的是2.8.4版本并没有上传到中央仓库中,需要自己下载编译,再添加进maven的本地仓库中,才可以只用)。

       然而我只阅读了文档的上面一小半部分,下面那部分的话才是最重要的。dubbo目前提供了5中嵌入式rest server实现,并同时支持外部应用容器来做rest server实现。比较熟悉的就是tomcat了。用嵌入式tomcat来做rest server实现(spring boot 提供的tomcat应该就是嵌入式tomcat),xml需要这样配置 <dubbo:protocol name="rest" server="tomcat"/> 通过server这个属性来实现。如果不配置server属性默认的就是jetty,而且rest协议默认采用80端口默认服务。修改可以配置port属性。(还需要注意的是嵌入式tomcat,跟平时用到的tomcat容器不同,它在这里默认在80端口提供rest服务,个人理解,如有不对,欢迎指点)同时也可以用外部tomcat容器做rest server实现。这样都配置好了以后,在浏览器输入地址才会的到正确的返回信息。ok,就这样吧。

猜你喜欢

转载自blog.csdn.net/qq_35368651/article/details/81212050