架构
吃鱼的羊
这个作者很懒,什么都没留下…
展开
-
究竟啥才是互联网架构“高可用”
一、什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目标是4个9,也就是99.99%,这就意味着,系统的年停机时间为8.76个小时。百度...转载 2018-06-26 11:21:37 · 152 阅读 · 0 评论 -
理解OSI参考模型
在一个视频网站上不小心搜到网络知识的视频,突然以前大学的没有真正接受的知识点,一下子豁然开朗,赶紧整理了下笔记。一、OSI参考模型自下而上:物理层(物理介质,比特流)、数据链路层(网卡、交换机)、网络层(IP协议)、传输层(TCP/UDP协议)、会话层(创建/建立/断开连接)、表示层(翻译,编码,压缩,加密)、应用层(HTTP协议)简化为TCP/IP模型:网络层(物理层、数据链路层、网络层)、传输...转载 2018-06-27 13:49:24 · 1228 阅读 · 0 评论 -
JAVA中几种常用的RPC框架介绍
RPC是远程过程调用的简称,广泛应用在大规模分布式应用中,作用是有助于系统的垂直拆分,使系统更易拓展。Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。RPC还有一个特点就是能够跨语言,本文只以JAVA语言里的RPC为例。对于RPC有一个逻辑关系图,以RMI为例:其他的框架结构也类似,区别在于对象的序列化方法,传输对象的通讯协议,以及注册中心的管理与fail...转载 2018-06-27 13:48:51 · 8467 阅读 · 0 评论 -
你应该知道的 RPC 原理
RPC服务和HTTP服务对比很长时间以来都没有怎么好好搞清楚RPC(即Remote Procedure Call,远程过程调用)和HTTP调用的区别,不都是写一个服务然后在客户端调用么?这里请允许我迷之一笑~Naive!本文简单地介绍一下两种形式的C/S架构,先说一下他们最本质的区别,就是RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协...转载 2018-06-27 13:48:10 · 704 阅读 · 0 评论 -
为什么说要搞定微服务架构,先搞定RPC框架?
第一章聊了【“为什么要进行服务化,服务化究竟解决什么问题”】第二章聊了【“微服务的服务粒度选型”】今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢?一、需求缘起服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图:服务A是欧洲团队提供服务,欧洲团队的技术背景是Java,可以用Java实现服务;服务B...转载 2018-06-27 13:46:38 · 527 阅读 · 0 评论 -
一分钟了解两阶段提交2PC(运营MM也懂了)
上一期分享了“一分钟了解mongoDB”【回复“mongo”阅读】,本期将分享分布式事务的一种实现方式2PC。一、概念二阶段提交2PC(Two phase Commit)是指,在分布式系统里,为了保证所有节点在进行事务提交时保持一致性的一种算法。二、背景在分布式系统里,每个节点都可以知晓自己操作的成功或者失败,却无法知道其他节点操作的成功或失败。当一个事务跨多个节点时,为了保持事务的原子性与一致性...转载 2018-06-27 13:45:40 · 460 阅读 · 0 评论 -
MQ消息可达性+幂等性+延时性架构设计
前篇《无限容量数据库架构设计》收到网友好评:系统性,全局性看问题体会更深刻简单易懂本文再做总结,体系化介绍MQ的一些架构技术。一、总起文章:《究竟什么时候使用MQ》内容:什么典型场景不应该使用MQ什么典型场景应该使用MQ二、消息可达性文章:《MQ,如何做到消息必达》内容:MQ系统架构MQ消息发送过程如何实现消息必达消息必达带来的副作用三、消息幂等性文章:《MQ,如何做到消息幂等》内容:消息发送,上...转载 2018-06-27 13:44:05 · 1857 阅读 · 0 评论 -
互联网架构为什么要做服务化?
近期参加一些业界的技术大会,“微服务架构”的话题非常之火,也在一些场合聊过服务化架构实践,最近几期文章期望用通俗易懂的语言聊聊了个人对服务化以及微服务架构的理解,希望能给大伙一些启示。如果有遗漏,也欢迎大家补充。 一、互联网高可用架构,为什么要服务化?【服务化之前高可用架构】在服务化之前,互联网的高可用架构大致是这样一个架构:(1)用户端是浏览器browser,APP客户端(2)后端入口是高可用的...转载 2018-06-26 14:41:41 · 208 阅读 · 0 评论 -
RPC-client异步收发核心细节?
第一章聊了【“为什么要进行服务化,服务化究竟解决什么问题”】第二章聊了【“微服务的服务粒度选型”】第三章聊了【“为什么说要搞定微服务架构,先搞定RPC框架?”】上一章聊了【“微服务架构之RPC-client序列化细节”】通过上篇文章的介绍,知道了要实施微服务,首先要搞定RPC框架,RPC框架分为客户端部分与服务端部分。RPC-client的部分又分为:(1)序列化反序列化的部分(上图中的1、4)(...转载 2018-06-26 14:36:09 · 278 阅读 · 0 评论 -
负载均衡,分布式,高可用,容错的区别
集群(Cluster)集群的概念是和单台服务器相对应的,简单来说集群就是部署多台服务器协同完成一项工作。集群可以分为:1,负载均衡(Load Balance)集群:负责均衡服务器根据负载均衡算法(轮询,随机,哈希,权重等)来分发请求到不同的主服务器。 每个主服务器都是等价的,都可以完成相同的功能 容错(fall-over):容错是负载均衡服务器里面的一个概念。是指当一台主服务器宕机后,集群能够继续...转载 2018-06-25 18:49:19 · 11114 阅读 · 0 评论 -
高可用+高并发+负载均衡架构设计
https://blog.csdn.net/u010370157/article/details/77870468高可用+高并发+负载均衡架构设计 原创 2017-09-05 58沈剑 架构师之路 架构师之路架构师之路 微信号 road5858功能介绍 架构师之路,坚持撰写接地气的架构文章前篇:《无限容量数据库架构设计》《MQ消息可达性+幂等性+延时性架构设计》都收到网友好评:系统性,全局性看问题...转载 2018-06-25 18:42:39 · 485 阅读 · 0 评论 -
如何实施异构服务器的负载均衡及过载保护?
零、需求缘起第一篇文章“一分钟了解负载均衡”和大家share了互联网架构中反向代理层、站点层、服务层、数据层的常用负载均衡方法。第二篇文章“lvs为何不能完全代替DNS轮询”和大家share了互联网接入层负载均衡需要解决的问题及架构演进。在这两篇文章中,都强调了“负载均衡是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】”。然而,后端的service有可能部署在硬件条件...转载 2018-06-26 14:24:20 · 139 阅读 · 0 评论 -
lvs为何不能完全替代DNS轮询
上一篇文章“一分钟了解负载均衡的一切”引起了不少同学的关注,评论中大家争论的比较多的一个技术点是接入层负载均衡技术,部分同学持这样的观点:1)nginx前端加入lvs和keepalived可以替代“DNS轮询”2)F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”“DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接入层架构技术演进,是本文将要细致讨论的内容。 一、问题域n...转载 2018-06-26 14:19:59 · 155 阅读 · 0 评论 -
一分钟了解负载均衡的一切
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指,将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。 常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实现“将请求/数据【均匀】分摊...转载 2018-06-26 11:36:22 · 125 阅读 · 0 评论 -
究竟啥才是互联网架构“高并发”
一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200...转载 2018-06-26 11:31:15 · 123 阅读 · 0 评论 -
BIO与NIO、AIO的区别(这个容易理解)
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒绝请求,如...转载 2018-06-27 13:50:01 · 165 阅读 · 0 评论