dubbo构建应用
1.Dubbo介绍
Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。
2.Dubbo原理
是不是看着比较懵逼,博主用通俗的语言讲解一下吧,这张图里两个英文单词大家应该比较熟悉,一个Provider(提供者),一个Consumer(消费者),顾名思义,提供者用来提供服务,消费者用来消费服务的,举个例子,房东和房客就是消费和被消费的关系,房东提供租房这项服务,房客把房子租下来,消费了租房这项服务.但是我们知道,当租房子时候苦于不知道价格,不好找房源等问题,这时候就出现了中介这个东西,也就是图中的Registry(注册),当我们想找房子的时候,就可以直接找中介,提供者(房东)会提前在中介上登记房源信息,我们只需要告诉中介我们需要什么样的租房服务,中介就会告诉我们我们需要的房子在哪哪哪,这就是dobbu的原理,最后Monitor(监控)则是负责查看提供者和消费者链接是否正常,(就如中介会让你签租房合同,这里不是很恰当).这就是dubbo的原理,这时候有的同鞋就会问了,我直接将消费者和服务者链接起来不就可以了,为啥非要通过Registry这个东东?这里我多说两句.
dubbo既然出现了就一定是有他的需求的,也一定是解决了某些问题,那是哪种问题被解决了呢?当我们的系统服务客户群只有几十个,百个的时候完全没必要用分布式集群搭建,只有当我们的客户群数量极大,大到我们不得不采用分布方法拆分系统,以防止系统耦合复杂,这样当系统越来越复杂的时候,系统与系统之间的调用关系也越来越复杂,你可以想象淘宝将服务分布式架构图会多复杂,我猜想淘宝的架构师自己都很难理清楚系统与系统之间的调用关系,这个时候我们加上一个中间机构,就有点像第三方,我们不管什么服务都发布在第三方,调用的时候只用在第三方调用就好了,这样不就简单很多吗?这就是dubbo的作用.
dubbo大概讲清楚了,下来说说dubbo使用方法吧
3.dubbo的使用
我们知道,dubbo有一个Registry(注册机构),dubbo官方推荐使用ZooKeeper,至于ZooKeeper的详细介绍博主就不细说了,大家可以把它理解为第三方(需要部署在linux上的第三方机构),而消费者和提供者则是两个发布的服务,说白了就是用发布的项目,其中有项目提供服务,有项目调用服务.
关于提供者和消费者后面慢慢说,现在我们先说ZooKeeper的安装.
安装环境:
Linux:centos6.4
Jdk:1.7以上版本
Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。
安装步骤:
第一步:安装jdk
详细的需要去查看博主jdk安装博文
第二步:把zookeeper的压缩包上传到linux系统。
博主曾经学过上传工具的介绍使用,需要的童鞋自行查找下博主的博客
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.10.tar.gz
解压成功后如上图zookeeper-3.4.10蓝色文件夹
第四步:进入zookeeper-3.4.6目录,创建data文件夹。
就是新建data文件夹
博主这里已经新建过了
第五步:把zoo_sample.cfg改名为zoo.cfg
ps:zoo_sample.cfg文件在conf文件夹中,其中dubbo的配置文件
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
这命令的意思为修改文件名称改为zoo.cfg,大家也可以cp命令copy文件
第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/data
ps:这里强调一下,这里的地址要修改到你新建data文件的全限定名称
第七步:启动zookeeper
[root@localhost bin]# ./zkServer.sh start
关闭:[root@localhost bin]# ./zkServer.sh stop
查看状态:[root@localhost bin]# ./zkServer.sh status
4.dubbo在java中的使用
需要以来的jar包
ps:代码中博主没有贴出版本号,写在这里大家自行参考版本
<dubbo.version>2.5.3</dubbo.version>
<zookeeper.version>3.4.7</zookeeper.version>
<zkclient.version>0.1</zkclient.version>
<!-- dubbo相关 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>org.jboss.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
</dependency>
需要将dubbo配置在Spring文件中
<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="aliyun-manager" />
<dubbo:registry protocol="zookeeper"
address="192.168.32.129:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="cn.aliyun.service.ItemService" ref="itemServiceImpl" />
部分说明
如果没什么问题的话,这样服务就发布成功了.我们看一眼日志
接受服务端dubbo配置文件
<dubbo:application name="aliyun-manager-web"/>
<dubbo:registry protocol="zookeeper" address="192.168.32.129:2181"/>
<dubbo:reference interface="cn.aliyun.service.ItemService" id="itemService" timeout=""/>
日志
连接成功
ps:博主默认大家有一定的基础,没有特别详细的写过程,如果有什么问题,在下方留言就好了
说一种情况,如果服务开启后连接不上zookeeper,有可能是端口未开放,开放端口或关闭防火墙就好了
欢迎转载:
中文名:惠凡
博客名:淹死的鱼o0
转载时请说明出处:http://www.cnblogs.com/huifan/
dubbo构建应用的更多相关文章
- 基于dubbo构建分布式项目与服务模块
关于分布式服务架构的背景和需求可查阅http://dubbo.io/.不同于传统的单工程项目,本文主要学习如何通过maven和dubbo将构建分布项目以及服务模块,下面直接开始. 创建项目以及模块 ...
- Spring-boot:5分钟整合Dubbo构建分布式服务
概述: Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常 ...
- Spring Boot Dubbo 构建分布式服务
概述: 节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数 ...
- 基于dubbo源码包通过Maven构建dubbo的详细步骤
通过Maven构建dubbo 既然可以下载得到源码以及发布包,那么为什么要去构建dubbo呢?,我们先来看下dubbo的主要模块: 我们不仅要使用dubbo的核心框架,还要使用它的一些服务,比如管理控 ...
- 基于dubbo的分布式项目实例应用
本文主要学习dubbo服务的启动检查.集群容错.服务均衡.线程模型.直连提供者.只定阅.只注册等知识点,希望通过实例演示进一步理解和掌握这些知识点. 启动检查 Dubbo缺省会在启动消费者时检查依赖的 ...
- 基于开源Dubbo分布式RPC服务框架的部署整合
一.前言 Dubbo 作为SOA服务化治理方案的核心框架,用于提高业务逻辑的复用.整合.集中管理,具有极高的可靠性(HA)和伸缩性,被应用于阿里巴巴各成员站点,同时在包括JD.当当在内的众多互联网项目 ...
- Spring-Boot:Spring Cloud构建微服务架构
概述: 从上一篇博客<Spring-boot:5分钟整合Dubbo构建分布式服务> 过度到Spring Cloud,我们将开始学习如何使用Spring Cloud 来搭建微服务.继续采用上 ...
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...
- Spring Cloud,Dubbo及HSF对比
Round 1:背景 Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点.阿里巴巴近几年对开源社区的贡献不论在国内还是国外都是引人注目的,比如:JStorm捐赠给Apa ...
随机推荐
- linux--mongodb安装与配置
linux下的mongodb的安装: 在mongodb的官网上下载:mongodb-linux-x86_64-rhel62-3.2.3.gz1.解压: tar -xvf mongodb-linux-x ...
- k8s基本概念
1)Master模块简介: Master是Cluster的大脑,它的主要职责是调度,即决定将应用放在哪里运行.Master运行Linux操作系统,可以是物理机或者虚拟机.为了实现高可用,可以运 ...
- 转义字符\e
Windows 平台下,conio.h 中有许多操作控制台颜色.格式的函数.但是再 Linux 平台下却没有类似的函数.经过在网上的一番搜索,找到了解决此问题的方法——转义字符\e.注意,\e这种写法 ...
- 【leetcode】861. Score After Flipping Matrix
题目如下: 解题思路:本题需要知道一个数字规律,即pow(2,n) > sum(pow(2,0)+pow(2,1)+...+pow(2,n-1)).所以,为了获得最大值,要保证所有行的最高位是1 ...
- ES6基本用法
es6是JS(JavaScript)的下一个版本. 新增了let命令,用来声明变量.变量在第一个花括号内有用,先声明后引用.不允许重复声明.存在暂时性死区. const声明一个只读的常量.一旦声明,常 ...
- 基于MaxCompute InformationSchema进行冷门表热门表访问分析
一.需求场景分析 在实际的数据平台运营管理过程中,数据表的规模往往随着更多业务数据的接入以及数据应用的建设而逐渐增长到非常大的规模,数据管理人员往往希望能够利用元数据的分析来更好地掌握不同数据表的使用 ...
- Web上传文件的三种解决方案
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = ...
- next_permutation():按字典序输出下一个排列
#include<iostream> #include<algorithm> using namespace std; int main() { int data[4]={5, ...
- vue实现动态显示与隐藏底部导航的方法分析
本文实例讲述了vue实现动态显示与隐藏底部导航的方法.分享给大家供大家参考,具体如下: 在日常项目中,总有几个页面是要用到底部导航的,总有那么些个页面,是不需要底部导航的,这里列举一下页面底部导航的显 ...
- vue2.X 与 vue1.X 的区别
vue2.0: bower info vue http://vuejs.org/ 到了2.0以后,有哪些变化? 1. 在每个组件模板,不在支持片段代码 组件中模板: 之前: <template& ...