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

摘要:1 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即可以。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】2FA验证器 验证码如何登录(2024-04-01 20:18)
【系统环境|】怎么做才能建设好外贸网站?(2023-12-20 10:05)
【系统环境|数据库】 潮玩宇宙游戏道具收集方法(2023-12-12 16:13)
【系统环境|】遥遥领先!青否数字人直播系统5.0发布,支持真人接管实时驱动!(2023-10-12 17:31)
【系统环境|服务器应用】克隆自己的数字人形象需要几步?(2023-09-20 17:13)
【系统环境|】Tiktok登录教程(2023-02-13 14:17)
【系统环境|】ZORRO佐罗软件安装教程及一键新机使用方法详细简介(2023-02-10 21:56)
【系统环境|】阿里云 centos 云盘扩容命令(2023-01-10 16:35)
【系统环境|】补单系统搭建补单源码搭建(2022-05-18 11:35)
【系统环境|服务器应用】高端显卡再度登上热搜,竟然是因为“断崖式”的降价(2022-04-12 19:47)
手机二维码手机访问领取大礼包
返回顶部