Spring-boot整合dubbo简单案例

springboot使用注解即可配置dubbo服务,本次做的案例,使用的注册中心是zookeeper。

首先创建服务接口,单独的建立一个项目,用于其他项目做依赖。

使用的工具是STS,官方地址:http://spring.io/tools/sts,有插件也有整合好eclipse的完整版

该项目是个maven 普通项目,新建一个服务接口

package com.xupx.test.service;


/**
 * dubbo接口测试服务
 * @author xupx
 *
 */
public interface HelloServer {
	public String sayHello(String name);
}

接着在新建一个provider项目

1.增加dubbo依赖

    

 
<dependency>
<groupId>com.alibaba.spring.boot </groupId>
<artifactId>dubbo-spring-boot-starter </artifactId>
<version>2.0.0 </version>
</dependency>

2.增加服务接口依赖

<dependency>
    <groupId>com.proxy</groupId>
    <artifactId>springboot-dubbo-api</artifactId>
    <version>1.0.0</version>
</dependency>

在provider中新建一个实现类,发布服务

package com.xupx.serviceimpl;

import org.springframework.stereotype.Component;

import com.alibaba.dubbo.config.annotation.Service;
import com.xupx.test.service.HelloServer;
/**
 * dubbo服务提供者
 * @author peixinxu
 *
 */
@Component
//interfaceClass:服务类,timeout:超时时间,version:版本号,group:分组
//假设同一个接口被多个服务提供者实现,并且同时发布,这时候可以根据版本号或者group分组信息取得你需要的服务
@Service(interfaceClass=HelloServer.class,timeout=3000,version="1.0",group="group1")
public class HelloServiceImpl implements HelloServer {

	@Override
	public String sayHello(String name) {
		
		return "hello " + name;
	}

}

在启动springboot启动类上增加注解

package com.xupx;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;

@SpringBootApplication
@EnableDubboConfiguration //Enable Dubbo (for provider or consumer) for spring boot application
public class SpringbootDubboProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringbootDubboProviderApplication.class, args);
	}
}

接这在配置文件中增加配置

spring.application.name = dubbo-provider-demo

spring.dubbo.server=true

spring.dubbo.registry=N/A


是否

好了,接下来就是服务消费者了,和服务者提供者一样,依赖dubbo以及服务项目

启动类也一样加上

@EnableDubboConfiguration 注解

区别在与引用服务时:

package com.example.demo.controller;


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;
import com.xupx.test.service.HelloServer;

/**
 * 服务消费者测试类
 * @author peixinxu
 *
 */
@RestController
public class HelloController {
	@Reference(version="1.0",group="group1",url="dubbo://127.0.0.1:20880")//注意这里的版本号和分组要和服务提供者配置的一样
	private HelloServer helloServer;
	
	@GetMapping("/hi")
	public String sayHello(String name) {
		return helloServer.sayHello(name);
	}
}

注意:记得改端口号,别提供者和消费者的端口号冲突了。。。这个错误有点。。。。。

接下来启动zookeeper,provider,consumer

成功图片,留作纪念





注意几个地方,一定要配置应用名称否则会出异常

java.lang.IllegalStateException: ApplicationConfig.application == null

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值