Java学习之路

Springboot与分布式

2019-07-19  本文已影响40人  椰子奶糖

Springboot与分布式

分布式系统:

Zookeeper与Dubbo

docker 安装

docker 安装zookeeper

    docker pull zookeeper
docker run --name zk01 -p 2181:2181 --restart always -d a873528df41f

Springboot与Dubbo

        <!-- Dubbo Spring Boot Starter -->
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.1.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.101tec/zkclient -->
        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.11</version>
        </dependency>

#配置当前应用的名字
dubbo.application.name=provider-ticket

#配置zookeeper地址,这里的zookeeper是在虚拟机中docker装的
dubbo.registry.address=zookeeper://192.168.88.132:2181

#配置扫描的包,内容是要扫描的包的Reference(包的全类名)
dubbo.scan.base-packages=xxxx.xxxx.xxxx.service
/**
 * Created by CHEN on 2019/7/18.
 */
public interface TicketService {
    public String getTicket();
}



import com.alibaba.dubbo.config.annotation.Service;
import org.springframework.stereotype.Component;

/**
 * Created by CHEN on 2019/7/18.
 */
@Component//加载Spring的容器中
@Service//将服务发布出去
public class TicketServiceImpl implements TicketService {

    @Override
    public String getTicket() {
        return "《这是一张电影票》";
    }
}

import org.springframework.stereotype.Service;
import com.alibaba.dubbo.config.annotation.Reference;

/**
 * Created by CHEN on 2019/7/18.
 */
@Service
public class UserService {

    //  @Reference远程调用,通过全类名匹配的方式
    @Reference
    TicketService ticketService;


    public String hello(){

        String ticket = ticketService.getTicket();
        System.out.println(ticket);
        return ticket;
    }

}

测试:

image.png
上一篇 下一篇

猜你喜欢

热点阅读