1. 程式人生 > >eclipse 來做springBoot 整合dubbo zookeeper

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 服務;