Dubbo简单入门

it2026-08-05  13

步骤:

前提:先开启zookeeper服务 1.提供者提供服务 (1)导入依赖 (2)配置注册中心的地址,以及服务发现名,和要扫描的包 (3)在想要被注册的服务上面——增加一个注解@DubboService 2.消费者如何消费 (1)导入依赖 (2)配置注册中心的地址,配置自己的服务名 (3)从远程注入服务@DubboReference

 

1.提供者配置

application.properties配置:

server.port=8001 #服务应用名字 dubbo.application.name=provider_server #注册中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 #那些服务要被注册 dubbo.scan.base-packages=com.mi.services

服务接口:

public interface TicketService { public String getTicket(); }

服务实现类:

//zookeeper:服务注册与发现 @DubboService//可以被扫描到,在项目启动就自动注册到注册中心 @Component//尽量不使用@Service是因为Service有2种注解,Spring和Dubbo都有该注解,但是在新版的Dubbo中被替代为@DubboService,就无需担心 public class TicketServiceImpl implements TicketService { @Override public String getTicket() { return "芈的provider-TicketServiceImpl"; } }

2.消费者配置

application.properties配置:

server.port=8002 #消费者去哪里拿服务,需要暴露自己的名字 dubbo.application.name=consumer_server #注册中心地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 #那些服务要被注册 dubbo.scan.base-packages=com.mi.services

接口(结构要和提供者一样,同时要将提供者的接口复制一份到消费者的services下):

public interface UserService { //拿到provider的票 public void getTicket(); }

实现类:

@Service//Spring的@Service public class UserServiceImpl implements UserService { @DubboReference //新版Dubbo不再使用@Reference,引用 可以定义路径相同的接口名 TicketService ticketService; @Override public void getTicket() { String ticket = ticketService.getTicket(); System.out.println("在注册中心拿到"+ticket); } }

3.在消费者端测试:

@SpringBootTest class ConsumerServerApplicationTests { @Autowired UserService userService; @Test void contextLoads() { userService.getTicket(); } }

测试结果:

 

最新回复(0)