#spring-boot-start-dubbo
Dubbo是阿里开发的一套分布式通讯框架,Spring-boot是业界比较火的微服务框架,两者可以进行结合实现分布式微服务
- 对于提供外部的服务,可以使用spring-boot的rest服务,达到Api网关的目的
- 对于内部远程Rpc调用,可以借用Dubbo能力,达到服务治理的目的
##如何发布Dubbo服务
- 在Spring Boot项目的pom.xml中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
<!--依赖于容器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
- 在application.properties添加Dubbo的版本信息和客户端超时信息,如下:
spring.dubbo.application.name=annotation-provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=org.mingyu.study
在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录
- spring boot启动
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.run(args);
}
- 编写你的Dubbo服务,只需要添加要发布的服务实现上添加 @Service ,如下
@Service(version = "1.0.0")
public class ServiceImpl implements ServiceA {
@Override
public String test() {
return "hello";
}
}
##如何引用Dubbo服务
- 在Spring Boot项目的pom.xml中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
- 在application.properties添加Dubbo的版本信息和客户端超时信息,如下:
spring.dubbo.application.name=annotation-consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.lance
在Spring Application的application.properties中添加spring.dubbo.scan即可支持Dubbo服务发布,其中scan表示要扫描的package目录
- spring boot启动
@SpringBootApplication
public class TestMain {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.run(args);
}
}
- 引用Dubbo服务,只需要添加要发布的服务实现上添加 @Reference ,如下:
@Component
public class BarAction {
@Reference(version = "1.0.0")
private ServiceA fooService;
}
##关于spring-boot开发知识 spring-boot学习笔记