springboot zookeeper dubbo

https://www.cnblogs.com/Alandre/p/6490142.html

1、zookeeper 部署参考https://blog.csdn.net/Dopamy_BusyMonkey/article/details/81989423

2、依赖相同:

<dependency>
    <groupId>io.dubbo.springboot</groupId>
    <artifactId>spring-boot-starter-dubbo</artifactId>
    <version>1.0.0</version>
</dependency>
        
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

3、生产者配置:

server.port=8080
#dubbo
spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.busy.springboot.dubbo

4、消费者配置:

server.port=8082
#dubbo client
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.busy.springboot.dubbo

4、生产者消费者同时包含实体类和接口类

package com.busy.springboot.dubbo;

import java.io.Serializable;

public class City implements Serializable {

    private static final long serialVersionUID = -1L;

    /**
     * 城市编号
     */
    private Long id;

    /**
     * 省份编号
     */
    private Long provinceId;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 描述
     */
    private String description;

    public City() {
    }

    public City(Long id, Long provinceId, String cityName, String description) {
        this.id = id;
        this.provinceId = provinceId;
        this.cityName = cityName;
        this.description = description;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(Long provinceId) {
        this.provinceId = provinceId;
    }

    public String getCityName() {
        return cityName;
    }

    public void setCityName(String cityName) {
        this.cityName = cityName;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}
package com.busy.springboot.dubbo;

public interface CityDubboService {

    City findCityByName(String cityName);
}

 5、生产者包含服务实现:

package com.busy.springboot.dubbo;

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

@Service(version = "1.0.0")
public class CityDubboServiceImpl implements CityDubboService {
    public City findCityByName(String cityName) {
        return new City(1L,2L,cityName,"是我的故乡");
    }
}

6、消费者定义Controller,测试接口消费:

package com.busy.springboot.dubbo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

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

@Controller
public class CityController {
    
    @Reference(version = "1.0.0")
    CityDubboService cityDubboService;

    @RequestMapping("/")
    @ResponseBody
    public String index(){
        return "hello,springboot";
    }
    
    @RequestMapping("/getCity")
    @ResponseBody
    public String getCity(){
        City city = cityDubboService.findCityByName("赣州");
        return city.getCityName()+city.getDescription();
    }
    
}

 7、目录结构

猜你喜欢

转载自blog.csdn.net/Dopamy_BusyMonkey/article/details/82082367