分布式系统
文章平均质量分 70
再等三分钟
这个作者很懒,什么都没留下…
展开
-
消息系统扩容处理
(1)消息中间件自身如何扩容消息中间件本身没有持久状态,扩容相对容易,主要是让消息的发送者和消息的订阅者能够感知有新的消息中间件加入发哦了集群,这是通过软负载中心完成的,这里要解决的是,同一个存储张如何区分存储的消息是来自哪个消息中间件应用的,解决方案是给每条消息增加一个server标识的字段,当有新加入的消息中间件时,会使用新的server标识,这一方案要应对的问题是,当有消息中原创 2016-10-11 16:04:29 · 481 阅读 · 0 评论 -
服务的优化(分布式系统七)
1、服务的拆分服务是需要为多方提供功能的,这样才需要拆分,对于专用的服务,没有必要拆分。2、服务的粒度要根据具体业务实际情况划分服务。3、优雅和实用的平衡第一个图结构看起来没有什么问题,也比较优雅,但是深入分析就会发现,如果服务调用者读取数据非常频繁,让服务调用者直接读取缓存会更加合适。也就是,客户端其中包含了服务提供者所提供服务的所有接口,并且有一定的代码逻辑,这个逻原创 2016-10-08 10:26:20 · 358 阅读 · 0 评论 -
分布式系统中数据库的事务如何处理?
1、数据库拆分有垂直和水平两种方式数据库垂直拆分会带来的影响:a、单机的ACID保证被打破。数据到了多机后,原来单机中通过事务进行处理逻辑会有很大影响,要么放弃原来的单机事务,修改实现,要么引入分布式事务。b、一些join操作会变得比较困难,因为数据可能已经在两个数据库中了。c、靠外键去进行约束的场景会受到影响。水平拆分会带来的影响:a、同样有可能ACID被打破。b、同原创 2016-10-08 16:14:42 · 9419 阅读 · 0 评论 -
初始消息中间件(分布式系统五)
1、消息中间又称面向消息系统(message-oriented middleware MOM)是在分布式系统中完成消息发送和接收的基础软件。消息中间件有两个经常被提及的好处,即异步和解耦,上图看出,应用A和应用B都和消息中间件打交道,这两个应用并不直接联系,这样就完成了解耦,目的是希望收发消息的双发都彼此不知道对方的存在,也不受对方的影响,所以消息投递个接收者实际上采用了异步的方式。原创 2016-10-07 12:07:47 · 349 阅读 · 0 评论 -
分布式存储(分布式系统四)
(1)分布式存储数据存储主要用的是数据库,但是有些创场景下, 数据库并不是很合适,除了数据库之外,还有分布式存储系统,分布式存储系统在大型网站中有非常广泛的应用。常见的分布式存储系统有分布式文件系统、分布式key-value系统和分布式数据库。分布式文件系统就是在分布式环境中由多个节点组成的功能与单机文件系统一样的文件系统,它是弱格式的,内容的格式需要使用者自己组织。而分布式key-val原创 2016-10-07 11:46:30 · 497 阅读 · 0 评论 -
数据读写压力大,读写分离(分布式系统三)
(1)采用数据库作为读库问题:数据复制问题。应用对于数据源的选择问题。数据库系统一般都提供了数据复制的功能,我们可以直接使用数据库系统的自身机制,对于数据复制,我们还要考虑时延问题,以及复制中数据源和目标之间的映射关系和过滤条件的支持问题。数据复制延迟带来是短期数据不一致,例如修改了用户信息,但还没有复制到读库(因为时延),那么读出来的就不是最新的。不同的数据库有不同的支持,M原创 2016-10-06 20:06:55 · 2305 阅读 · 0 评论 -
大型网站架构演进(分布式系统二)
大型网站是指有大访问量同时有海量的数据。要支持海量的数据和非常高的并发访问量,那么它肯定是一个分布式系统。(1)从一个单机的交易网站说起从图中看出各个功能模块之间是通过JVM内部的方法调用来进行交互的,而应用和数据库之间是通过JDBC进行访的。后面围绕着这两个部分会有不同的变化。(2)单机负载告警,数据库与应用分离(3)应用服务器负载告警,如何让应用服务器走向集群原创 2016-10-06 19:33:19 · 489 阅读 · 0 评论 -
分布式系统
1.分布式系统是什么?A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages.----Distributed System concepts and design原创 2016-10-06 16:48:02 · 727 阅读 · 0 评论 -
JBOssCache和Memcached分布式缓存架构
(1)分布式缓存的伸缩性设计和所有服务器都部署相同应用的应用服务器集群不同,分布式缓存服务器集群中不同服务器中缓存的数据各不相同,缓存访问请求不可以在缓存服务器集群中的任意一台处理,必须先找到缓存中有需要数据的服务,然后才能访问。这个特点会严重制约分布式缓存集群的伸缩性设计,因为新上线的缓存服务器没有缓存任何数据,而已下线的缓存服务器还缓存着网站的许多热点数据。必须让新上线的缓存服务器对整原创 2016-10-13 15:04:23 · 2282 阅读 · 0 评论 -
数据访问层的设计和实现(分布式系统七)
(1)如何对外提供数据访问层的功能数据访问层就是方便应用进行数据读写访问的抽象层,在该层上解决各个应用通用的访问数据库的问题。上图显示了三种方式,第一种是为用户提供专有API,不过不推荐,通用性很差。第二种是通用的方式,java应用中一般是通过JDBC方式访问数据库,数据库自身可以作为一个JDBC实现,也就是暴露出JDBC的接口给应用。第三种是基于ORM或类ORM接口方式。2.原创 2016-10-08 17:41:28 · 12418 阅读 · 0 评论