Provider和Consumer的搭建

Posted myitnews

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Provider和Consumer的搭建相关的知识,希望对你有一定的参考价值。

创建三个Maven Project:

  • dubbo-service:公共模块,包括服务接口(packaging:jar)
  • dubbo-service-impl:服务提供方,提供服务接口的具体实现,需要依赖dubbo-service(packaging:jar)
  • dubbo-consumer:服务调用方,需要依赖dubbo-service(packaging:war)

一、dubbo-service

public interface DemoService 
    public String demo(String name);

二、dubbo-service-impl

1. pom.xml配置

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.linhw.demo</groupId>
    <artifactId>dubbo-service-impl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  
    <dependencies>
        <dependency>
            <groupId>com.linhw.demo</groupId>
            <artifactId>dubbo-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <!-- dubbo依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.0</version>
        </dependency>

        <!-- 访问 zookeeper 的客户端 jar -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
    </dependencies>
</project>

2. 接口实现类

public class DemoServiceImpl implements DemoService

    @Override
    public String demo(String name) 
        return "dubbo RPC " + name;
    

3. 新增配置文件dubbo-provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 给当前provider自定义一个名字 -->
    <dubbo:application name="demo-provider"/>
    <!-- 配置注册中心 -->
    <dubbo:registry address="192.168.178.5:2181" protocol="zookeeper"/>
    <!-- 配置协议及端口 -->
    <dubbo:protocol name="dubbo" port="28888"/>
    <!-- 注册功能 -->
    <bean id="demoService" class="com.linhw.demo.service.impl.DemoServiceImpl"/>
    <dubbo:service interface="com.linhw.demo.service.DemoService" ref="demoService"/>
</beans>

4. 启动容器

(1) 通过 spring 方式启动:对dubbo-provider.xml的位置没有要求

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("dubbo-provider.xml");
ctx.start();
System.out.println("启动成功");
System.in.read();

(2) 使用 dubbo 提供的方式启动(推荐使用这种方式):要求 dubbo-provider.xml必须放入类路径下/META-INF/spring/*.xml

Main.main(args);

查看是否发布成功,可以启动Dubbo Admin,在管理控制台查看。

三、dubbo-consumer

 

以上是关于Provider和Consumer的搭建的主要内容,如果未能解决你的问题,请参考以下文章

dubbo + zookeeper + spring boot搭建过程&填坑记录

SpringCloud+Eureka+Feign+Ribbon的简化搭建流程,加入熔断,网关和Redis缓存[2]

包含 Context.Provider 和 Context.Consumer 的 React Context 测试组件

Dubbo+Zookeeper平台的搭建

SpringBoot与Dubbo整合-项目搭建

React中的connect使用(Provider+Consumer例子 以及 contextType+this.context例子)