dubbo 起步

dubbo介绍

dubbo 是由阿里巴巴于2009年开始在内部使用,在经过内部多个版本的演化后在2012年开源的一款高性能高可用的高性能、轻量级的开源Java RPC框架。开源后虽然得到了很多互联网公司的普遍使用,但还是于2014年10月30号发布2.4.11版本后停止维护,即便如此业界对Dubbo的使用热情并没有受到太大影响,各自维护和演化自己的内部版本。在停止维护3年后的2017年9月7日Dubbo又开始更新,并且在3个月时间内连续发布了4个维护版本,最终于2018年2月15日成为了Apache基金会孵化项目

dubbo本地安装

dubbo的注册中心是依赖zookeeper,所以本地安装包含zookeeper的按照和配置;

zookeeper 安装

  • 下载zookeeper,下载传送门
  • 安装 && 配置
// 解压
tar -xzvf apache-zookeeper-3.5.5.tar.gz

// 重命名
mv apache-zookeeper-3.5.5 zookeeper

// 配置
mv zoo_sample.cfg zoo.cfg

zoo.cfg的默认配置就可以,不需要修改

  • 开启zookeeper
./bin/zkServer.sh start
  • 查看启动配置
// 连接本地zookeeper
./bin/zkCli.sh

// 查看跟节点
ls /
image.png

[备注:这是启动dubbo后的截图,可以看到有dubbo节点]

dubbo的安装

// 下载dubbo-admin代码
git clone https://github.com/apache/dubbo-admin.git

// 编译代码
mvn clean package

// 启动代码
mvn --projects dubbo-admin-server spring-boot:run

dubbo-admin的按照,git上有详细介绍,按照提示来即可;

这里,走了点弯路,其他安装资料说的步骤和这个有点出入,可能是版本问题吧;
其次,这里是要下载dubbo-admin分支,不要下错为dubbo分支代码

安装好了之后,启动浏览器的http://localhost:8080/#/service就可以看到久违、熟悉的界面了

image.png

dubbo 示例

下面来写个实例,尝试下dubbo的魅力

服务提供者

  • 服务接口GreetingService
package com.shisir.service;

public interface GreetingService {
    String sayHello(String name);
}
  • 服务具体实现GreetingServiceImpl
package com.shisir.service.impl;

import com.shisir.service.GreetingService;

public class GreetingServiceImpl implements GreetingService {
    public String sayHello(String name) {
        return "Hello " + name;
    }
}
  • 暴露服务provider-config.xml



    

    

    

    
    
    


  • 启动服务DubboProvider
package com;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class DubboProvider {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-provider.xml");

        context.start();

        System.in.read();
    }
}
  • 查看 admin


    image.png

可以看到服务如期起来了

  • 查看 zookeeper
    在之前介绍zookeeper安装时,展示了根节点下dubbo节点,现在来看下dubbo下有什么
    image.png

可以看到有刚注册的服务,也有一些节点的属性信息,不做具体展开

服务消费者

  • 引进服务consumer-config.xml



    

    
    
    


  • 服务消费者
package com;

import com.shisir.service.GreetingService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class DubboConsumer {
    public static void main(String[] args) throws IOException {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("dubbo-consumer.xml");

        context.start();

        GreetingService demoService = (GreetingService)context.getBean("demoService");

        String hello = demoService.sayHello("shiyibo");

        System.out.println(hello);

        System.in.read();
    }
}

结束语

参考

  • https://blog.csdn.net/hejingyuan6/article/details/47403299
  • https://www.jianshu.com/p/ce78298987ce
  • https://github.com/dayeshisir/dubbo-admin

你可能感兴趣的:(dubbo 起步)