1.導入依賴
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-recipes</artifactId> <version>2.12.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.14</version> <!--排除這個slf4j-log4j12--> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency>
2.在服務提供者模塊配置文件配置注冊中心
dubbo.application.name=provider dubbo.registry.address=zookeeper://xxxxx:2181 dubbo.scan.base-packages=com.ws.service server.port=8001
3.編寫服務提供者服務(注意@Service是dubbo里的)
package com.ws.service; import org.apache.dubbo.config.annotation.Service; import org.springframework.stereotype.Component; @Component @Service //dubbo里的service public class TicketServiceImpl implements TickerService{ @Override public String getTicket() { return "恭喜拿到票"; } }
4.在消費者配置文件里配置服務取出地址
server.port=8002 dubbo.application.name=consumer dubbo.registry.address=zookeeper://39.105.66.142:2181
5.編寫消費者(此處的遠程調用需要在消費者服務同一級目錄下有着和提供者一樣的接口或在pom文件里引入提供者)
package com.ws.service; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Service; @Service public class UserService { @Reference //遠程調用 TickerService tickerService; public void buyTicker(){ System.out.println(tickerService.getTicket()); } }
5.調用UserService里的buyTicket方法進行測試