RPC:远程过程调用:实现跨工程,跨JVM的调用技术;
provider :提供服务的服务方
cousunmer:调用远程服务的消费方
registry :服务注册与发现的注册中心
monitor:统计服务调用次数与时间的调用中心
1.在生产中,我们都会使用zookeeper的注册中心,所有必须搭建zookeeper 注册中心,在我的随笔分布式中有关于zookeeper在linux的搭建!
2.搭建完成后,开始我们的Java代码:需要(1).服务端工程(2).消费者工程(3).interface接口----->服务端通过把接口发布到zookeeper,消费端进行通过zookeeper调用服务端的工程,服务端和消
费端是通过这个相同的接口进行数据的调用的!
3.服务端和消费端都必须导入pom依赖(这个看自己的版本):
<dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> </exclusions> </dependency> <!-- zookeeper --> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.10</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>netty</artifactId> </exclusion> </exclusions> </dependency>
4.接下来是服务端的配置文件:
<!-- 配置服务端,基于注解 --> <dubbo:application name="provider"/> <!-- 注册中心 ,基于zookeeper--> <dubbo:registry address="zookeeper://192.168.241.129:2181"/> <!--<dubbo:protocol name="dubbo" port="20880"/> --> <!-- 传统的xml配置 --> <!-- 配置接口地址+实现类(spring注册bean) --> <dubbo:service interface="com.project.provider.ProviderInterface" ref="providerService"/> <!-- <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>--> <!-- 注解扫描的方式,将类作为服务进行发布,实现的服务方法中必须加入@service注解,切记,这个注解是alibaba的service注解 --> <!-- <dubbo:annotation package="com.cim.serviceimpl"></dubbo:annotation>-->
5.消费端的配置文件
<!-- 配置消费端,基于注解 --> <dubbo:application name="customer"/> <!-- 注册中心 ,基于zookeeper--> <dubbo:registry address="zookeeper://192.168.241.129:2181"/> <!--<dubbo:protocol name="dubbo" port="20880"/> --> <!-- 传统的xml配置 消费端--> <dubbo:reference id="provider" interface="com.project.provider.ProviderInterface"/> <!-- 注解扫描的方式,将类作为服务进行发布, 消费端配置必须用注解方式的@reference进行调用方法 --> <!-- <dubbo:annotation package="com.cim.ys.Controller"></dubbo:annotation> -->
项目拔下来的
<!-- 配置服务应用名称 --> <dubbo:application name="${dubbo.application}" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <!-- 注册中心地址 --> <dubbo:registry protocol="zookeeper" address="${dubbo.registry.address}" group="${dubbo.registry.group}" file="dubbo-registry/dubbo-registry.properties"/> <!-- 用dubbo协议在xx端口暴露服务 --> <dubbo:protocol name="dubbo" port="${dubbo.protocol.port}" threads="40" />
原创打造,多多指教