Dubbo-相关概念+zookeeper安装+高级特性简介

相关概念

互联网项目架构目标-特点

在这里插入图片描述

在这里插入图片描述

互联网项目架构目标-目标

在这里插入图片描述
在这里插入图片描述

集群和分布式

集群:很多人一起,干一样的事

  • 一个业务模块,部署在多台服务器上

分布式:很多人一起,干部一样的事。这些不一样的事,合起来事一件大事

  • 一个大的业务系统,拆分为小的业务模块,分别部署在不同的机器上
    在这里插入图片描述
    在这里插入图片描述

架构演进

过程

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

概述

Dubbo详解,用心看这一篇文章就够了【重点】

dubbo概念

在这里插入图片描述
在这里插入图片描述

Zookeeper安装

  • Dubbo官方推荐使用Zookeeper作为注册中心
环境准备
查看Linux系统的jdk版本,需要jdk1.8
java -version
下载JDK

由于Zookeeper的运行需要依赖jdk1.8以上版本,所以我们下载jdk1.8+就可以了。

wget https://repo.huaweicloud.com/java/jdk/8u181-b13/jdk-8u181-linux-x64.tar.gz
没有wget?

安装!

yum install wget
解压
tar -zxvf jdk-8u181-linux-x64.tar.gz /usr/local/java
配置jdk环境变量

编辑/etc/下的profile文件:

vim /etc/profile

在文件末尾添加如下配置:

export JAVA_HOME=/usr/local/java/jdk1.8.0_181
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

JAVA_HOME 为 jdk解压路径,根据实际情况配置

保存配置文件退出

重新加载配置文件
source /etc/profile
测试是否安装成功
java -version
下载安装Zookeeper
下载zookeeper

APACHE官网

完整的安装包为apache-zookeeper-x.x.x-bin.tar.gz

一定要下载有-bin的压缩包,不然后面会出问题。

xshell上传至linux

将压缩包拖入xshell

解压

将tar包解压到/opt/zookeeper目录下

cd /opt
mkdir zooKeeper
mv apache-zookeeper-3.7.1-bin.tar.gz /opt/zookeeper/
修改配置文件

由于Zookeeper读取的是conf中的zoo.cfg配置文件,zookeeper本身没有zoo.cfg,但是有样本配置文件

所以进入到conf目录拷贝一个zoo_sample.cfg并完成配置

cd /opt/zooKeeper/apache-zooKeeper-3.7.1-bin/conf/
cp  zoo_sample.cfg  zoo.cfg

创建data目录

cd /opt/zooKeeper/
mkdir  zkdata

修改zoo.cfg中的dataDir路径

vim /opt/zooKeeper/apache-zooKeeper-3.7.1-bin/conf/zoo.cfg
#一般模式下按dd删除dataDir所在行,复制粘贴下面的路径
dataDir=/opt/zookeeper/zkdata
启动zookeeper

先进入安装目录下的bin目录,通过zkServer.sh脚本来启动

cd /opt/zooKeeper/apache-zooKeeper-3.7.1-bin/bin/
./zkServer.sh  start

出现Starting zookeeper … STARTED表示已经启动成功

在这里插入图片描述

查看zookeeper状态
./zkServer.sh status

Dubbo高级特性

dubbo-admin

  • dubbo-admin 管理平台,是图形化的服务管理页面
  • 从注册中心中获取到所有的提供者 / 消费者进行配置管理
  • 路由规则、动态配置、服务降级、访问控制、权重调整、负载均衡等管理功能
  • dubbo-admin 是一个前后端分离的项目。前端使用vue,后端使用springboot
  • 安装 dubbo-admin 其实就是部署该项目

序列化

什么是序列化?

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。

序列化主要有两个用途

  • 把对象的字节序列永久保存到硬盘上,通常存放在一个文件中(序列化对象)
  • 在网络上传送对象的字节序列(网络传输对象)

实际上就是将数据持久化,防止一直存储在内存当中,消耗内存资源。而且序列化后也能更好的便于网络运输何传播

  • 序列化:将java对象转换为字节序列
  • 反序列化:把字节序列回复为原先的java对象

问题:两个机器传输数据,如何传输java对象?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5Dx20Nr-1668311812418)(Dubbo.assets/image-20221113110748579.png)]

消费者要调用生产者提供的服务,生产者去操作数据库,将数据封装为一个对象,生产者将对象返回给消费者。

在soa架构中,消费者和生产者位于多台不同的机器中,那么该如何进行java对象的传输呢?

序列化!

在dubbo内部封装了序列化和反序列化过程。

生产者和消费者之间建立流传输管道,将被封装的对象序列化,通过流发送给消费者,再通过反序列化转话成原来的对象。

我们让实体类去实现Serializable序列化接口

地址缓存

在这里插入图片描述

超时

问题:
在这里插入图片描述

利用超时机制来解决
在这里插入图片描述

重试

在这里插入图片描述

多版本

通过@Reference(version = “”)来进行版本控制

在这里插入图片描述

负载均衡

负载均衡策略(4种) :

  • Random :按权重随机,默认值。按权重设置随机概率。
  • RoundRobin :按权重轮询
  • LeastActive:最少活跃调用数,相同活跃数的随机。
  • ConsistenHash:一致性Hash,相同参数的请求总是发到同一提供者

Random

在这里插入图片描述

RoundRobin
在这里插入图片描述

LeastActive

在这里插入图片描述

ConsistentHash

在这里插入图片描述

集群容错

在这里插入图片描述

服务降级

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fantasy`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值