一个简单的Dubbo接口开发带你入门Dubbo框架
1 Dubbo出现的背景
随着互联网的发展,网站应使用的规模不断扩大,常规的垂直应使用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
· 我们传统的网站结构为单一应使用架构,也就是把所有的功能都放在一个项目工程里,部署在一台服务器上。
· 当访问量越来越大,我们需要通过不断增加服务器的方式来应对越来越大的访问量,或者是将应使用拆分成几个不相干的应使用部署在不同的服务器上。
· 随着使用户数的添加及业务的发展,拆分的应使用越来越多,应使用之间的交互及数据传输不可避免,则将核心业务抽取出来,作为独立的服务,逐步形成稳固的服务中心,使前台应使用能更快速的响应多变的市场需求。
· 当服务越来越多,容量的评估,小服务资源的白费等问题逐步显现,此时需添加一个调度中心基于访问压力实时管理集群容量,提高集群利使用率。
2 系统发展进化理论
系统发展经历过两个阶段:
· 集中式系统
就是把所有的程序、功能、板块集中到一个项目中,部署在一台服务器上,从而对外提供服务。
· 分布式系统
分布:在肯定范围内分散开
分布式系统就是把所有的程序、功能拆分成不同的子系统,部署在多台不同的服务器上,这些子系统相互协作共同对外提供服务,对于使用户而言并不知道后端是如何交互的,用上和集中式系统一样。
3 认识集群及分布式
· 什么是集群?
就是将相同的程序、功能部署在两台或者是多台服务器上,这些服务器对外提供的功能是完全一样的,集群就是通过不同横向扩展添加服务器的方式,以提高服务的能力。
· 什么是分布式?
就是将两个或者多个程序、功能分别运行在两台或者多台主机服务器上,这些服务对外提供的功能并不一样,它们通过相互协作最终完成某一服务或者是功能。
简单来讲:假如两台服务器部署的程序完全一样则是集群,不一样就是分布式;分布式中的每一个节点都可以做成集群,而集群并不肯定就是分布式。
4 Dubbo简介
Dubbo是一个分布式、高性能、透明化的RPC服务架构,提供服务自动注册、自动发现等高效服务治理方案。
Dubbo是阿里巴巴公司开源的一个高性能优秀的。
Dubbo官方网站:http://dubbo.io/
5 认识RPC(Remote Procedure Call)
假如有两台服务器A和B,一个应使用部署在A服务器上,一个应使用部署在B服务器上,假如A想要调使用B应使用提供的方法,因为它们不在同一台机器上,也就是它们不在一个JVM内存空间,无法直接调使用,需要通过网络进行调使用,那么这个调使用过程就叫做RPC。
6 Dubbo架构
Provider: 暴露服务的服务提供方。
Consumer: 调使用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。(常见Zookeeper作为注册中心)
Monitor: 统计服务的调使用次数和调使用时间的监控中心。
调使用流程
0.服务容器负责启动,加载,运行服务提供者。
1.服务提供者在启动时,向注册中心注册自己提供的服务。
2.服务消费者在启动时,向注册中心订阅自己所需的服务。
3.注册中心返回服务提供者地址列表给消费者,假如有变更,注册中心将基于长连接推送变更数据给消费者。
4.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调使用,假如调使用失败,再选另一台调使用。
5.服务消费者和提供者,在内存中累计调使用次数和调使用时间,定时每分钟发送一次统计数据到监控中心。
7 Dubbo程序开发
项目结构:
主要分三大板块:
dubbo-api : 存放公共接口;
dubbo-consumer : 调使用远程服务;
dubbo-provider : 提供远程服务。
环境准备:
安装启动Zookeeper。
7.1 dubbo-api 接口层开发
· Api层开发Person接口
7.2 配置POM.xml文件
· DubboDemo父级目录配置pom.xml全局文件,所加载资源适使用于所有子级工程。
7.3 dubbo-provider 服务提供者开发
7.3.1 Person接口实现类PersonImpl开发
7.3.2 applicationContext.xml配置文件
7.3.3 provider简单测试
· provider工程目录下新建Main类
7.4 dubbo-consumer 服务请求者开发
7.4.1 applicationContext.xml配置文件
7.4.2 consumer简单测试
· 请求Zookeeper进行服务端资源访问
运行结果:
8 IDEA用过程中出现问题
从eclipse切换到IDEA,用过程中遇见问题:
编译出现问题:
Cannot start process, the working directory ‘F:hellohello’ does not exist
处理方法:
选择Run-Edit configurations。而后点击Application左边的向下箭头,在Configuration下会显示出Working directory,删除或者者设置成合适dircotry即可以。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 一个简单的Dubbo接口开发带你入门Dubbo框架