一个简单的Dubbo接口开发带你入门Dubbo框架

作者 : 开心源码 本文共2032个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共83人阅读

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框架

发表回复