Dubbo

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档



提示:以下是本篇文章正文内容,下面案例可供参考

一、Dubbo了解

1.RPC-远程过程调用协议

PRC 是 Remote Procedure Call Protocol ,称为:远程过程调用协议。是一种通过网络从
远程计算机程序上请求服务,而不需要了解底层网络技术的协议。该协议允许运行于一台计
算机的程序调用另一台计算机的程序。

2.Dubbo服务实现原理

Dubbo 的底层实现是动态代理,由 Dubbo 框架创建远程服务(接口)对象的代理对象,
通过代理对象调用远程方法。

在这里插入图片描述

3.长连接与短连接

Dubbo 协议采用单一长连接和异步通讯,适合于小数据量大并发的服务调用

在这里插入图片描述

4.Dubbo组件

在这里插入图片描述

二、Dubbo直连使用

1.服务提供者创建

I.创建mavenweb项目

II.引入依赖

	<!--单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!--spring依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.16.RELEASE</version>
    </dependency>
    <!--springmvc依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.16.RELEASE</version>
    </dependency>
    <!--dubbo服务依赖-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.6.2</version>
    </dependency>
    <!--Dubbo 协议底层网络通信默认使用的是 netty-->
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>
      <version>4.1.18.Final</version>
    </dependency>
    <!--动态代理依赖-->
    <dependency>
      <groupId>org.javassist</groupId>
      <artifactId>javassist</artifactId>
      <version>3.20.0-GA</version>
    </dependency>

III.spirng配置

	<!--声明服务的名称:自定义的名字表示当前服务的提供者
        name: 自定义的服务名称,一般可以使用项目名称,在好事唯一值,
              服务名称只提供给dubbo框架内部使用,区别是消费者还是服务者-->
    <dubbo:application name="Dubbo2" />
    <!--声明服务的接口信息,暴露服务
    interface:服务接口的全限定名称
    protocol: 访问这个dubbo服务使用的全限定名称
    registry: 指定使用注册中心,点对点的方式中,不使用注册中心的,赋值为N/A
    ref: 指定接口实现类地bean的id
    -->
    <dubbo:service interface="chong.jiang.service.WeatherService"
                   protocol="dubbo" registry="N/A" ref="weatherServiceImpl" />

    <!--声明服务接口的实现类对象,真正提供接口的功能实现-->
    <bean id="weatherServiceImpl" class="chong.jiang.service.impl.WeatherServiceImpl" />

我自己服务提供者的工具类结构
在这里插入图片描述

IIII.将服务接口导出,供消费者调用

这里我直接导出到了maven仓库中了,也可以导出成单个jar包,然后导入到消费者里
在这里插入图片描述

2.服务消费者创建

I.创建mavenweb项目

II.引入依赖

在消费者依赖的基础上添加服务接口的依赖
	<!--这是我自己在maven仓库中的服务接口依赖,请使用自己的-->
    <dependency>
      <groupId>chong.jiang</groupId>
      <artifactId>Dubbo2</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency>

III.spirng配置


    <!--声明服务的名称-->
    <dubbo:application name="Dubbo" />

    <!--声明要使用的服务dubbo服务
        interface:dubbo服务接口全限定名称
        id: dubbo创建的代理对象id,使用这个id访问代理对象
        url: 点对点方式中,访问远程服务的地址
        check: 检查服务是否可用
        -->
    <dubbo:reference interface="chong.jiang.service.WeatherService"
                     id="remoteWeatherService" url="dubbo://localhost:20880"
                     check="true"
    />

    <!--声明InvokeService  这里是自己封装了远程服务-->
    <bean id="invokeService" class="chong.jiang.InvokeService">
        <property name="remoteWs" ref="remoteWeatherService"/>
    </bean>

封装了的远程服务类
在这里插入图片描述

IIII.服务使用

在这里插入图片描述

3.dubbo 常用标签

I.公用标签

<dubbo:application name=”服务的名称”/>		<!--dubbo服务声明及配置-->
<dubbo:registry address=”ip:port” protocol=”协议”/>			<!--注册中心声明及配置-->

II.服务提供者标签

<dubbo:protocol name=”dubbo” port=”20880”/>			<!--配置访问服务提供者的协议信息-->
<dubbo:service interface=”服务接口名” ref=”服务实现对象 bean”>			<!--配置暴露的服务-->

III.服务消费者标签

<dubbo:reference id=”服务引用 bean  id” interface=”服务接口名”/>			<!--配置服务消费者引用远程服务-->
<dubbo:reference interface="com.foo.BarService" check="false" />	<!--check检查服务是否可用,需要报错否-->
<dubbo:reference retries=”5”>			<!--retries 表示重连次数,不包括第一次-->

三、注册中心Zookeeper

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值