写点什么

Apache Dubbo---- RPC 通信

用户头像
是老郭啊
关注
发布于: 15 小时前
Apache Dubbo---- RPC通信

一、什么是 Dubbo

Apache Dubbo 是一款微服务开发框架,它为我们实行了 RPC 通信微服务治理。同时 Dubbo 是高度可扩展的,可以基于 dubbo 提供的服务治理能力扩展实现服务发现、负载均衡、流量调度等服务治理诉求。

二、Dubbo 解决了什么痛点

Dubbo 提供了从服务定义、服务发现、服务通信到流量管控等几乎所有的服务治理能力,并且尝试从使用上对用户屏蔽底层细节,以提供更好的易用性。当传统的单一服务垂直应用架构满足不了我们日益增长的需求时,dubbo 就产生了。

Dubbo 提供了三大核心能力:

  • 远程通讯(RPC)

  • 集群容错(负载均衡、失败容错、地址路由、动态配置等)

  • 自动发现(基于注册中心目录服务,使服务消费方能动态查找服务提供方)

单一应用架构

垂直应用架构

分布式服务架构


流动计算架构


三、Http 与 RPC 对比


四、怎么使用 Dubbo 进行 RPC 通信

本次我们介绍 dubbo 的面向接口的远程过程方法调用. Dubbo 采用全 Spring 配置的方式,透明化接入应用,因此我们只需要在 Spring 项目加载 Dubbo 的配置即可。本次示例的注册中心采用的是 nacos ,读者也可以切换成 zk 等注册中心。


1.导入 dubbo 所依赖的包
implementation 'org.apache.dubbo:dubbo-registry-nacos:2.7.5'implementation 'org.apache.dubbo:dubbo-spring-boot-starter:2.7.5'
复制代码
2.在配置文件配置 dubbo


dubbo.application.name=providerdubbo.registry.address=nacos://127.0.0.1:8848?namespace=xxxxxdubbo.provider.check=false #默认不检查 dubbo服务是否注册成功
复制代码


3.在程序启动入口 Application 依赖注入


import iorg.apache.dubbo.config.spring.context.annotation.EnableDubbo;import org.springframework.boot.SpringApplication;@EnableDubbopublic class Application{   public static void main(String[] args) {     SpringApplication.run(Application.class, args);   }}
复制代码


4.创建一个项目共享的接口
public interface CommonService {    String helloWord(String var1);}
复制代码


5.服务提供者实现该接口
import org.apache.dubbo.config.annotation.Service;
/** * 注入 dubbo,为服务提供者的实现方法 * timeout 设置为 60s * @author gyf */@Service(timeout = 60 * 1000)public class CommonServiceImpl implements CommonService{
@Override public String helloWord(String name){ return "Hello Word "+ name;
}}
复制代码


6.在消费者调用该接口

消费者的配置与服务提供者大致相似,修改配置即可

dubbo.application.name=consumerdubbo.registry.address=nacos://127.0.0.1:8848?namespace=xxxxxdubbo.reference.check=falsedubbo.consumer.check=false
复制代码


import com.alibaba.dubbo.config.annotation.Reference;
public class CommonServiceProvide{ @Reference private CommonService commonService; private void getHelloWord(){ commonService.helloWord("dubbo"); }}
复制代码


发布于: 15 小时前阅读数: 6
用户头像

是老郭啊

关注

一位头发日渐稀疏的 90后 IT男 2020.04.07 加入

当你焦虑大于努力时,你将沦为焦虑本身。

评论

发布
暂无评论
Apache Dubbo---- RPC通信