Spring Boot + Dubbo集成

首先,启zookeeper

然后,搭服务提供者:

pom.xml

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

		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-actuator</artifactId>
			<version>0.2.0</version>
		</dependency>

		<dependency>
			<groupId>com.alibaba.boot</groupId>
			<artifactId>dubbo-spring-boot-autoconfigure</artifactId>
			<version>0.2.0</version>
		</dependency>

如果maven报错下载不到对应的jar包,则手工配一下公共仓库:


	<repositories>
		<repository>
			<id>sonatype-nexus-snapshots</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

配application.properties或application.yml

# 服务提供者的版本号
demo.service.version=1.0.0

# 服务提供者的实现类的包路径
dubbo.scan.basePackages =com.example.demo.provider


dubbo.application.id=dubbo-provider-demo
dubbo.application.name=dubbo-provider-demo
dubbo.application.qos.port=22222
dubbo.application.qos.enable=true

# 协议
dubbo.protocol.id=dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.protocol.status=server

## 动物管理员的地址
dubbo.registry.id=my-registry
dubbo.registry.address=zookeeper://10.100.14.54:2181

服务提供者的实现类:

@Service(
        version = "${demo.service.version}",
        application = "${dubbo.application.id}",
        protocol = "${dubbo.protocol.id}",
        registry = "${dubbo.registry.id}"
)
public class DemoServiceImpl implements DemoService {

	@Override
	public String sayHello() {
		return "欢迎使用Dubbo,DemoServiceImpl say: Hello Dubbo!";
	}

}

至此,基于Spring Boot的dubbo服务提供者就完成了。

再看dubbo消费者的工程:

pom文件和起动配置文件基本一样。

消费者的引用如下:

@RestController
@RequestMapping("/consumer")
public class ConsumerController {

    @Reference(version = "${demo.service.version}",
            application = "${dubbo.application.id}",
            url = "dubbo://localhost:20880")
	private DemoService demoService;

	@RequestMapping("hello")
	public String hello() {
		String str = demoService.sayHello();
		return str;
	}

}

注:DemoService是接口类,可以通过公共引用工程,也可以创建同名同package和方法名的接口类。

然后访问地址:http://localhost:10087/consumer/hello

能得到提供者实现类里的类容,容表示访问成功。

猜你喜欢

转载自blog.csdn.net/china_3/article/details/81777461