GitHub
dubbo的GitHub地址
https://github.com/apache/incubator-dubbo
dubbo场景启动器
https://github.com/apache/incubator-dubbo-spring-boot-project
版本配置
Spring boot使用,2.0.4版本
dubbo使用,0.2.0版本
参考文档
https://github.com/apache/incubator-dubbo-spring-boot-project
dubbo-spring-boot-starter
自动配置
导入了需要的jar包
配置文件,标签配置
application.properties
提供者
dubbo.application.name=user-service-provider
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
dubbo.monitor.protocol=registry
dubbo.scan.base-packages=com.atguigu.gmall
配置说明
application.name
是服务名,不能跟别的dubbo提供端重复
registry.protocol
是指定注册中心协议
registry.address
是注册中心的地址加端口号
protocol.name
是分布式固定是dubbo,不要改
base-package
注解方式要扫描的包
消费者
dubbo.application.name=boot-order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry
dubbo.scan.base-package=com.atguigu.gmall
dubbo.protocol.name=dubbo
注解配置
生产者
@Service
使用dubbo提供的@Service注解
@Service//暴露服务
@Component
public class UserServiceImpl implements UserService {
@HystrixCommand
@Override
public List<UserAddress> getUserAddressList(String userId) {
@EnableDubbo
开启注解功能
@EnableDubbo //开启基于注解的dubbo功能
@EnableHystrix //开启服务容错
@SpringBootApplication
public class BootUserServiceProviderApplication {
public static void main(String[] args) {
SpringApplication.run(BootUserServiceProviderApplication.class, args);
}
}
消费者
@Reference
使用dubbo提供的@Reference注解
@Service
public class OrderServiceImpl implements OrderService {
//@Autowired
@Reference
UserService userService;
@EnableDubbo
开启注解功能
@EnableDubbo
@EnableHystrix
@SpringBootApplication
public class BootOrderServiceConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(BootOrderServiceConsumerApplication.class, args);
}
}
注意
如果,没有在配置文件中配置
dubbo.scan.base-package
需要,使用@EnableDubbo注解
开启Dubbo注解功能