Dubbo 项目学习(二) 发布Dubbo服务

引言

  本文主要来学习下发布Dubbo服务,主要参考dubbo开发包里面的demo源码;由浅入深的讲解下这个demo。

配置依赖

  首先创建一个maven项目dubbo-demo-provider(基于springBoot),修改pom.xml配置依赖项目,引入所需要的包。

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.46</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.0.35.Final</version>
        </dependency>

定义接口服务

  简单的定义一个服务接口,如下所示:

package com.dubbo.provider.service;

/**
 * 服务提供者接口
*/
public interface DemoProviderService {

    public String sayHello(String name);
}

  完善刚刚定义服务接口的实现类,如下所示:

package com.dubbo.provider.service.impl;

import com.dubbo.provider.service.DemoProviderService;

/**
 * 服务提供者接口实现类
 */
public class DemoProviderServiceImpl implements DemoProviderService {

    @Override
    public String sayHello(String name) {
        return "服务员001";

    }
}

  创建dubbo配置文件,dubbo-demo-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.xsd
                           http://code.alibabatech.com/schema/dubbo  http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

<!--  提供方应用名称,用于计算依赖关系  -->
<dubbo:application name="demo-provider" />

<!--  使用zookeeper注册中心暴露服务地址  -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />

<!-- 使用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />

<!--  service实现类作为本地一个bean  -->
<bean id="demoProviderService" class="com.dubbo.provider.service.impl.DemoProviderServiceImpl" />

<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.dubbo.provider.service.DemoProviderService" ref="demoProviderService" />

</beans>

测试

  编写服务提供者注册的测试类,如下所示:

package com.dubbo.provider.tests;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class ProviderTest {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "dubbo-demo-provider.xml" });
        context.start();
        System.out.println("服务提供者注册成功(端口:20880)");
        try {
            System.in.read();
        }catch (IOException e) {
            e.printStackTrace();
        }
        context.close();
    }
}

  运行测试,如下图所示,说明发布服务成功。

原文地址:https://www.cnblogs.com/huanghzm/p/11458922.html

时间: 2024-10-16 07:33:16

Dubbo 项目学习(二) 发布Dubbo服务的相关文章

Dubbo 项目学习(四) 接口抽取以及依赖版本统一

引言 前面的系列项目中,我们会发现有个接口是一样的,我们需要单独抽取出来,统一维护,这样可以更加高效的处理项目.同时,两个项目的maven依赖包也可以统一维护,这样有助于项目在多人协作的同时,保证项目依赖的统一性. 系列文档目录 Dubbo 项目学习(一) Admin 管理控制台 Dubbo 项目学习(二) 发布Dubbo服务 Dubbo 项目学习(三) 消费Dubbo服务 Dubbo 项目学习(四) 接口抽取及以来版本统一 创建父工程 我们新建一个dubbo-parent项目,作为父级工程,用

Dubbo 使用rest协议发布http服务

演示用GitHub地址:https://github.com/suyin58/dubbo-rest-example 1       Dubbo_rest介绍 Dubbo自2.6.0版本后,合并了dubbox的restful风格的接口暴露方式,其restful的处理采用的是jboss.resteasy框架.使用该功能可以简便的将dubbo服务直接通过http的方式发布,不需要再使用中转的http应用暴露服务. 如上图,原有结构中,HTTP访问需要通过API应用中转服务,RPC访问调用dubbo应用

IBM规则引擎(ODM)入门系列二(2):规则项目打包、发布及服务端测试

上一篇博文介绍了如何搭建安装res服务,这次一起来看看如何在Rule Designer中创建RuleApp并将其发布到Res服务上. 打开Rule Designer,查看一下我们的规则项目: 以PersonRule规则项目为例,如上图中,在“规则项目图”视图中,点击“创建RuleApp项目”: 输入项目名“PersonRuleApp”,点击下一步: 因为点击的是PersonRule规则集项目的“创建RuleApp”导航链接,所以这里选择规则集项目默认为“PersonRule”,点击完成. 此时在

juddi学习二——JUDDI server 服务

一.juddi结构图 juddi-core使用JPA的核心UDDI jUDDI服务器逻辑包装在juddi-core.jar.它实现了UDDI规范中定义的所有服务器端行为.对于持久性,它使用Java Peristence Api(JPA).使用的默认JPA实现是OpenJPA,但是也支持Hibernate.JPA实现的配置存在于WEB-INF/classes/META-INF/persistence.xml文件中. 需要注意的是,通过maven提供了两个JAR.如果您将使用Hibernate,请使

android 开源项目学习&lt;二&gt;

roottools:   RootTools gives Rooted developers easy access to common rooted tools...  https://code.google.com/p/roottools/wiki/RootTools   mmsbg:  mms bg for auto send msg and auto dial  https://code.google.com/p/mmsbg/  acra:   Application Crash Rep

发布Dubbo服务介绍

我们现在来学习下发布Dubbo服务,主要参考dubbo开发包里的demo源码:由浅入深的讲解下这个小demo: 首先创建一个maven项目dubbo-demo-provider pom.xml加入依赖: 1 <dependencies> 2 <dependency> 3 <groupId>com.alibaba</groupId> 4 <artifactId>dubbo</artifactId> 5 <version>2.

使用Jenkins自动发布Windows服务项目

不同于发布Web项目,自动发布Windows服务项目需要解决以下几个问题: 如何远程停止和开启服务?需要在发布前停止服务,在发布完成后开启服务. 如何上传编译文件到目标服务器? 问题1:如何远程停止和开启服务 在msbuild之前添加一个execute windows batch command,执行cmd命令,cmd命令如下: echo **********stop remote server windows service********** "C:\Program Files\IIS\Mi

基于dubbo快速发布restful服务

本文使用官方项目示例,基于dubbox发布restful服务.jdk,eclipse.maven神马环境的就不讲了,自行baidu之. dubbox下载.编译 下载地址:https://github.com/dangdangdotcom/dubbox下载方式可以用git下载,也可以打包下载.下载之后,用maven导入(eclipse->import->Maven).dubbo项目结构: 使用maven打包,版本2.8.4. zookeeper安装 本文使用的是单节点的注册中心,在实际项目中需要

spring boot-18.使用dubbo发布分布式服务

我们新建两个项目分别模拟服务的提供者和服务的消费者,spring boot 集成dubbo主要分为以下几个步骤: 1.安装zookeeper 推荐使用docker 安装,使用以下几个命令即可完成 (1)docker pull zookeeper:3.4.11 (2)docker run --name zookeeper -p 2181:2181 --restart always -d 56d414270ae3 (-d 后面为镜像ID) 2.服务提供者和服务消费者的项目中分别添加dubbo 和zo