正常情况下,dubbo肯定要搭配注册中心使用,如:zk。但当注册中心不可用的情况下,dubbo如何调用服务?它的解决方案是直连:通过硬编码的方式在代码(消费者)中留下服务提供方的ip端口,无须从注册中心获取服务信息。这种应用场景应该不多,但需要做个了解。
import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(value = "a.b.service")
@EnableDubboConfig // 自动配置dubbo
public class UserConfig {
}
import a.b.ProductService;
import a.b.entity.Product;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Component;
@Component
public class UserServiceImpl {
// 通过url属性配置服务提供者的ip端口
@DubboReference(group = "dev", version = "1.0.0", retries = 0, url = "localhost:20880")
private ProductService productService;
public Product getProduct() {
return productService.getProduct();
}
}
网友评论