`
落叶留步
  • 浏览: 53235 次
  • 性别: Icon_minigender_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 {

	// <dubbo:registry
	// address="zookeeper://10.20.153.10:2181?backup=10.20.153.11:2181,10.20.153.12:2181"
	// />
	// <dubbo:registry protocol="zookeeper"
	// address="10.20.153.10:2181,10.20.153.11:2181,10.20.153.12:2181" />

	@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);

	}

}

 

 

   

分享到:
评论

相关推荐

    springboot2.0.x+dubbo-spring-boot-starter

    标题 "springboot2.0.x+dubbo-spring-boot-starter" 涉及的是将流行的微服务框架 Dubbo 集成到 Spring Boot 2.0.x 的项目实践中。这个集成使得开发者能够利用 Spring Boot 的便利性和 Dubbo 的高性能远程服务调用...

    【42】使用dubbo、spring-boot等技术实现互联网后台服务项目架构视频教程 .txt

    为了方便监控服务的状态,可以在Spring Boot项目中集成Dubbo监控中心和日志系统。Dubbo监控中心可以帮助我们实时监控服务调用的情况,而日志系统则可以帮助记录服务调用的日志。 #### 五、高级特性 在使用Dubbo和...

    dubbo的springboot自动配置spring-boot-starter-dubbo.zip

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

    dubbo-spring-boot-starter-2.7.8.zip

    当这两者结合,便诞生了Dubbo-Spring-Boot-Starter,它使得在Spring Boot环境中集成和使用Dubbo变得轻而易举。本文将深入探讨"**dubbo-spring-boot-starter-2.7.8.zip**"中的核心概念与功能。 首先,**dubbo-spring...

    dubbo-spring-boot-autoconfigure-2.7.8.zip

    当这两者结合,便诞生了`dubbo-spring-boot-autoconfigure`,这是一个用于将Dubbo无缝集成到Spring Boot应用中的关键组件。本篇将深入探讨`dubbo-spring-boot-autoconfigure-2.7.8`版本的相关知识点。 1. **Dubbo ...

    spring-dubbo-spring-boot.rar_java编程_spring_spring boot_threwwab_

    本教程将深入探讨如何在Spring Boot项目中集成Spring Dubbo,实现高效的服务调用和管理。 一、Spring框架与Spring Boot Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力,为Java开发者提供了灵活且...

    spring-boot整合dubbo:Spring-boot-dubbo-starter

    Spring Boot 整合 Dubbo:Spring-boot-dubbo-starter 是一种将 Dubbo 服务框架与 Spring Boot 框架集成的解决方案。 Dubbo 是一个分布式服务框架,提供了服务注册、服务发现、服务调用等功能,而 Spring Boot 是一个...

    dubbo-demo:基于dubbo-spring-boot-starter的一个demo

    【标题】"dubbo-demo:基于dubbo-spring-boot-starter的一个demo" 是一个示例项目,它展示了如何在Spring Boot应用中集成和使用Dubbo服务框架。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java远程服务调用框架,而...

    是spring-boot与dubbo有机结合的桥梁,根据spring-boot规范实现,使dubbo的使用变得及其简单快捷

    Spring-Boot-Starter-Dubbo就是这两者的桥梁,它将Dubbo的配置和使用集成到Spring Boot的生态系统中,使得开发者无需手动配置大量的XML或者Java配置,只需要通过简单的注解和属性配置,就能轻松地实现服务的消费和...

    spring-boot-starter-dubbo:Spring启动启动器dubbo

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

    spring-boot-dubbo

    在实际的`spring-boot-dubbo`项目中,可能包含如下的文件: - `pom.xml`:项目的Maven配置文件,包含了Spring Boot和Dubbo的相关依赖。 - `src/main/resources/application.properties`或`application.yml`:项目的...

    spring-boot-sample:spring-boot集成的druid数据库连接池,spring-boot实现的德鲁伊的动态数据源,spring-boot实现定时任务时间表,spring-boot集成mybatis

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

    dubbo-spring-demo:spring-boot-starter-dubbo 整合样例

    在我们的示例中,"dubbo-spring-demo"就是基于Spring Boot的Dubbo集成应用,它实现了Spring Boot与Dubbo的无缝连接,为后续添加其他组件如MyBatis、Kafka或RabbitMQ、ES提供了基础。 1. **引入依赖** 要整合Spring...

    idea maven聚合项目 spring-boot 整合 dubbo

    【标题】"idea maven聚合项目 spring-boot 整合 dubbo" ...通过这个"idea maven聚合项目 spring-boot 整合 dubbo"的实践,你可以深入理解Spring Boot和Dubbo的集成方式,为构建更复杂的微服务架构打下坚实基础。

    spring-boot示例项目

    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 异步通信实现]...

    spring+dubbo所需要的jar包

    (1)commons-logging-...(7)dubbo-2.5.3.jar (8)javassist-3.18.0-GA.jar (9)log4j-1.2.17.jar (10)netty-3.2.5.Final.jar (11)slf4j-api-1.7.12.jar (12)zkclient-0.1.jar  (13)zookeeper-3.4.13.jar

    dubbo-spring-demo

    5. **启动和测试**:项目可能会提供一个主启动类,如`com.example.DemoApplication`,用于启动Spring Boot应用,并加载Dubbo配置。此外,还可能包含测试用例来验证服务的正常工作。 6. **服务调用**:在示例中,...

    spring-boot-tutorials-master.zip

    - **Spring Boot整合**:通过Spring Boot Starter,可以方便地将Dubbo集成到Spring Boot应用中,简化配置。 - **服务提供者与消费者**:理解服务提供者如何发布服务,以及服务消费者如何消费这些服务。 3. **...

    spring-dubbo-parent-master.zip

    首先,"spring-dubbo-parent-master.zip"是一个包含整个项目结构的压缩包,意味着它可能包含了Spring Boot和Dubbo集成的示例代码,包括父级pom.xml文件,模块化的服务消费者和服务提供者的配置,以及可能的filter...

    dubbo+dubbo-admin.zip

    首先,在`pom.xml`文件中添加Dubbo和SpringBoot的依赖,如`dubbo-spring-boot-starter`,以及对应的版本号。然后,在`application.properties`或`application.yml`中设置Dubbo的参数,比如服务提供者的地址、端口、...

Global site tag (gtag.js) - Google Analytics