Apache Dubbo Apache Dubbo™ (incubating)是一款高性能Java RPC框架。下午從新整理一下,紀錄下來html
一、eclipse 創建一個maven項目java
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>dubbolangtutu</groupId> <artifactId>dubbolangtutu</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbolangtutu</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-client</artifactId> <version>2.11.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.11.0</version> </dependency> </dependencies> </project>
二、創建接口和對應實現類git
GreetingService 接口apache
package dubbolangtutu.dubbolangtutu.service; public interface GreetingService { public String sayHello(String name); }
GreetingServiceImpl 實現類框架
package dubbolangtutu.dubbolangtutu.service; public class GreetingServiceImpl implements GreetingService { public String sayHello(String name) { return "Hello " + name; } }
二、新建生產者eclipse
package dubbolangtutu.dubbolangtutu; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.RegistryConfig; import com.alibaba.dubbo.config.ServiceConfig; import dubbolangtutu.dubbolangtutu.service.GreetingService; import dubbolangtutu.dubbolangtutu.service.GreetingServiceImpl; import java.io.IOException; public class Provider { public static void main(String[] args) throws IOException { ServiceConfig<GreetingService> serviceConfig = new ServiceConfig<GreetingService>(); serviceConfig.setApplication(new ApplicationConfig("first-dubbo-provider")); serviceConfig.setRegistry(registry()); serviceConfig.setInterface(GreetingService.class); serviceConfig.setRef(new GreetingServiceImpl()); serviceConfig.export(); System.in.read(); } public static RegistryConfig registry() { RegistryConfig registryConfig = new RegistryConfig(); registryConfig.setAddress("127.0.0.1:2181"); registryConfig.setProtocol("zookeeper"); return registryConfig; } }
三、新建消費者maven
package dubbolangtutu.dubbolangtutu; import com.alibaba.dubbo.config.ApplicationConfig; import com.alibaba.dubbo.config.ReferenceConfig; import com.alibaba.dubbo.config.RegistryConfig; import dubbolangtutu.dubbolangtutu.service.GreetingService; public class Consumer { public static void main(String[] args) { ReferenceConfig<GreetingService> referenceConfig = new ReferenceConfig<GreetingService>(); referenceConfig.setApplication(new ApplicationConfig("first-dubbo-consumer")); referenceConfig.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181")); referenceConfig.setInterface(GreetingService.class); GreetingService greetingService = referenceConfig.get(); System.out.println(greetingService.sayHello("world")); } }
四、啓動zookeeperide
五、啓動生產者 ,而後啓動消費者 查看輸出性能
消費者啓動:ui
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Hello world
附件: