Dubbo Spring Boot ProjectDubbo 的 Spring Boot 簡化整合
Dubbo Spring Boot Project 致力于簡化 Dubbo 應(yīng)用在 Spring Boot 環(huán)境中的開發(fā),主要包括自動裝配(Auto-Configure)、外部化配置(Externalized-Configuration)以及生產(chǎn)準(zhǔn)備(Actuator)等。
快速上手
服務(wù)接口(RPC)
public interface DemoService {
String sayHello(String name);
}
服務(wù)提供者(Provider)
實現(xiàn)DemoServer接口提供服務(wù)(放置于 com.alibaba.boot.dubbo.demo.provider.service包下):
@Service(
version = "1.0.0",
application = "${dubbo.application.id}",
protocol = "${dubbo.protocol.id}",
registry = "${dubbo.registry.id}"
)
public class DefaultDemoService implements DemoService {
public String sayHello(String name) {
return "Hello, " + name + " (from Spring Boot)";
}
}
配置application.properties 以提供外部化配置源:
# Spring boot application spring.application.name = dubbo-provider-demo server.port = 9090 management.port = 9091 # Dubbo 組件 (如 @Service , @Reference) 掃描路徑,多路徑以","分割 dubbo.scan.basePackages = com.alibaba.boot.dubbo.demo.provider.service # Dubbo Config Bean 外部化配置 dubbo.application.id = dubbo-provider-demo dubbo.application.name = dubbo-provider-demo dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345 dubbo.registry.id = my-registry
提供服務(wù)提供者引導(dǎo)類:
@SpringBootApplication
public class DubboProviderDemo {
public static void main(String[] args) {
SpringApplication.run(DubboProviderDemo.class,args);
}
}
服務(wù)消費者(Consumer)
實現(xiàn)服務(wù)消費者 Controller (位于com.alibaba.boot.dubbo.demo.consumer.controller包下):
@RestController
public class DemoConsumerController {
@Reference(version = "1.0.0",
application = "${dubbo.application.id}",
url = "dubbo://localhost:12345")
private DemoService demoService;
@RequestMapping("/sayHello")
public String sayHello(@RequestParam String name) {
return demoService.sayHello(name);
}
}
增加外部化配置至application.properties:
# Spring boot application spring.application.name = dubbo-consumer-demo server.port = 8080 management.port = 8081 # Dubbo Config Bean 外部化配置 dubbo.application.id = dubbo-consumer-demo dubbo.application.name = dubbo-consumer-demo dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345
提供服務(wù)消費者引導(dǎo)類:
@SpringBootApplication(scanBasePackages = "com.alibaba.boot.dubbo.demo.consumer.controller")
public class DubboConsumerDemo {
public static void main(String[] args) {
SpringApplication.run(DubboConsumerDemo.class,args);
}
}評論
圖片
表情
