阿里云day2:互联网中间件
互联网中间件
企业级分布式应用服务 EDAS
Enterprise Distributed Application Service:企业云计算的解决方案,帮助企业级客户轻松构建并托管应用服务。
特点
- 应用管理:应用的创建,部署,启动,回滚,扩容和停止下线。是一个以用户为中心的中间件PaaS平台。
-
服务化框架
image - 运维管理:多种运维与管控工具,帮助用户诊断问题并修复。
- 账号与权限:EDAS作为一个企业级的PAAS平台,支持子账号及细粒度的权限控制,方便不同部门之间协同工作。
- 高扩展性
- 一站式:提供一系列应用生命周期的管理服务。
分布式关系型数据库 DRDS
DRDS(Distributed Relational Database Service)
能够解决的业务问题:
- 单机数据库的瓶颈:存储容量,访问容量,容灾等问题
- 传统的数据库成本高
- NOSQL/开源方案的艰难选择,这是个另开发团队踌躇的鸡肋问题
- 问题.....
- 阿里云的DRDS能优雅的解决上面的问题
DRDS的架构:
imageDRDS特性:
DRDS具备share nothing架构的分布式数据库所具备的主要功能和特性。
image
应用场景:一图胜千言
image
消息队列
功能特性:
image
上图理解可能不是那么一目了然了,解释一下:
ProducerID1的producer实例有3个,可能是是部署在3个机器上的3个进程,也可能是1个机器上的3个进程,每个实例都会发送TopicA的消息。producerID2与之同理。
ConcumerID1有3个consumer的实例,如果是集群消费,那么每个实例消费TopicA的1/3,如果是广播消费模式,每个实例消费掉全量消息。另外,TopicA也可以被另外的Consumerid消费。
专业术语:
Producer
消息生产者,负责产生消息,一般由业务系统负责产生消息。
Consumer
消息消费者,负责消费消息,一般是后台系统负责异步消费。
Producer ID
一类Producer的集合名称,这类Producer通常发送一类消息,且发送逻辑一致。
Consumer ID
一类Consumer的集合名称,这类Consumer通常消费一类消息,且消费逻辑一致。
广播消费
一条消息被多个Consumer消费,即使这些Consumer属于同一个Consumer ID,消息也会被Consumer ID中的每个Consumer都消费一次,广播消费中的Consumer ID概念可以认为在消息划分方面无意义。 在CORBA Notification规范中,消费方式都属于广播消费。 在JMS规范中,相当于JMS publish/subscribe model
集群消费
一个Consumer ID中的Consumer实例平均分摊消费消息。例如某个Topic有9条消息,其中一个Consumer Id有3个实例(可能是3个进程,或者3台机器),那么每个实例只消费其中的3条消息。 在CORBA Notification规范中,无此消费方式。 在JMS规范中,JMS point-to-point model与之类似,但是MQ的集群消费功能大等于PTP模型。因为MQ单个Consumer ID内的消费者类似于PTP,但是一个Topic可以被多个Consumer ID消费。
概念整理
QPS
每秒查询率QPS,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。(值越高越好)
数据切片(Shard)
对数据切分(Shard),称这些零碎的数据为分片(sharding),是一种软件理念。
百度举的例子:数据库的扩展性是一个永恒的话题,但是Mysql 5之后才有了数据库分区功能,在没有数据库分区功能之前是如何扩展的呢?
答案是:sharding。
注意:sharding不是具体的功能,而是在具体技术细节上的抽象处理,是一种水平扩展(或者横向扩展)的解决方案。
目的:突破单节点数据库服务器的I/O能力限制,解决数据库扩展性问题。
问题:
- 数据库的水平拆分模式?
- 事务处理?
- 熟悉linux?
- 消息队列理解的不太好?