Dubbo简介什么是Dubbo?简介:ApacheDubbo是一个为大规模微服务实践提供高性能RPC通信、流量管理、可观察性等解决方案的微服务框架,涵盖Java、Golang等语言SDK实现。特点:RPC通信框架、服务注册中心、原生云支持(Dubbo3.0)主流版本:2.7.x、3.0**SD??K:**官方SDK支持开发语言:Java、Golang厂商:阿里巴巴、饿了么、钉钉、工商银行、小米等注:本文后续主要基于2.7.x版本。Dubbo和Eureka比较DubboEureka(Spring-Cloud-Netflix)注册中心ZKEurekaCAPCPAP容错机制通过Hytrix支持负载均衡通过Ribbon封装支持服务注册和发现协议NettyClient实现使用HttpClient社区支持Apache不更新总结:Dubbo与Eureka相比,其实一个封装好的微服务中间件和定制化的RPC通信dubbo协议,相比HTTP协议会有一定的性能提升。但是我们应该是微服务本身的一个细粒度的、可定制的组件,这对Eureka来说更强大。Dubbo用例下面是一个使用dubbo作为RPC通信的例子。一般在生产中会使用zk或者redis作为服务注册中心来存储服务信息。大致的交互图如下:三个角色:Zookeeper,作为服务注册中心,管理和维护服务列表;Provider服务提供者,发布服务;Consumer服务消费者,通过API存根,可以像调用本地方法一样调用远程方法;服务提供者服务接口定义publicinterfaceOrderService{StringcreateOrder(Stringrequest);}服务提供者实现publicclassOrderServiceImplimplementsOrderService{@OverridepublicStringcreateOrder(Stringrequest){return"createordersuccess,request:"+request;}}服务启动类publicclassRpcDubboProvidorApp{publicstaticvoidmain(String[]args)throwsIOException{ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(newString[]{"classpath:dubbo.xml"});context.start();系统.in.read();//按任意键退出}}配置文件
