SpringBoot 整合 Dubbo 進行分布式開發

SpringBoot 整合 Dubbo 進行分佈式開發

鎮樓小姐姐

自從Dubbo支持SpringBoot後,Dubbo與Spring的整合變得更加的簡單了,下面就是完整的步驟:

1. 引入依賴

com.alibaba.boot

dubbo-spring-boot-starter

0.2.0

2. 在dubbo-api中定義model和service接口,model就是普通的POJO,service接口的代碼如下:

BounterService.java

package cn.bounter.dubbo.service;

import cn.bounter.dubbo.model.Bounter;

public interface BounterService {

Bounter findById(long id);

}

3. 服務提供者實現接口並配置Dubbo

BounterServiceImpl.java

package cn.bounter.dubbo.service;

import java.util.Date;

import com.alibaba.dubbo.config.annotation.Service;

import cn.bounter.dubbo.model.Bounter;

@Service

public class BounterServiceImpl implements BounterService {

@Override

public Bounter findById(long id) {

//模擬訪問數據庫

return new Bounter().setId(1L).setName("simon").setCreateTime(new Date()).setCreateBy(1L);

}

}

application.properties

## Application

server.port=28080

## Dubbo

dubbo.application.name=dubbo-provider

dubbo.registry.address=zookeeper://47.98.151.249:2181

dubbo.protocol.name=dubbo

dubbo.protocol.port=20880

dubbo.scan.basePackages=cn.bounter

4. 服務消費者配置Dubbo並調用Dubbo服務

application.properties

# Application

server.port=18080

## Dubbo

dubbo.application.name=dubbo-consumer

dubbo.registry.address=zookeeper://127.0.0.1:2181

dubbo.scan=cn.bounter

BounterController.java

package cn.bounter.dubbo.controller;

import org.springframework.web.bind.annotation.CrossOrigin;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;

import cn.bounter.dubbo.model.ResponseData;

import cn.bounter.dubbo.service.BounterService;

@RestController

@CrossOrigin

@RequestMapping("/api/bounter")

public class BounterController {

@Reference

private BounterService bounterService;

@GetMapping("/{id}")

public ResponseData> get(@PathVariable Long id) {

return new ResponseData<>().success().data(bounterService.findById(id));

}

}


分享到:


相關文章: