springboot下dubbo的连接环境构造

微服务概述

  • 微服务是一种将业务系统进一步拆分的架构风格
  • 为服务强调每个单一业务都可以独立运行
  • 每个单一服务都应该使用更轻量的机制保持通信
  • 服务不强屌环境,可以不同语言或者数据源

微服务选择

  1. dubbo
  2. Spring Cloud

Spring Cloud是一个微服务的集合(提供了API网关,负载均衡等)

微服务基本概念

  • 提供者:服务提供者,提供服务实现
  • 消费者:服务调用者,调用提供商提供的服务实现
  • 注册地:服务注册与发现的注册中心,通常使用动物园管理员
  • 显示器:统计服务的调用次数与调用时间的监控中心
  • 集装箱:服务运行容器
  • 同一个服务可以即是供应商,又是消费者

首先再搭建这个环境前,需要先安装一下zookeeper,还有可以看看一springboot下达博文档的https://github.com/alibaba/dubbo-spring-boot-starter/blob/master/README_zh.md

首先创建一个springboot的项目,建议springboot的半杯是2.0.x的的,我的2.1.0。版本会出一些错误,不知道为什么。

一路接下来,创建好后,对项目右键创建2个模块,一个是供应商,一个是消费者

跟着达博的文档,一步一步的部署

发布达博服务

  • 供应商的POM文件中添加依赖
    <dependency>
        <groupId>com.alibaba.spring.boot</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>2.0.0</version>
    </dependency>
    <dependency>
         <groupId>com.101tec</groupId>
         <artifactId>zkclient</artifactId>
         <version>0.10</version>
    </dependency>
  • 添加一个ServiceAPI(是添加到com.cn.lx下)
public interface ServiceAPI {
    String sendMessage(String message);
}
  • 在application.properties添加达博的相关配置信息,样例配置如下
spring.application.name=dubbo-spring-boot-starter
spring.dubbo.server=true
#spring.dubbo.registry=N/A
spring.dubbo.registry=zookeeper://localhost:2181
  • 接下来在Spring Boot Application的上添加@EnableDubboConfiguration,表示要开启dubbo功能。 
@SpringBootApplication
@EnableDubboConfiguration
public class ProviderApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProviderApplication.class, args);
    }
}
  • 创建一个快速启动,里面实现ServiceAPI的方法(第二个服务注解是达博的不是弹簧的)
@Component
@Service(interfaceClass = ServiceAPI.class)
public class QuickstartServiceImpl implements ServiceAPI {
    @Override
    public String sendMessage(String message) {
        return "quickstart-provider-message=" + message;
    }
}

启动提供者的启动项,如果在控制台显示dubbo start就说明基本ok。

消费达博服务

  • 通用跟供应商一样添加达博的依赖
  • 创建一个ServiceAPI(内容和提供者中的一样,位置也一样在com.cn.lx下)
  • 在application.properties添加达博的相关配置信息,样例配置如下:
spring.application.name=dubbo-spring-boot-starter
spring.dubbo.registry=zookeeper://localhost:2181
  • 通过@Reference注入需要使用的界面(创建一个类在com.cn.lx.consumer下快速启动消费者)
@Component
public class QuickstartConsumer {
    @Reference(interfaceClass = ServiceAPI.class)
     ServiceAPI serviceAPI;

    public void sendMessage(String message){
        System.out.println(serviceAPI.sendMessage(message));
    }
}
  • 开启@EnableDubboConfiguration
@SpringBootApplication
@EnableDubboConfiguration
public class ConsumerApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext run =
                SpringApplication.run(ConsumerApplication.class, args);

        QuickstartConsumer quickstartConsumer= (QuickstartConsumer)run.getBean("quickstartConsumer");

        quickstartConsumer.sendMessage("hi");
    }
}

启动后就可以在控制台中看到信息

猜你喜欢

转载自blog.csdn.net/SneakyRogue/article/details/84538246