• Atitit dubbo使用总结 attilax总结 艾龙 总结 1. 概念 1 1.1. Dubbo提供的注册中心有如下几种类型可供选择: 2 1.1.1. Multicast注册中心 2 1.1


    Atitit dubbo使用总结 attilax总结 艾龙 总结

    1. 概念 1

    1.1. Dubbo提供的注册中心有如下几种类型可供选择: 2

    1.1.1. Multicast注册中心 2

    1.1.2. Zookeeper注册中心 2

    1.1.3. Redis注册中心 2

    1.1.4. Simple注册中心 2

    1.2. Multicast注册中心 2

    2. 下载dubbo 版本2.6.0 ,但是官网下的是src。没有jar包。。也不提供jar下载。只好通过maven下载 2

    3. 通过maven下载dubbo jar 2

    3.1. 新建maven配置文件  down_dubbo.txt 格式参照pom文件格式 3

    3.2. 执行下载D:\prgrm\apache-maven-3.5.0\bin\mvn.cmd  -f  C:\Users\Administrator\Desktop\dubbo\down_dubbo.txt     test 4

    3.3. 找到jarC:\Users\Administrator\.m2\repository 4

    3.4. 下载后的jar大概13m 77个文件 4

    4. 开始代码 6

    4.1. Define service interface 6

    4.2. Implement service provider 6

    4.3. 启动服务 6

    4.4. 消费服务 8

    5. }问题解决 9

    5.1. 官网范例代码错误的编译错误问题,一一解决。 9

    6. 参考资料 10

    6.1. Overview _ DUBBO.mhtml 10

    6.2. 10

    6.3. java-dubbo-使用Multicast注册中心提供服务 - CSDN博客.mhtml 10

    6.4. Dubbo入门---搭建一个最简单的Demo框架 - noaman_wgs的博客 - CSDN博客.mhtml 10

    1. 概念

    1.1. Dubbo提供的注册中心有如下几种类型可供选择

    1.1.1. Multicast注册中心

    1.1.2. Zookeeper注册中心

    1.1.3. Redis注册中心

    1.1.4. Simple注册中心

    1.2. Multicast注册中心

    不需要启动任何中心节点,只要广播地址一样,就可以互相发现

    组播受网络结构限制,只适合小规模应用或开发阶段使用。

    组播地址段: 224.0.0.0 - 239.255.255.255

    2. 下载dubbo 版本2.6.0 ,但是官网下的是src。没有jar包。。也不提供jar下载。只好通过maven下载

    3. 通过maven下载dubbo jar

    最新的貌似2.6.1但是通过maven下载报错,说找不到这个版本的,还好2.6.0的可以找到

    3.1. 新建maven配置文件  down_dubbo.txt 格式参照pom文件格式

    <?xml version="1.0" encoding="UTF-8"?>

     <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.example</groupId>

      <artifactId>myPrj</artifactId>

      

      

        <version>1</version>

      <name>nammm</name>

      

      <dependencies>  

     <dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>dubbo</artifactId>

    <version>2.6.0</version>

    </dependency>

    </dependencies>

    </project>

    3.2. 执行下载D:\prgrm\apache-maven-3.5.0\bin\mvn.cmd  -f  C:\Users\Administrator\Desktop\dubbo\down_dubbo.txt     test

    3.3. 找到jarC:\Users\Administrator\.m2\repository

    3.4. 下载后的jar大概13m 77个文件

    D:\workspace\dubboprj\libs

    classworlds-1.1.jar

    commons-cli-1.0.jar

    commons-lang3-3.1.jar

    commons-logging-1.2.jar

    commons-logging-api-1.1.jar

    doxia-sink-api-1.0-alpha-7.jar

    dubbo-2.6.0.jar

    dubbo2.6.0down_jar.txt

    google-collections-1.0.jar

    javassist-3.20.0-GA.jar

    jsr305-2.0.1.jar

    junit-3.8.1.jar

    junit-3.8.2.jar

    log4j-1.2.12.jar

    maven-artifact-2.0.6.jar

    maven-artifact-2.0.9.jar

    maven-artifact-manager-2.0.6.jar

    maven-artifact-manager-2.0.9.jar

    maven-common-artifact-filters-1.3.jar

    maven-compiler-plugin-3.1.jar

    maven-core-2.0.6.jar

    maven-core-2.0.9.jar

    maven-error-diagnostics-2.0.6.jar

    maven-error-diagnostics-2.0.9.jar

    maven-filtering-1.1.jar

    maven-model-2.0.6.jar

    maven-model-2.0.9.jar

    maven-monitor-2.0.6.jar

    maven-monitor-2.0.9.jar

    maven-plugin-annotations-3.1.jar

    maven-plugin-api-2.0.6.jar

    maven-plugin-api-2.0.9.jar

    maven-plugin-descriptor-2.0.6.jar

    maven-plugin-descriptor-2.0.9.jar

    maven-plugin-parameter-documenter-2.0.6.jar

    maven-plugin-parameter-documenter-2.0.9.jar

    maven-plugin-registry-2.0.6.jar

    maven-plugin-registry-2.0.9.jar

    maven-profile-2.0.6.jar

    maven-profile-2.0.9.jar

    maven-project-2.0.6.jar

    maven-project-2.0.9.jar

    maven-reporting-api-2.0.6.jar

    maven-reporting-api-2.0.9.jar

    maven-repository-metadata-2.0.6.jar

    maven-repository-metadata-2.0.9.jar

    maven-resources-plugin-2.6.jar

    maven-settings-2.0.6.jar

    maven-settings-2.0.9.jar

    maven-shared-incremental-1.1.jar

    maven-shared-utils-0.1.jar

    maven-surefire-common-2.12.4.jar

    maven-surefire-plugin-2.12.4.jar

    maven-toolchain-1.0.jar

    maven-toolchain-2.0.9.jar

    netty-3.2.5.Final.jar

    plexus-build-api-0.0.4.jar

    plexus-classworlds-2.2.2.jar

    plexus-compiler-api-2.2.jar

    plexus-compiler-javac-2.2.jar

    plexus-compiler-manager-2.2.jar

    plexus-component-annotations-1.5.5.jar

    plexus-container-default-1.0-alpha-9-stable-1.jar

    plexus-container-default-1.5.5.jar

    plexus-interactivity-api-1.0-alpha-4.jar

    plexus-interpolation-1.13.jar

    plexus-utils-1.5.1.jar

    plexus-utils-2.0.5.jar

    plexus-utils-3.0.8.jar

    spring-aop-4.3.10.RELEASE.jar

    spring-beans-4.3.10.RELEASE.jar

    spring-context-4.3.10.RELEASE.jar

    spring-core-4.3.10.RELEASE.jar

    spring-expression-4.3.10.RELEASE.jar

    spring-web-4.3.10.RELEASE.jar

    surefire-api-2.12.4.jar

    surefire-booter-2.12.4.jar

    xbean-reflect-3.4.jar

    4. 开始代码

    D:\workspace\dubboprj\src\com\alibaba\dubbo\demo\DemoServiceImpl.java

    4.1. Define service interface

    Since both service provider and service consumer rely on the same interface, it is strongly recommended to put the interface definition below in one separated module which could be shared by both provider module and consumer module.

    package com.alibaba.dubbo.demo;

    public interface DemoService {

        String sayHello(String name);}

    4.2. Implement service provider

    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;

        }}

    4.3. 启动服务

    package com.alibaba.dubbo.demo;

    import com.alibaba.dubbo.config.ApplicationConfig;

    import com.alibaba.dubbo.config.ProtocolConfig;

    import com.alibaba.dubbo.config.RegistryConfig;

    import com.alibaba.dubbo.config.ProviderConfig;

    import com.alibaba.dubbo.config.ServiceConfig;

    /*

    import com.xxx.XxxService;

    import com.xxx.XxxServiceImpl;

    */

    public class Provider {

    public static void main(String[] args) {

    // 服务实现

    DemoService xxxService1 = new DemoServiceImpl();

    // 当前应用配置 <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->

    ApplicationConfig application = new ApplicationConfig();

    application.setName("xxx");

    // 连接注册中心配置

    RegistryConfig registry = new RegistryConfig();

    // registry.setAddress("10.20.130.230:9090");

    registry.setAddress("multicast://224.5.6.7:1234");

    registry.setUsername("aaa");

    registry.setPassword("bbb");

    // 服务提供者协议配置

    ProtocolConfig protocol = new ProtocolConfig();

    protocol.setName("dubbo");

    protocol.setPort(12345);

    protocol.setThreads(200);

    // 注意:ServiceConfig为重对象,内部封装了与注册中心的连接,以及开启服务端口

    // 服务提供者暴露服务配置

    ServiceConfig<DemoService> service = new ServiceConfig<DemoService>(); // 此实例很重,封装了与注册中心的连接,请自行缓存,否则可能造成内存和连接泄漏

    service.setApplication(application);

    service.setRegistry(registry); // 多个注册中心可以用setRegistries()

    service.setProtocol(protocol); // 多个协议可以用setProtocols()

    service.setInterface(DemoService.class);

    service.setRef(xxxService1);

    service.setVersion("1.0.0");

    // 暴露及注册服务

    service.export();

    //mustr receyl to hold the port ..beir exit auto..and cant conn

    while (true) {

    try {

    Thread.sleep(3000);

    } catch (InterruptedException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    System.out.println("---ok");

    }

    }

    }

    4.4. 消费服务

    package com.alibaba.dubbo.demo;

    import com.alibaba.dubbo.config.ApplicationConfig;

    import com.alibaba.dubbo.config.RegistryConfig;

    import com.alibaba.dubbo.config.ConsumerConfig;

    import com.alibaba.dubbo.config.ReferenceConfig;//

    //import com.xxx.XxxService;

    public class Custom {

      public static void main(String[] args)

        {

    // 当前应用配置

    ApplicationConfig application = new ApplicationConfig();

    application.setName("yyy");

    // 连接注册中心配置

    RegistryConfig registry = new RegistryConfig();

    registry.setAddress("multicast://224.5.6.7:1234");

    registry.setUsername("aaa");

    registry.setPassword("bbb");

    // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接

    // 引用远程服务

    ReferenceConfig<DemoService> reference = new ReferenceConfig<DemoService>(); // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏

    reference.setApplication(application);

    reference.setRegistry(registry); // 多个注册中心可以用setRegistries()

    reference.setInterface(DemoService.class);

    reference.setVersion("1.0.0");

    // 和本地bean一样使用xxxService

    DemoService xxxService = reference.get(); // 注意:此代理对象内部封装了所有通讯细节,对象较重,请缓存复用

    System.out.println(xxxService.sayHello("--test"));

        }

    5. }问题解决

    5.1. 官网范例代码错误的编译错误问题,一一解决。

    分离代码比较新,但是2.6.0jar有点久,还好下载2.6.1src插入部分config common部分pakg。。编译ok

    还有fastjson类库需要集成将来。。不知为什么maven没有吧这个依赖down下来

    范例代码启动后,需要时间不短循环保持在内存服务提供持久化,增加这部分无线循环代码。

    6. 参考资料

    6.1. Overview _ DUBBO.mhtml

    6.2.  

    6.3. java-dubbo-使用Multicast注册中心提供服务 - CSDN博客.mhtml

    6.4.  Dubbo入门---搭建一个最简单的Demo框架 - noaman_wgs的博客 - CSDN博客.mhtml

    dubbo通信协议之对比 - 自行车上的程序员 - 博客园.mhtml

  • 相关阅读:
    redis 订阅者与发布者(命令行)
    CentOS 6 使用 tptables 打开关闭防火墙与端口
    CentOS 7 使用 firewalld 打开关闭防火墙与端口
    Python面向对象编程-OOP
    python命名规则 PEP8编码规则(约定俗成)
    python 装饰器 概念
    python常用模块 os,datetime,time,MySQLdb,hashlib
    python xml.etree.ElementTree 处理xml 文件 变量 流 xml概念
    Pycharm小技巧
    python概要笔记2
  • 原文地址:https://www.cnblogs.com/attilax/p/15197712.html
Copyright © 2020-2023  润新知