介绍:Apache Dubbo 是一款微服务框架,为大规模微服务实践提供高性能 RPC 通信、架实践流量治理、架实践可观测性等解决方案,架实践涵盖 Java、架实践Golang 等多种语言 SDK 实现。架实践 特征:RPC 通讯框架,架实践服务注册中心,架实践支持原生云(Dubbo3.0) 主流版本:2.7.x ,架实践 3.0 **SDK: **官方 SDK 支持开发语言:Java、Golang 使用厂家:阿里巴巴、架实践饿了么、架实践钉钉、架实践工商银行、架实践小米等 注:本文后续主要基于 2.7.x 版本展开。架实践 对比 Dubbo Eureka(Spring-Cloud-Netflix) 注册中心 ZK Eureka CAP CP AP 容错机制 支持 通过 Hytrix 支持 负载均衡 支持 通过 Ribbon 支持 服务注册和发现协议 封装 NettyClient 实现 使用 HttpClient 社区支持 Apache 不更新 总结:Dubbo 对比 Eureka 来说的架实践话,其实一个打包的服务器托管微服务中间件,并且定制化了 RPC 通讯 dubbo 协议对比 HTTP 协议来说性能上会有一定的提高。但是我们对于微服务本身来说应该是一个细粒度的,可以定制的组件对于 Eureka 来说这方面更强。 下面是一个通过 dubbo 作为 RPC 通讯的一个例子,一般在生产中会使用 zk 或者 redis 等,作为服务注册中心来保存服务信息。一个大致的交互图如下: 三个角色 服务接口定义 public interface OrderService { String createOrder(String request); 服务提供者实现 public class OrderServiceImpl implements OrderService { @Override public String createOrder(String request) { return "create order success, request : " + request; } 服务启动类 public class RpcDubboProvidorApp { public static void main(String[] args) throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{ "classpath:dubbo.xml"}); context.start(); System.in.read(); // 按任意键退出 } 配置文件 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> 服务配置 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> 服务调用方代码 public class RpcDubboConsumerApp { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{ "classpath:dubbo.xml"}); context.start(); // 获取远程服务代理 OrderService demoService = (OrderService) context.getBean("orderService"); // 执行远程方法 String hello = demoService.createOrder("iPhone 19"); // 显示调用结果 System.out.println(hello); } 运行一下: 你如果也能获得如下的输出表示实验成功。恭喜。 Dubbo Admin 安装 构建 mvn clean package -Dmaven.test.skip=true 启动 访问 http://localhost:8080 默认密码是 root/root 找到自己注册服务 模拟请求服务 点击上一个页面的 测试 按钮,进入如下页面,测试服务接口,如下图: 我传递参数,下面成功返回,可以在开发期间做一个简单的测试。 服务提供者和服务消费者查询如下图所示。 双击服务列表中的服务即可进入。 https://dubbo.apache.org/zh/docsv2.7/user/quick-start/ https://github.com/apache/dubbo-admin/blob/develop/README_ZH.mdDubbo 介绍
Dubbo 是架实践什么?服务提供者