Hadoop 1(二)|学习笔记

简介: 快速学习 Hadoop 1(二)

开发者学堂课程【高校精品课-上海交通大学-企业级应用体系架构:Hadoop 1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/75/detail/15841


Hadoop 1(三)

 

内容介绍

一.认识 SOA

二.如何组装服务

三.服务和构建的区别

四.服务的架构

五.微服务

六.SOA 的架构

七.Hadoop,Spark 和Storm

 

四.服务的架构

 image.png

在面向服务的架构里,它到底涉及到哪些东西?这是它整个的一个协议站,或者可以理解为,一个面向服务的架构里面,它涉及到的一些部分第一个就是它的传输协议,它传输什么样的,它的传输可以是FTP 或者 HTTP 这样的东西去描述服务和服务之间是如何进行通信的,当然,他们都是基于这种异构的通信的方式,所以中间一定会有一个消息中间件这样的一种通讯方式然后服务的通信协议,比如我们在之前描述的像 SOAP 或者 restful 这样的东西,他在说我们应该怎样去调用这个服务,把服务的请求给他,然后服务的响应怎么样发回来的?还有一个服务的描述,服务是做什么的,它的功能是什么?比如上节课我们说的, WSDL 里面有一部分内容,例如这个服务的 description ,它的 portoperation 都在这里面描述然后上面是具体的服务的实现, 比如有 Java 的实现,有NET 的实现,不管怎么样,他们都会有这个 endpoint ,还要有一些像 proxy 这种带然后再往上服务和服务要组成一个流程,才能完成更大的更复杂的一个业务流程,或者更大力度的一个服务

这时候业务的流程应该如何编排?比如有 BPMN 这样的一些规范出现,不管怎么去编排这些服务,他的意思就是,我要产生一个工作流,是一系列的服务,们互相之间协作完成一个更大力度的,认为它是一个服务也好或者个业务需求也好就可以满足这些所以我们看到在每一层它都定义了相关的一些规范,然后,这些服务因为是异步通信,它是松散耦合的所以在一个工作流里面, A 处理完之后交给 B 这件事情不是在 A 的里面有一个代码说我要去调用 B ,而是说 A 产生完输出之后会给一个消息中间件即 service bus ,它拿到这个结果之后,会去查那个工作流工作流描述什么,他发现 A 执行完之后要给 B ,是把这个东西直接推给 B ,让 B 去执行, B 执行完之后再把结果回给再根据工作人的描述,比如要给 C 于是他再推给 C ,以此类推, A  B  C 之间的这个关系完全由消息中间件来维护, ABC 互相之间是不直接交互的。

那么这个消息中间怎么知道会存在 ABC 的呢? ABC 可以把自己注册到一个像服务注册表的这个东西里面,就像在图书馆图书目录一样为了让更多的人用到这个服务,我就把自己注册到这图书目录里就像电话号码本一样,为了让别人知道我的电话号码,我就要把我广告印刷到这个电话号码本里,别人才能知道所以,这里就会有一个服务注册表,叫服务注册中心,来约定这些服务怎么把自己注册上别人怎么通过服务注册中心去找到想要调用的服务,这些是有关服务的功能一旦所有的服务起来执行工作流满足用户需求,首先你要管理安全性的,这些服务和服务之间的消息是怎么传递的我们之前花了很大的精力讲安全性,比如消息要不要加密?传输过程中需要用证书对传输的内容再做加密,这时就会有安全的约束然后还有事物,我们之前谈论的事物都是在一个 Java 的语言里,我们去访问一个或者多个数据库去做这样的一个处理现在在一个比较大的工作流,里面有 Java 的,有 C# 的,可能还有别的语言编写的东西,这时候这个事物应该怎么管理?因为现在他们都在不同的地方跑,不像之前我们讲 Java 的程序一样,不管怎么样,我在 Tomcat 这个应用里是一个程序,可以访问多个数据库,但我最终还是在某一个地方汇聚到一起来处理

