dubbo集成spring-买球官网平台

`
落叶留步
  • 浏览: 45447 次
  • 性别:
  • 来自: 上海
博主相关
  • 博客
  • 微博
  • 相册
  • 收藏
  • 文章分类
    社区版块
    • ( 0)
    • ( 0)
    • ( 1)
    存档分类
    最新评论

    dubbo集成spring-boot

        dubbo需要一个注册中心,用的是zookeeper。集成spring-boot是为了方便使用注解开发。

     

     

        1. 安装zoopkker

         hadoop01:2181, hadoop02:2181, hadodp03:2181

     

     

        2. 编写dubbo公共接口

        helloservice

    package com.dubbo.service;
    import com.dubbo.model.user;
    public interface helloservice {
    	
    	
    	string sayhello(string name);
    }
    

     

     

     

        3. 编写provider 并注册到zookeeper

          这里需要注意的是:接口实现类上面标的注解@service是 com.alibaba.dubbo.config.annotation.service;

          还要在启动类上面加上一个注解:@dubbocomponentscan

          3.1 helloservice实现类

    package com.dubbo.provider.service;
    import java.util.uuid;
    import org.slf4j.logger;
    import org.slf4j.loggerfactory;
    import com.alibaba.dubbo.config.annotation.service;
    import com.dubbo.service.helloservice;
    @service
    public class helloserviceimpl implements helloservice {
    	private static logger logger = loggerfactory.getlogger(helloserviceimpl.class);
    	@override
    	public string sayhello(string name) {
    		logger.info("request from consumer...param...{}", name);
    		return "hello "   name;
    	}
    }

        3.2 dubbo配置类

     

     

    package com.dubbo.provider.conf;
    import org.springframework.context.annotation.bean;
    import org.springframework.context.annotation.configuration;
    import com.alibaba.dubbo.config.applicationconfig;
    import com.alibaba.dubbo.config.protocolconfig;
    import com.alibaba.dubbo.config.registryconfig;
    @configuration
    public class providerconf {
    	// 
    	// 
    	@bean
    	public applicationconfig applicationconfig() {
    		applicationconfig applicationconfig = new applicationconfig();
    		applicationconfig.setname("provider-test");
    		return applicationconfig;
    	}
    	@bean
    	public registryconfig registryconfig() {
    		registryconfig registryconfig = new registryconfig();
    		registryconfig.setaddress("zookeeper://hadoop01:2181?backup=hadoop02:2181,hadoop03:2181");
    		registryconfig.setclient("zkclient");
    		return registryconfig;
    	}
    	@bean
    	public protocolconfig protocolconfig() {
    		protocolconfig protocolconfig = new protocolconfig();
    		protocolconfig.setname("dubbo");
    		protocolconfig.setport(20880);
    		return protocolconfig;
    	}
    }

        3.3 provider启动类

     

     

    package com.dubbo.provider;
    import java.io.ioexception;
    import org.slf4j.logger;
    import org.slf4j.loggerfactory;
    import org.springframework.boot.springapplication;
    import org.springframework.boot.autoconfigure.springbootapplication;
    import com.alibaba.dubbo.config.spring.context.annotation.dubbocomponentscan;
    @springbootapplication
    @dubbocomponentscan(basepackages = { "com.dubbo.provider.service" })
    public class provider {
    	private static logger logger = loggerfactory.getlogger(provider.class);
    	
    	public static void main(string[] args) throws ioexception {
    		logger.debug("startup provider...");
    		springapplication.run(provider.class, args);
    		system.in.read();
    	}
    }

     

     

        

        4. 编写consumer调用服务

        这里需要注意:注入远程helloservice对象的时候,要用@reference,不是用@autowired,因为dubbo目前是使用@reference来做的,底层用了referenceannotationbeanpostprocessor来注入@reference标注的属性。

        4.1 controller调用远程helloservice服务

     

    package com.dubbo.consumer.controller;
    import org.springframework.http.mediatype;
    import org.springframework.web.bind.annotation.requestmapping;
    import org.springframework.web.bind.annotation.requestmethod;
    import org.springframework.web.bind.annotation.restcontroller;
    import com.alibaba.dubbo.config.annotation.reference;
    import com.dubbo.service.helloservice;
    @restcontroller
    @requestmapping(path = "/hello", produces = mediatype.application_json_utf8_value)
    public class hellocontroller {
    	@reference
    	private helloservice helloservice;
    	@requestmapping(path = "/say", method = requestmethod.get)
    	public string sayhello(string name) {
    		return helloservice.sayhello(name);
    	}
    }
    

        4.2 consumer配置类

    package com.dubbo.consumer.conf;
    import org.springframework.context.annotation.bean;
    import org.springframework.context.annotation.configuration;
    import com.alibaba.dubbo.config.applicationconfig;
    import com.alibaba.dubbo.config.consumerconfig;
    import com.alibaba.dubbo.config.registryconfig;
    @configuration
    public class consumerconf {
    	@bean
    	public applicationconfig applicationconfig() {
    		applicationconfig applicationconfig = new applicationconfig();
    		applicationconfig.setname("consumer-test");
    		return applicationconfig;
    	}
    	@bean
    	public consumerconfig consumerconfig() {
    		consumerconfig consumerconfig = new consumerconfig();
    		consumerconfig.settimeout(3000);
    		return consumerconfig;
    	}
    	@bean
    	public registryconfig registryconfig() {
    		registryconfig registryconfig = new registryconfig();
    		registryconfig.setaddress("zookeeper://hadoop01:2181?backup=hadoop02:2181,hadoop03:2181");
    		registryconfig.setclient("zkclient");
    		return registryconfig;
    	}
    }

       4.3 consumer启动类

    package com.dubbo.consumer;
    import org.springframework.boot.springapplication;
    import org.springframework.boot.autoconfigure.springbootapplication;
    import com.alibaba.dubbo.config.spring.context.annotation.dubbocomponentscan;
    @springbootapplication
    @dubbocomponentscan(basepackages = { "com.dubbo.consumer.controller" })
    public class consumer {
    	public static void main(string[] args) {
    		springapplication.run(consumer.class, args);
    	}
    }
    

     

     

       

    分享到:
    评论

    相关推荐

      spring-boot-starter-dubbo 很简单,也很方便使用,它同时集成了dubbo 的 provider 和 consumer 的功能。 当在 provider 端使用 spring-boot-starter-dubbo 时,可以选择不用 web 容器或者使用 web 容器;当...

      dubbo官方最新springboot2.0.x集成dubbo2.6.例子(springboot com.alibaba.boot)

      自定义的spring-boot的dubbo starter,为spring-boot相关的项目使用dubbo提供简易的方式并集成spring-boot的auto configuration 版本 本项目版本 dubbo版本 1.0.0 dubbox自定义版本2.8.4-banyan 打包 修改相关的...

      dubbo|[spring cloud alibaba(四)spring cloud与dubbo的融合](https://github.com/smltq/spring-boot-demo/blob/master/cloud-alibaba/readme4.md) rocketmq|[spring cloud alibaba(五)rocketmq 异步通信实现]...

      如果仅仅测试dubbo:boot-dubbo-simple boot-dubbo-simple-client上述两个项目就够用了boot-dubbo-infrastructure这个模块项目只与数据库相关,其中集成了spring-data-jpa以及mybatisspring-data-jpa一般负责增删改...

      本系列是spring-boot相关的一些列子,比如spring-boot集成druid,以及druid的动态数据源切换, spring-boot 集成mybatis,spring-boot集成定时器等等 1,弹簧靴集成德鲁伊数据库连接池 详情查看项目 2,spring-boot...

      spring-boot dubbo 集成 脚手架 spring-boot dubbo 集成 脚手架

      spring-boot-scaffold, springboot脚手架,集成jpa freemarker dubbo security为一体

      spring-boot最佳实践spring-boot工程学习,按模块...项目工程目录父工程spring-boot(spring-boot父工程)基础入门spring-boot-quickstart(spring-boot快速使用入门) spring-boot-configuration(spring-boot配置文件

      spring-boot操作dubbo、elasticsearch、kafka、rabbitmq、rocketmq、redis、mongodb等等demo,比较全面,基本包含所有常用的软件。。。亲测可以用,maven项目。

      将后端框架从webx替换成spring boot 前端采用vue和vuetify.js作为开发框架 移除velocity模板 集成swagger,提供api管理功能 当前版本的dubbo admin包含了之前版本中的绝大部分功能,包括服务治理,服务查询等,...

      springboot集成dubbo工程,使用dubbo-spring-boot-starter,具体集成过程可以看博客:https://blog.csdn.net/herojuice/article/details/86596113

      dubbo-spring-boot-starter 0.2.0 spring-boot-starter-data-redis mybatis-spring-boot-starter spring-boot-starter-amqp lombok ###提供功能: 基于profiles提供的多环境打包构建 集成log4j日志服务 集成redis,...

      后台服务架构:dubbo、spring-boot、spring mvc、spring-security-oauth2、spring-ldap、spring-data-jpa等 项目管理工具:maven、nexus 版本管理工具:gitlab、git 数据库:mysql、mongodb 运维监控工具:open-...

      spring boot整合dubbo和zookeeper这个demo是基于写的,官方的包本身可以达到集成zookeeper的,...<groupid>com.alibaba.boot</groupid> <artifactid>dubbo-spring-boot-starter</artifactid> <version>0.1.0</vers

      whatsmars-spring spring原理、集成及新特性 whatsmars-tomcat 模拟tomcat实现 whatsmars-dbrouter 分库分表实现 whatsmars-worker 多实例任务调度 whatsmars-dubbo dubbo demo whatsmars-mq rocketmq,activemq ...

      弹簧启动扩展 背景 个人开发在项目中因为比较多的使用了多个数据库...spring-boot-extend是什么? 一个能快速继承多数据源的mysql数据库/多数据源mongidb数据库/ apollo配置中心/ zookeeper注册中心/ dubbo服务/ rock

      使用springboot集成dubbo以后,使用springcache进行缓存处理时,对应的service无法注册到zookeeper上,将springboot集成dubbo的jar换成阿里... <artifactid>dubbo-spring-boot-starter <version>0.2.0 </dependency>

      - spring boot 集成 dubbo 的三种方式 - springboot-search - spring boot 集成 搜索引擎,包括 elasticsearch、solr - springboot-mq - spring boot 集成 消息队列,包括 kafka、rabbitmq、activemq、...

      spring boot demo 是一个用来深度学习并实战 spring boot 的项目,目前总共包含 63 个集成demo,已经完成 52 个。 该项目已成功集成 actuator(监控)、admin(可视化监控)、logback(日志)、aoplog(通过aop记录web请求...

    global site tag (gtag.js) - google analytics