比较spring cloud和dubbo,各自的优缺点是什么 - 趁年轻再疯狂一次吧 - CSDN博客 https://blog.csdn.net/u010664947/article/details/80007767
网易考拉海购Dubbok框架优化详解_存储_基础信息化_文章_e-works数字化企业网 http://articles.e-works.net.cn/storage/article133435.htm
Features
- Transparent interface based RPC
- Intelligent load balancing
- Automatic service registration and discovery
- High extensibility
- Runtime traffic routing
- Visualized service governance
Getting started
The following code snippet comes from Dubbo Samples. You may clone the sample project and step into dubbo-samples-api
sub directory before read on.
# git clone https://github.com/dubbo/dubbo-samples.git
# cd dubbo-samples/dubbo-samples-api
There's a README file under dubbo-samples-api
directory. Read it and try this sample out by following the instructions.
Maven dependency
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.6.4</version>
</dependency>
Define service interfaces
package org.apache.dubbo.demo.api;
public interface GreetingService {
String sayHello(String name);
}
See api/GreetingService.java on GitHub.
Implement service interface for the provider
package org.apache.dubbo.demo.provider;
import org.apache.dubbo.demo.GreetingService;
public class GreetingServiceImpl implements GreetingService {
public String sayHello(String name) {
return "Hello " + name;
}
}
See provider/GreetingServiceImpl.java on GitHub.
Start service provider
package org.apache.dubbo.demo.provider;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import org.apache.dubbo.demo.GreetingService;
import java.io.IOException;
public class Application {
public static void main(String[] args) throws IOException {
ServiceConfig<GreetingService> serviceConfig = new ServiceConfig<GreetingService>();
serviceConfig.setApplication(new ApplicationConfig("first-dubbo-provider"));
serviceConfig.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
serviceConfig.setInterface(GreetingService.class);
serviceConfig.setRef(new GreetingServiceImpl());
serviceConfig.export();
System.in.read();
}
}
See provider/Application.java on GitHub.
Build and run the provider
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.demo.provider.Application exec:java
Call remote service in consumer
package org.apache.dubbo.demo.consumer;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import org.apache.dubbo.demo.GreetingService;
public class Application {
public static void main(String[] args) {
ReferenceConfig<GreetingService> referenceConfig = new ReferenceConfig<GreetingService>();
referenceConfig.setApplication(new ApplicationConfig("first-dubbo-consumer"));
referenceConfig.setRegistry(new RegistryConfig("multicast://224.5.6.7:1234"));
referenceConfig.setInterface(GreetingService.class);
GreetingService greetingService = referenceConfig.get();
System.out.println(greetingService.sayHello("world"));
}
}
Build and run the consumer
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.demo.consumer.Application exec:java
The consumer will print out Hello world
on the screen.
See consumer/Application.java on GitHub.
Next steps
- Your first Dubbo application - A 101 tutorial to reveal more details, with the same code above.
- Dubbo user manual - How to use Dubbo and all its features.
- Dubbo developer guide - How to invovle in Dubbo development.
- Dubbo admin manual - How to admin and manage Dubbo services.
Contact
-
Mailing list:
- dev list: for dev/user discussion. subscribe, unsubscribe, archive, guide
-
Bugs: Issues
-
Gitter: Gitter channel
-
Twitter: @ApacheDubbo
Contributing
See CONTRIBUTING for details on submitting patches and the contribution workflow.
How can I contribute?
- Take a look at issues with tag called
Good first issue
orHelp wanted
. - Join the discussion on mailing list, subscription guide.
- Answer questions on issues.
- Fix bugs reported on issues, and send us pull request.
- Review the existing pull request.
- Improve the website, typically we need
- blog post
- translation on documentation
- use cases about how Dubbo is being used in enterprise system.
- Improve the dubbo-ops/dubbo-monitor.
- Contribute to the projects listed in ecosystem.
- Any form of contribution that is not mentioned above.
- If you would like to contribute, please send an email to dev@dubbo.incubator.apache.org to let us know!
Reporting bugs
Please follow the template for reporting any issues.
Reporting a security vulnerability
Please report security vulnerability to us privately.
Dubbo eco system
- Dubbo Ecosystem Entry - A GitHub group
dubbo
to gather all Dubbo relevant projects not appropriate in apache group yet - Dubbo Website - Apache Dubbo (incubating) official website
- Dubbo Samples - samples for Apache Dubbo (incubating)
- Dubbo Spring Boot - Spring Boot Project for Dubbo
- Dubbo OPS - The reference implementation for Dubbo admin