提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
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提供了大量能使我们快速便捷地处理数据的函数和方法。