springboot整合dubbo+zookeeper的搭建

        首先springboot框架就不用多说了,想来大家都已经了解了。主要说下dubbo和zookeeper的概念,以及在基于springboot框架搭建dubbo+zookeeper分布式服务架构。

        来一个比较官方的解释dubbo框架:dubbo是阿里巴巴soa服务化治理方案的核心框架,是一个分布式服务的框架,致力于提高性能和透明化rpc远程服务调用方案,已经soa服务治理方案。看到这里会有点懵,什么是soa呢,什么是rpc呢???

        soa:面向服务的架构,将应用程序的不同功能单元(也叫作服务)通过服务之间的定义良好的接口和契约联系起来。

        rpc:远程过程调用协议,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

        在dubbo+zookeeper中有三个重要的角色:

1.provider(服务提供者):在我们项目中可以粗糙地理解成实现类

2.Consumer(服务消费者):可以理解为调用服务(调用实现类)的类,类似于controller,当然如果集成rabbitmq也有可能是消息队列的类,也有可能是实现类调用实现类,所以实现类可以身兼数职,既可以是服务提供者也可以是服务调用者。

3.registry(zookeeper):也就是我们的注册中心,zookeeper是Apache下的产品。

没有用dubbo之前我们一般是controller调用service,service调用mapper(dao),但是现在加上了dubbo以后就是controller(当然不止controller,所有服务消费者都可以)通过向zookeeper订阅服务,service向zookeeper注册服务,通过zookeeper这个中介,把服务提供方的服务注入到服务消费者中。

网上找了一张图(调用逻辑如图,不理解也无妨):

springboot整合dubbo+zookeeper的搭建_第1张图片

现在我们创建springboot项目,先创建父项目boot-dubbo(楼主用的是eclipse)

springboot整合dubbo+zookeeper的搭建_第2张图片

springboot整合dubbo+zookeeper的搭建_第3张图片

springboot整合dubbo+zookeeper的搭建_第4张图片

pom.xml内容如下:



	4.0.0

	com.boot
	boot-dubbo
	1.0-SNAPSHOT
	
	
		boot-dubbo-api
		boot-dubbo-provider
		boot-dubbo-consumer
	

	
	pom

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

	
	
		UTF-8
		1.8
		2.5.5
		0.10
		1.16.18
		1.5.7.RELEASE
		1.0.0
	

	
	
		
			
			
				org.springframework.boot
				spring-boot-starter
				${spring-boot.version}
			

			
			
				org.projectlombok
				lombok
				${lombok.version}
				provided
			

			
			
				com.alibaba
				dubbo
				${dubbo.version}
			

			
			
				com.101tec
				zkclient
				${zkclient.version}
			
			
			
				io.dubbo.springboot
				spring-boot-starter-dubbo
				${spring-boot-starter-dubbo.version}
			
		
	

 

再创建boot-dubbo-api(定义暴露给dubbo的接口)

 

springboot整合dubbo+zookeeper的搭建_第5张图片

建成以后我们在api项目中建一个实体类User,和一个接口interface   UserService  都是用来测试的

springboot整合dubbo+zookeeper的搭建_第6张图片

springboot整合dubbo+zookeeper的搭建_第7张图片

pom.xml为  api项目不需要依赖其他项目 所以不需要加dependencies:



    
        boot-dubbo
        com.boot
        1.0-SNAPSHOT
    
    4.0.0

    boot-dubbo-api

    

有了接口以后肯定是要建实现类(服务提供方)的项目了,建项目的步骤和api项目相同,也是new maven Module

springboot整合dubbo+zookeeper的搭建_第8张图片

springboot整合dubbo+zookeeper的搭建_第9张图片

写一个实现类重写getUser(),如下图

springboot整合dubbo+zookeeper的搭建_第10张图片

服务提供者的pom.xml文件:



	
		boot-dubbo
		com.boot
		1.0-SNAPSHOT
	
	4.0.0

	boot-dubbo-provider

	
		
			com.boot
			boot-dubbo-api
			1.0-SNAPSHOT
		
		
			io.dubbo.springboot
			spring-boot-starter-dubbo
		
	
	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

 

最后我们还差一个服务的消费者,在这个demo里边我们用的是controller,命名boot-dubbo-consumer。在里头创建一个userController类,如下图所示:

 

springboot整合dubbo+zookeeper的搭建_第11张图片

服务消费者的pom.xml



	
		boot-dubbo
		com.boot
		1.0-SNAPSHOT
	
	4.0.0

	boot-dubbo-consumer

	
		
			com.boot
			boot-dubbo-api
			1.0-SNAPSHOT
		
		
			
				org.springframework.boot
				spring-boot-starter-web
			

		
		
			io.dubbo.springboot
			spring-boot-starter-dubbo
		
	
	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	

 

接下来要干的是在linux上边安装zookeeper:

 

并装上dubbo-admin的监控平台。这个步骤暂时不演示,具体可以参考url:       linux部署zookeeper

当我们在linux上把zookeeper注册中心启动起来以后  并把dubbo-admin的监控平台用Tomcat跑起来以后再先后运行

boot-dubbo-provider项目中的启动类providerApplication中的main方法和boot-dubbo-consumer中的consumerApplication中的main方法:分别如下图

springboot整合dubbo+zookeeper的搭建_第12张图片

springboot整合dubbo+zookeeper的搭建_第13张图片

服务提供者启动后日志输出,192.168.1.121是我linux系统的ip地址,zookeeper的端口号是2181

springboot整合dubbo+zookeeper的搭建_第14张图片

服务消费者启动后看看日志输出:8080是本地tomcat启动的端口号

springboot整合dubbo+zookeeper的搭建_第15张图片

 

打开dubbo-admin的控制台就可以看到了已经有一个服务了,状态正常就说明,兼备服务提供者和服务消费者了:

springboot整合dubbo+zookeeper的搭建_第16张图片

 

最后我们访问一下这个getUser这个接口:

springboot整合dubbo+zookeeper的搭建_第17张图片

 

献上的github项目地址,如果不想自己手动搭建的可以点击链接直接下     点击打开链接

你可能感兴趣的:(linux,java,dubbo,zookeeper,Tomcat,maven,spring,springboot)