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 ...
随机推荐
- Informatica ODBC的使用
1.在服务器端配置odbc.ini 注意:添加环境变量才能生效 2.测试连通性 3.使用
- hdu4417 Super Mario (树状数组/分块/主席树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4417 题目大意:给定一个长度为n的序列,有m个询问,每次询问包含l,r,h,即询问区间[l,r]小于等 ...
- CF3D Least Cost Bracket Sequence(2500的实力贪心...
哎,昨天一直在赶课设..没有写 最近听了一些人的建议,停止高级算法的学习,开始刷cf. 目前打算就是白天懒得背电脑的话,系统刷一遍蓝书紫书白书之类的(一直没系统刷过),回宿舍再上机吧. https:/ ...
- jmeter post请求在终端传参,并且指定请求参数文件
命令:jmeter -n -t jmeter_1.jmx -l report/report30.jtl -Jnum=3000 -e -o webresult/3000result ...
- vue子传父、父传子
子传父 vue子传父使用$emit传值 子组件: <template> <div> <button @click="toParent">点击传到 ...
- js undefined三目运算
js ajax传值中 "id":$('#id').val(), 如果#id不存在,使用$('#id').val()||‘’,可避免向后台传入undefined
- 英语单词vendors
vendors 来源——https://www.docker.com/products/docker-hub Share and Collaborate with Docker Hub Docker ...
- 最佳实践 | 数据库迁云解决方案选型 & 流程全解析
Oracle是非常强大的综合数据库,但同时也存在一些劣势,比如由于采用集中式架构,无法很好地实现横向扩展,并且其稳定性依赖于硬件.出于架构升级.降低成本和云化等需求,越来越多的企业需要“去Oracle ...
- zabbix4.0 percona插件实现监控mysql
percona是一款能够详细监控zabbix MySQL的插件 官方下载percona插件 wget https://www.percona.com/downloads/percona-monitor ...
- [CSP-S模拟测试]:Divisors(数学)
题目描述 给定$m$个不同的正整数$a_1,a_2,...,a_m$,请对$0$到$m$每一个$k$计算,在区间$[1,n]$里有多少正整数是$a$中恰好$k$个数的约数. 输入格式 第一行包含两个正 ...