| commit | 1fdb8c5279532ee3a20970af14319fb212c1ede5 | [log] [tgz] |
|---|---|---|
| author | Mercy Ma <mercyblitz@gmail.com> | Mon Jan 28 15:14:16 2019 +0800 |
| committer | GitHub <noreply@github.com> | Mon Jan 28 15:14:16 2019 +0800 |
| tree | 2f7c8f93dd7fe68f9701671de9dd1cddc103c3ee | |
| parent | 2bd0d6921776e644561bbf91d55160d955c715da [diff] |
Update README.md
Dubbo Spring Boot Project makes it easy to create Spring Boot application using Dubbo as RPC Framework. What's more, it aslo provides
Dubbo |ˈdʌbəʊ| is a high-performance, java based RPC framework open-sourced by Alibaba. As in many RPC systems, dubbo is based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types. On the server side, the server implements this interface and runs a dubbo server to handle client calls. On the client side, the client has a stub that provides the same methods as the server.
Current Project is a legacy one for maintaining Spring Boot 1.x
You can introduce the latest dubbo-spring-boot-starter to your project by adding the following dependency to your pom.xml
<dependencies> ... <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-autoconfigure</artifactId> <version>0.1.2</version> </dependency> <!-- Dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.5</version> </dependency> <!-- Spring Context Extras --> <dependency> <groupId>com.alibaba.spring</groupId> <artifactId>spring-context-support</artifactId> <version>1.0.2</version> </dependency> ... </dependencies>
If your project failed to resolve the dependency, try to add the following repository:
<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>
If you'd like to attempt to experience latest features, you also can build from source as follow:
Maven install =
mvn install
| versions | Java | Spring Boot | Dubbo |
|---|---|---|---|
0.1.x | 1.7+ | 1.5.x | 2.6.x + |
If you don't know about Dubbo , please take a few minutes to learn http://dubbo.io/ . After that you could dive deep into dubbo user guide.
Usually , There are two usage scenarios for Dubbo applications , one is Dubbo service(s) provider , another is Dubbo service(s) consumer, thus let's get a quick start on them.
First of all , we suppose an interface as Dubbo RPC API that a service provider exports and a service client consumes :
public interface DemoService { String sayHello(String name); }
Service Provider implements DemoService :
@Service( version = "${demo.service.version}", 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)"; } }
then , provides a bootstrap class :
@SpringBootApplication public class DubboProviderDemo { public static void main(String[] args) { SpringApplication.run(DubboProviderDemo.class,args); } }
last , configures application.properties :
# Spring boot application spring.application.name = dubbo-provider-demo server.port = 9090 management.port = 9091 # Service version demo.service.version = 1.0.0 # Base packages to scan Dubbo Components (e.g @Service , @Reference) dubbo.scan.base-packages = com.alibaba.boot.dubbo.demo.provider.service # Dubbo Config properties ## ApplicationConfig Bean dubbo.application.id = dubbo-provider-demo dubbo.application.name = dubbo-provider-demo ## ProtocolConfig Bean dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345 ## RegistryConfig Bean dubbo.registry.id = my-registry dubbo.registry.address = N/A
DefaultDemoService's placeholders( ${dubbo.application.id}, ${dubbo.protocol.id}, ${dubbo.registry.id} ) sources from application.properties.
More details , please refer to Dubbo Provider Sample.
Service consumer requires Spring Beans to reference DemoService :
@RestController public class DemoConsumerController { @Reference(version = "${demo.service.version}", application = "${dubbo.application.id}", url = "dubbo://localhost:12345") private DemoService demoService; @RequestMapping("/sayHello") public String sayHello(@RequestParam String name) { return demoService.sayHello(name); } }
then , also provide a bootstrap class :
@SpringBootApplication(scanBasePackages = "com.alibaba.boot.dubbo.demo.consumer.controller") public class DubboConsumerDemo { public static void main(String[] args) { SpringApplication.run(DubboConsumerDemo.class,args); } }
last , configures application.properties :
# Spring boot application spring.application.name = dubbo-consumer-demo server.port = 8080 management.port = 8081 # Service version demo.service.version = 1.0.0 # Dubbo Config properties ## ApplicationConfig Bean dubbo.application.id = dubbo-consumer-demo dubbo.application.name = dubbo-consumer-demo ## ProtocolConfig Bean dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345
If DubboProviderDemo works well , please mark sure Dubbo service(s) is active.
More details , please refer to Dubbo Consumer Sample
Having trouble with Dubbo Spring Boot? We’d like to help!
If you want to try out thr latest features of Dubbo Spring Boot , it can be easily built with the maven wrapper. Your JDK is 1.7 or above.
$ ./mvnw clean install
There are some modules in Dubbo Spring Boot Project , let's take a look at below overview :
The main usage of dubbo-spring-boot-parent is providing dependencies management for other modules.
dubbo-spring-boot-autoconfigure uses Spring Boot‘s @EnableAutoConfiguration which helps core Dubbo’s components to be auto-configured by DubboAutoConfiguration. It reduces code, eliminates XML configuration.
dubbo-spring-boot-actuator provides production-ready features (e.g. health checks, endpoints, and externalized configuration).
dubbo-spring-boot-starter is a standard Spring Boot Starter, which contains dubbo-spring-boot-autoconfigure and dubbo-spring-boot-actuator. It will be imported into your application directly.
The samples project of Dubbo Spring Boot that includes two parts:
Dubbo Service will be exported on localhost with port 12345.
Dubbo Service will be consumed at Spring WebMVC Controller .