现在你全部要汇聚到这个消息中心里,他怎么来管这个事还有一点就是我们今天讲事物实际上就是靠枷锁来实现,那么这种工作流的执行过程一定会比较慢,这时候长期的枷锁会带来影响,他的 timeout 应该怎么设?如果事务要回滚,那该怎么做?他会相应的一些逻辑来解决。然后关于这些服务本身有一个管理,比如谁的服务可以发布上来统计它的使用的方法或者是使用的规则,根据使用情况我甚至可以提供一些这就它的一个管理,另外还有一个策略,就是你既可以认为它是服务的功能,也可以认为是服务的质量约束,他就在讲我基于什么样的策略来对服务它的功能,或者是它的质量进行管理

举个例子,这个服务,如果现在被我们分布式拒绝服务公司给攻击了,这时候该怎么办?让这个服务处于什么样的状态怎么去管理?比如我把它停掉,还是要对他做一个处理对于来自于同一个 IP 的请求我降低它的处理速度,每秒钟只处理它一个请求。除了这方面,还有一些其他的乱七八糟东西,都可以把它们归为策略这一类它看起来既像是功能,又像是质量,所以横跨在中间那么这里面描述的所有的东西都有相应的规范,你满足这个规范,或者说在满足这样的规范的环境里去部署你的应用,你的应用才能真正像一个 SOA 的应用一样跑起来我们之所以用 SOA 的应用,是因为我们要解决异构系统操作的交互性和面向变化,只有松散耦合才能快速定义甚至我们在看到的 SOA 的架构

 

五.微服务

我们之前还有一个话题,就所谓的微服务是什么微服务,首先这个服务,其次,它和 SOA 架构的关系,就像我们这里讲的 web service  SOA 的关系一样基于微服务开发的系统,我们没有说它一定是个 SOA 系统,没有说他一定要满足这三点特性,你可以不满足但是微服务的这个服务,如果你开发出来,可以成为你 SOA 的应用里面的这种词务,这就是两者之间的关系所以我们说用 SOA 的目的就是要去解决构性和这个应对变化的时候,降低成本反应迅速的个问,但是你付出代价是系统的性能也许会很低一方面是因为我们说了像基于 vestful 或者是 restful 这样的,以 Jason 传递的这种 web service ,它调用时候可能涉及到纯文本和编写的这种语言之间的双向转换所以它本来性能就可能比较低。另一个方面,他必须要经过服务总线,这种所谓中介者模式的方式来运作,所有的服务互相之间不直接交互,那它一定性能比较差所以你付出的代价就是性能比较差。

相关文章
|
6月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.19 安装Kafka
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
172 0
Hadoop学习笔记(HDP)-Part.19 安装Kafka
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
231 0
Hadoop学习笔记(HDP)-Part.08 部署Ambari集群
|
6月前
|
分布式计算 资源调度 Hadoop
安装hadoop学习笔记
安装hadoop学习笔记
63 0
安装hadoop学习笔记
|
6月前
|
分布式计算 资源调度 Hadoop
Hadoop学习笔记(HDP)-Part.18 安装Flink
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
228 2
Hadoop学习笔记(HDP)-Part.18 安装Flink
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
132 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.15 安装HIVE
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
197 1
Hadoop学习笔记(HDP)-Part.15 安装HIVE
|
6月前
|
分布式计算 Hadoop 关系型数据库
Hadoop学习笔记(HDP)-Part.10 创建集群
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
156 1
Hadoop学习笔记(HDP)-Part.10 创建集群
|
6月前
|
SQL 消息中间件 关系型数据库
Hadoop学习笔记(HDP)-Part.04 基础环境配置
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
103 1
|
6月前
|
消息中间件 存储 分布式计算
Hadoop学习笔记(HDP)-Part.20 安装Flume
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
102 0
Hadoop学习笔记(HDP)-Part.20 安装Flume
|
6月前
|
分布式计算 资源调度 Java
Hadoop学习笔记(HDP)-Part.17 安装Spark2
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
85 0
Hadoop学习笔记(HDP)-Part.17 安装Spark2

相关实验场景

更多
下一篇
无影云桌面