eclipse 來做springBoot 整合dubbo zookeeper
首先看看整個專案的目錄 boot-user-service-provider 服務提供方 boot-order-service-consumer 服務消費方:
1.先新增dubbbo 依賴
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
在服務提供方新增一個服務提供service,程式碼如下:
import java.util.Arrays; import java.util.List; import org.springframework.stereotype.Component; import com.alibaba.dubbo.config.annotation.Service; import com.atguigu.gmall.bean.UserAddress; import com.atguigu.gmall.service.UserService; @Service @Component public class UserServiceImpl implements UserService { @Override public List<UserAddress> getUserAddressList(String userId) { System.out.println("UserServiceImpl.....old..."); // TODO Auto-generated method stub UserAddress address1 = new UserAddress(1, "北京市昌平區巨集福科技園綜合樓3層", "1", "李老師", "010-56253825", "Y"); UserAddress address2 = new UserAddress(2, "深圳市寶安區西部矽谷大廈B座3層(深圳分校)", "1", "王老師", "010-56253825", "N"); /*try { Thread.sleep(4000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ return Arrays.asList(address1,address2); } }
2.在application.properties 新增dubbo 的配置
dubbo.application.name=user-service-provider //服務名稱
dubbo.registry.address=192.168.86.1:2181 //註冊服務地址
dubbo.registry.protocol=zookeeper //註冊協議
dubbo.protocol.name=dubbo //協議名稱
dubbo.protocol.port=20880 //協議埠3.在啟動類上面新增 @EnableDubbo
====================================================================
4.新增dubbbo 依賴
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
編寫消費端程式碼如下
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.atguigu.gmall.bean.UserAddress;
import com.atguigu.gmall.service.impl.OrderServiceImpl;
@RestController
public class OrderController {
@Autowired
private OrderServiceImpl orderService;
@RequestMapping("/initOrder")
public List<UserAddress> initOrder(@RequestParam("uid") String userId) {
return orderService.initOrder(userId);
}
}
import java.util.List;
import org.springframework.stereotype.Service;
import com.alibaba.dubbo.config.annotation.Reference;
import com.atguigu.gmall.bean.UserAddress;
import com.atguigu.gmall.service.OrderService;
import com.atguigu.gmall.service.UserService;
/**
* 服務消費
* 使用@Reference 去引用服務
* @author 26918
*
*/
@Service
public class OrderServiceImpl implements OrderService {
// @Autowired
@Reference
UserService userService;
@Override
public List<UserAddress> initOrder(String userId) {
// TODO Auto-generated method stub
List<UserAddress> list = userService.getUserAddressList(userId);
System.out.println("list::"+list.size());
return list;
}
}
5.配置服務消費application.properties
server.port=8082 //避免和zookeeper服務重疊,另外定義一個服務埠
dubbo.application.name=boot-order-service-consumer //消費服務名稱
dubbo.registry.address=zookeeper://192.168.86.1:2181 //添加註冊地址
dubbo.monitor.protocol=registry //新增監控協議
測試之前需要啟用dubbbo admin 檢視服務,和zookeeper 服務;