Webservice之徒手搭建Dubbo(定义服务,供应商,消费者)

前提准备:

  在本次实验之前,需要准备一下几个包:

  • Spring中的aop、beans、context、core、expression以及struts中的commons-logging、javassist等都是为了支持配置以及运行时不会报错:

    为了这句话:ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");

  • dubbo包和netty则是dubbo服务的必须包
  • ssssssss.jar则是自己定义的api服务

一、定义服务(api)

  

  定义一个接口GService:

    入参:String

    返回值:String   

package com.dubbo.zz;

public interface GService {
    String sayHello(String name);
}

二、注册供应商

  项目结果图如下:

  

  GServiceImpl.java:  

package com.dubbo.provider;

import com.dubbo.zz.GService;

public class GServiceImpl implements GService {    

    public String sayHello(String name) {
        return "Hello "+name;
    }

}

  Provider.java:  

package com.dubbo.provider;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Provider {
    public static void main(String[] args) throws Exception {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
        System.out.println("service have startup");
        context.start();
        System.in.read();
    }

}

  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">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="sdfsd"/>

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry address="multicast://224.5.6.7:1234" />

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

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

    <!-- 和本地bean一样实现服务 -->
    <bean id="demoService" class="com.dubbo.provider.GServiceImpl"/>

</beans>

  运行结果如图:

  

  

三、消费者(可以是接口测试者,也可以是服务调用方)

  注意:为了方便调试,可以另起一个Eclipse应用。

  项目结果图:

  

  

  consumer.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">

    <!-- 提供方应用信息,用于计算依赖关系 -->
    <dubbo:application name="consum"/>

    <!-- 使用multicast广播注册中心暴露服务地址 -->
    <dubbo:registry address="multicast://224.5.6.7:1234" />

    <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="demoService" interface="com.dubbo.zz.GService" />

</beans>

  TestServices.java:  

package com.dubbo.consumer;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dubbo.zz.GService;

public class TestServices {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("consumer.xml");
        System.out.println("consumer have startup");
        GService service=(GService)context.getBean("demoService");
        String str=service.sayHello("fjsdfsd");
        System.out.println(str);
    }
}

  运行结果如图:

  

 

至此,演示完毕,谢谢大家。转载时请注明出处,谢谢:http://www.cnblogs.com/shoubianxingchen/p/4308229.html

此为dubbo入门级演示,后面还有很多东西的。

时间: 2024-11-05 17:23:31

Webservice之徒手搭建Dubbo(定义服务,供应商,消费者)的相关文章

关于dubbo的服务降级

一.dubbo降级服务     dubbo开发中,可能由于服务没有启动或者网络不通,调用中会出现RpcException,也就是远程调用失败.如果是服务启动顺序的问题,可能加工check="false"的配置可以得到很好的解决.但是,如果是服务宕掉或者并发数太高导致的RpcException该如何处理? 经过过12306抢票的人应该经常会遇到这个问题:在抢票高峰的时候,明明票还有,但是查询出来的列表却是为空的(如果没票列表也应该会呈现):等高峰过后再查询,列表又恢复正常.个人猜测应该是

httpd(2.2&2.4)RPM搭建配置定义详解

一.RPM包安装配置程序环境 1.CentOS6系列(默认httpd2.2) (1)配置文件:/etc/httpd/conf/httpd.conf.  /etc/httpd/conf.d/*.conf() (2)服务脚本:/etc/rc.d/init.d/httpd 配置文件:/etc/sysconfig/httpd (3)主程序文件:/usr/sbin/httpd.  /usr/sbin/httpd.event.  /usr/sbin/httpd.worker (4)日志文件目录:/var/l

RPC原来就是socket——RPC框架到dubbo的服务动态注册,服务路由,负载均衡演化

序:RPC就是使用socket告诉服务端我要调你的哪一个类的哪一个方法然后获得处理的结果.服务注册和路由就是借助第三方存储介质存储服务信息让服务消费者调用. RPC即远程过程调用,它的实现方式有很多,比如webservice等.框架调多了,烦了,没激情了,我们就该问自己,这些框架的作用到底是什么,来找回当初的激情. 一般来说,我们写的系统就是一个单机系统,一个web服务器一个数据库服务,但是当这单台服务器的处理能力受硬件成本的限制,是不能无限的提升处理性能的.这个时候我们使用RPC将原来的本地调

利用OpenStreetMap(OSM)数据搭建一个地图服务

 http://www.cnblogs.com/LBSer/p/4451471.html 图 利用OSM数据简单发布的北京地图服务   一.OSM是什么 开放街道图(OpenStreetMap,简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图(wiki:http://wiki.openstreetmap.org/wiki/Main_Page).尤其值得称道的是,osm数据开源,可以自由下载使用. 二.OSM数据结构 OpenStreetMap包括空间数据以及属

Dubbo定义及其作用

Dubbo定义 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,远程服务调用的分布式框架. 其核心部分包含: 1.远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及"请求-响应"模式的信息交换方式. 2.集群容错:提供基于接口方法的透明远程过程调用,包括多协议支

ZooKeeper分布式专题与Dubbo微服务入门

第1章 分布式系统概念与ZooKeeper简介对分布式系统以及ZooKeeper进行简介,使得大家对其有大致的了解1-1 zookeeper简介1-2 什么是分布式系统1-3 分布式系统的瓶颈以及zk的相关特性 第2章 ZooKeeper安装如何安装ZooKeeper以及对ZooKeeper最基本的数据模型进行剖析2-1 JDK的安装2-2 zookeeper下载.安装以及配置环境变量2-3 zookeeper文件夹主要目录介绍2-4 zookeeper配置文件介绍,运行zk 第3章 ZooKe

8分钟学会Consul集群搭建及微服务概念

原文:8分钟学会Consul集群搭建及微服务概念 Consul介绍: Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value 存储.多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等),使用起来也较为简单. Consul的如何实现的? Consul 用 Golang 实现,因此具有天然可移植性(支

Dubbo 微服务系列(03)服务注册

Dubbo 微服务系列(03)服务注册 [TOC] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 图1 Dubbo经典架构图 注:本图来源 Dubbo官方架构图 表1 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 在 Dubbo 微服务体系中,注册中心是其

大厂必会考题:Dubbo+微服务+ZooKeeper+kafka+Linux等(附答案)

24道常见Elasticsearch 面试题(截取部分) 1.客户端在和集群连接时,如何选择特定的节点执行请求的? 2.详细描述一下 Elasticsearch 索引文档的过程. 3.详细描述一下 Elasticsearch 更新和删除文档的过程. 4.详细描述一下 Elasticsearch 搜索的过程. 5.在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的? 6.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法? 7.对于 GC 方面,在使用