sprinig boot Dubbo和zookeeper小实例
最近在学习Dubbo
所以就先写个小实例
一个简单的provider和consumer
- 首先创建Spring Boot 的工程项目springboot-dubbo
- 然后创建子项目provider和consumer,如图:
- 之后在provider的pom.xml里添加如下依赖:
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
</dependencies>
- 然后再provider和consumer里创建ServiceAPI
public interface ServiceAPI {
String sendMessage(String message);
}
- provider里创建ServiceAPI的实现类
import com.alibaba.dubbo.config.annotation.Service;
import com.jiangzh.mooc.springboot.dubbo.ServiceAPI;
import org.springframework.stereotype.Component;
@Component
@Service(interfaceClass = ServiceAPI.class)
public class QuickstartServiceImpl implements ServiceAPI {
@Override
public String sendMessage(String message) {
return "quickstart-provider-message="+message;
}
}
- 在consumer里创建consumer的调用类
import com.alibaba.dubbo.config.annotation.Reference;
import com.jiangzh.mooc.springboot.dubbo.ServiceAPI;
import org.springframework.stereotype.Component;
@Component
public class QuickStartConsumer {
@Reference(interfaceClass = ServiceAPI.class)
ServiceAPI serviceAPI;
public void sendMessage(String message){
System.out.println(serviceAPI.sendMessage(message));
}
}
- 并在ConsumerApplication中调用sendMessage方法
import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import com.jiangzh.mooc.springboot.dubbo.consumer.quickstart.QuickStartConsumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
@EnableDubboConfiguration
public class ConsumerApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(ConsumerApplication.class, args);
QuickStartConsumer quickStartConsumer = (QuickStartConsumer) run.getBean("quickStartConsumer");
quickStartConsumer.sendMessage("呵呵哒");
}
}
- 在provider和consumer的application.properties添加相应的配置
provider并启动zookeeper
#provider
spring.application.name=dubbo-spring-boot-starter
spring.dubbo.server=true
spring.dubbo.registry=zookeeper://localhost:2181
#consumer
spring.application.name=dubbo-spring-boot-starter-consumer
spring.dubbo.registry=zookeeper://localhost:2181
- 还有记得在ConsumerApplication和ProviderApplication上加@EnableDubboConfiguration注解
- 还有一点就是所有的子包和类都要放在ConsumerApplication和ProviderApplication的子目录下,不然会报错,本人亲测,折腾了好久
- 最后的运行结果