Spring整合Dubbo+Zookeeper
1.导入依赖
2.注册服务、暴露接口
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
</dependency>
<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="e3-cart" />
<dubbo:registry protocol="zookeeper" address="192.168.25.129:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20884" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="cn.e3mall.cart.service.CartService" ref="cartServiceImpl" timeout="60000"/>
<!-- <dubbo:service interface="cn.e3mall.content.service.ContentService" ref="contentServiceImpl" timeout="60000"/> -->
<!-- 使用dubbo接受服务 -->
<dubbo:application name="e3-cart-web"/>
<dubbo:registry protocol="zookeeper" address="192.168.25.129:2181"/>
<dubbo:reference interface="cn.e3mall.service.ItemService" id="itemServiceImpl" timeout="60000"/>
<dubbo:reference interface="cn.e3mall.sso.service.LoginService" id="loginServiceImpl" />
<dubbo:reference interface="cn.e3mall.sso.service.TokenService" id="tokenServiceImpl" />
<dubbo:reference interface="cn.e3mall.cart.service.CartService" id="cartServiceImpl" />
springBoot整合Dubbo+Zookeeper实现分布式
1.加入依赖
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
注意导入日志异常
配置
server.port=8080
#服务应用名字
dubbo.application.architecture=provider-server
#注册中心地址
dubbo.registry.address=zookeeper://192.168.25.130
#那些服务要被注册
dubbo.scan.base-packages=com.example.service.TicketService
server.port=8081
#消费者到哪里拿服务
dubbo.application.name=consumer-server
#注册中心的地址
dubbo.registry.address=zookeeper://192.168.25.130
@Service
public class UserService {
//想要拿到provider-server提供的票
@Reference//应用 pom坐标 可以定义邻相同的接口名
TicketService ticketService;
public void buyTicket(){
String ticket = ticketService.getTicket();
System.out.println("在注册中心拿到=>" + ticket);
}
}
2.修改配置