最近工作上的事情比较多,所以趁着元旦小长假把这期的整合整理了下。springboot整合分布式框架dubbo是现在不少大型企业在用的东西。很多duboot的整合都是xml文件形式,既然使用springboot咱们就不用繁琐的xml文件。下面我们来具体介绍下:
DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,想象一下阿里巴巴的服务站点你就知道这个东西是有多么强大了。dubbo是一款开源的框架,在前段时间以前阿里对其开源部分不进行维护更新一直放置与git上,但是并不影响其使用的前景,许多实力公司会自己去封装一下以配合其下业务。前段时间阿里好像开始维护更新开源的dubbo这无疑是个好消息,dubbo具体的好处以及其原理大家可自行百度/google或者自己深入研究。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户,配合dubbo使用的注册中心大概有三种,今天我们只简单介绍下zookeeper。
<dependency>
<groupId>io.dubbo.springbootgroupId>
<artifactId>spring-boot-starter-dubboartifactId>
<version>1.0.0version>
dependency>
3.配置application.yml/application.properties:
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.demo.service
server.port=8888
4.然后你可以编写你的服务接口以及其实现类@Service(version = “1.0.0”)是关键,这个注解负责暴露你的服务:
package com.demo.service;
/** * 测试服务 * @author ch * */
public interface DemoServices {
public void toProvider() throws Exception;
}
package com.demo.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.demo.service.DemoServices;
@Service(version = “1.0.0”)
public class DemoServicesImpl implements DemoServices {
@Override
public void toProvider() throws Exception {
System.out.println("恭喜你连接成功");
}
}
5.启动application.java,你就可以在控制台看到服务暴露成功:
此时还没有消费者
消费者项目:
6.引入依赖:
dependency>
<groupId>com.demogroupId>
<artifactId>springboot-dubbo-providerartifactId>
<version>0.0.1-SNAPSHOTversion>
dependency>
<dependency>
<groupId>io.dubbo.springbootgroupId>
<artifactId>spring-boot-starter-dubboartifactId>
<version>1.0.0version>
dependency>
7.配置application.yml/application.properties:
spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
spring.dubbo.scan=com.demo.service.impl
server.port=8889
8.服务调用者(@Reference(version = “1.0.0”)这个是关键):
/** * 消费服务实现 * @author ch * */
@Component
public class DemoServiceConImpl implements DemoServiceCon{
@Reference(version = "1.0.0")
private DemoServices demoServices;
@Override
public void ConService() throws Exception {
demoServices.toProvider();
}
}
dubbo控制台可以看到具体的服务提供消费信息,还可以对其路由进行控制等。
本文是spring-boot-start-dubbo依赖的基础上实现的,还可以直接自己去读取配置初始化进行dubbo整合。
源码地址:
https://gitee.com/chenghao842822530/springbootdemo/tree/master/springboot-dubbo
下期准备整合mq。