DUBBO框架的搭建与服务发布消费

dubbo是一个分布式服务框架,使用之前我们先要安装zookeeper

(dubbo结构  provider(服务生产者) + zookeeper (其中最重要的服务发现中心)+ customer(服务消费者))

第一步:zookeeper安装

下载路径以及安装命令

https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

DUBBO框架的搭建与服务发布消费_第1张图片

修改配置文件的信息

DUBBO框架的搭建与服务发布消费_第2张图片

设置datadir和dataLogDir,之前创建文件的路径

 

在data_1下创建myid =touchmyid,并输入1

 

启动zookeeper服务

注意:如果启动出现Permission denied FAILED TO WRITE PID,获取root权限,输入命令su root,输入密码,再次启动

进入zookeeper-3.4.10/bin目录,输入./zkServer.shstart

开放端口号:firewall-cmd --permanent--zone=public --add-port=2181/tcp

查看端口号是否开启:firewall-cmd --query-prot=2181/tcp

关闭防火墙:systemctl stop firewall.service

重启防火墙:systemctl restart firewall.service

dubbo服务

下载我的资源 dubbo-admin.war,把他放在tomcat的webapps下,运行tomcat,进入dubbo-admin/webapps/WEB-INF/dubbo.properties修改zookeeper的Ip地址·

将tomcat原来的ROOT改为删除,把dubbo-admin改为ROOT

访问你的tomcat,配置完成,输入帐号密码

第二步:创建服务提供者,provider项目

application.properites文件的配置

spring.dubbo.application.name=provider
spring.dubbo.registry.address=zookeeper://linux_ip_address:2181##zookeeper的端口号
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.xxxx.service   --dubbo扫描的包
server.port=8888

pom文件的配置

   
        org.springframework.boot
        spring-boot-starter-parent
        1.5.1.RELEASE
    
 
    
        1.0.0
    
 
    
 
        
        
            io.dubbo.springboot
            spring-boot-starter-dubbo
            ${dubbo-spring-boot}
        
 
        
        
            org.springframework.boot
            spring-boot-starter-web
        
 
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
 
        
        
            junit
            junit
            4.12
        

    

测试类中的代码

@SpringBootApplication
public class Test {
    public static void main(String[] args) {
        SpringApplication.run(Test.class, args);
    }

}

暴露的服务接口

public interface HiService {
      void sayHello(String name);
}

实现

@Service(version="1.0.0")//通过注解暴露接口
public class HiServiceImpl implements HiService{

    public void sayHello(String name) {
           System.err.println("hello!"+name);
    }

}

 

包结构

运行springboot项目

查看dubbo-admin ->provider

发布成功

创建consumer项目

consumer项目pom文件配置(从进行替换): 

   
        org.springframework.boot
        spring-boot-starter-parent
        1.5.1.RELEASE
    

    
        1.0.0
    

    
        
        
            io.dubbo.springboot
            spring-boot-starter-dubbo
            ${dubbo-spring-boot}
        

        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

    

application.properites文件

spring.dubbo.application.name=consumer
spring.dubbo.registry.address=zookeeper://linux_ip_address:2181
spring.dubbo.scan=com.bdqn.serviceImpl --扫描的包

server.port=8889 --更改springboot内置tomcat的端口号

测试代码

@SpringBootApplication
public class Test {
    public static void main(String[] args) {
        SpringApplication.run(Test.class, args);
    }
}




service层接口与实现类的方法

public interface HiService {
    void sayHello(String name);
}


实现类


@Component
public class HiServiceImpl implements HiService{
    @Reference(version="1.0.0")
    private HiService hiService;

    public void sayHello(String name) {
           hiService.sayHello("mmmm!");
    }


}
   

运行consumer项目

消费成功

一个简单的分布式项目

总结:dubbo作为一个分布式服务框架,总体上感觉配置略显复杂,与springcloud相比,springcloud配置更简单,快捷,轻巧

你可能感兴趣的:(java,学会使用刚开始的过程)