• 淘宝SOA框架dubbo学习(1)--first demo


    部署开发,需要三部分:服务提供者、服务容器、服务消费者

    本人用 eclipse 开发

    1、服务提供者jar生成

    A、项目截图

    B、源码:

    1
    2
    3
    4
    5
    package com.alibaba.dubbo.demo;
     
    public interface DemoService {
        String sayHello(String name);
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package com.alibaba.dubbo.demo.provider;
     
    import com.alibaba.dubbo.demo.DemoService;
     
    public class DemoServiceImpl implements DemoService{
        public String sayHello(String name) {
            return "Hello " + name;
        }
    }

    provider.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?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="hello-world-app"  />
      
        <!-- 使用multicast广播注册中心暴露服务地址 -->
        <dubbo:registry address="multicast://224.5.6.7:1234" />
      
        <!-- 用dubbo协议在20880端口暴露服务 -->
        <dubbo:protocol name="dubbo" port="20880" />
      
        <!-- 声明需要暴露的服务接口 -->
        <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" />
      
        <!-- 和本地bean一样实现服务 -->
        <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" />
      
    </beans>

    C、生成jar包

    右键项目名称->export->java ->jar file - > 点击下一步

    按下图所示,进行选择

    点击finish,jar包导出到路径:C:UsersmichaelDesktopapp.jar

    注:jar包叫什么名字,没任何关系

    2、部署服务容器:

    下载

    dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz

    下载页面

    http://alibaba.github.io/dubbo-doc-static/Download-zh.htm

    注:可能下载不下来,我是从dubbo的QQ群里下载下来的

    解压缩后,容器部署完成

    3、部署服务

    第2步中解压缩的目录,将第2步中的jar包,放入到 dubbo-demo-provider-2.5.4-SNAPSHOTconf或者dubbo-demo-provider-2.5.4-SNAPSHOTlib目录下

    进入demo-provider-2.5.4-SNAPSHOTin

    注:修改binstart.bat文件,classpath中加入:..confapp.jar

    双击:start.bat

    服务正式启动

    4、在eclipse中写消费者程序测试部署的服务

    A、项目分布

    B、源码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    import org.springframework.context.support.ClassPathXmlApplicationContext;
     
    import com.alibaba.dubbo.demo.DemoService;
     
    public class Consumer {
     
        /**
         * @param args
         */
        public static void main(String[] args) {
            ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
                    new String[] { "classpath:consumer.xml" });
            context.start();
     
            DemoService demoService = (DemoService) context.getBean("demoService"); // 获取远程服务代理
            String hello = demoService.sayHello("world"); // 执行远程方法
     
            System.out.println(hello); // 显示调用结果
        }
    }
    1
    2
    3
    4
    5
    package com.alibaba.dubbo.demo;
     
    public interface DemoService {
        String sayHello(String name);
    }

    consumer.xml

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?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="consumer-of-helloworld-app"  />
      
        <!-- 使用multicast广播注册中心暴露发现服务地址 -->
        <dubbo:registry address="multicast://224.5.6.7:1234" />
      
        <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
        <dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" />
      
    </beans>

    C、启动

    Consumer类中的main方法

    D、OK,完事

  • 相关阅读:
    sql语句之case when null 解决方法
    sql server分组按顺序编号(转+补充)
    非IE用window.open弹出窗口并向父窗口传值
    IE6浏览器弹出窗口,父窗口传值
    sql之储存过程与函数的区别
    sql之执行事务性语句
    c#获取与筛选对象相匹配的所有DataRow对象数组
    ?: 运算符(C# 参考)
    Mysql 5.7优化
    libcurl.a 跨平台
  • 原文地址:https://www.cnblogs.com/liuzhenhua/p/4820034.html
Copyright © 2020-2023  润新知