从分布式到微服务
文章平均质量分 89
从原理、设计和实践几个方面来讲述大型网站架构发展过程,以及使用分布式部署微服务后面临的问题和解决方案。
xinzun
终不似,少年游
展开
-
分布式系统漫谈【拾肆】_分布式系统常用优化思路
本文说说系统优化的常用手段吧,其中可能有一些内容在系列前面的文章里已经总结过了,这里还是再系统地整理出来,方便将知识汇总,有个整体上的认识。本文只讲方法论,没有具体实现。限于水平总结得可能不全,后面还会补充。本文将系统主要分为前端优化和架构优化两个层面来说。前端优化1.页面优化延迟加载对一些还没有访问到的元素实行延迟加载,尤其是首页上的内容。...原创 2018-03-18 21:55:58 · 995 阅读 · 1 评论 -
分布式系统漫谈【壹】_发展历程
今天开始写一个新的系列的文章,就是围绕着分布式系统说说它的技术栈、实现思路和问题挑战等等。这个内容不是很好写,太大太广,而且在技术日新月异的今天也在不断发展探索更好的实现。我只能尽我所知,把这部分的知识进行整理汇总展现在这里。我也不清楚什么时候可以整理完,但是会尽快。发展历程在一个网站发展初期,访问量和数据量还没有上升到一定的量级之前,系统都是以一个单体应用(比如一个war原创 2018-03-01 17:08:34 · 1824 阅读 · 0 评论 -
分布式系统漫谈【贰】_分布式系统带来的问题
上篇文章:分布式系统漫谈【壹】_发展历程上文中我们简单描绘了一个系统从单体应用向分布式集群应用转变的过程,通过转变可以让系统拥有更强大的并发访问支持,但是同时使用分布式部署也会带来一些单体不存在的问题,本文就这些问题整理讨论一下。负载层不同运营商网络系统的访问用户可能来自不同的运营商网络,那么如何保证来自不同网络的请求响应速度?稳定的负载均衡当...原创 2018-03-02 11:11:29 · 831 阅读 · 0 评论 -
分布式系统漫谈【叁】_负载层技术:Nginx
上篇文章:分布式系统漫谈【贰】_分布式系统带来的问题本文介绍一下负载层常用的开源工具:Nginx什么是NginxNginx(发音为“engine X”)是一款轻量级的web服务器/反向代理服务器,同时也是一个电子邮件IMAP/POP3/SMTP 代理服务器,并在一个BSD-like协议下发行(一种开源协议)。Nginx由俄罗斯程序设计师Lgor Sysoev开发...原创 2018-03-02 15:36:10 · 576 阅读 · 0 评论 -
分布式系统漫谈【肆】_负载层技术:CDN
上篇文章:分布式系统漫谈【叁】_负载层技术:Nginx本文说说生产环境下负载层的部署思路。内容整理自银文杰老师的《高性能服务系统构建与实战》一书,链接如下:CDNCDN即Content Delivery Network,内容分发网络。国内主要的三家互联网接入服务商联通、电信和移动,这三家服务商的互通需要经过多层路由,影响了资源访问速度。解决方案是...原创 2018-03-02 17:07:49 · 590 阅读 · 0 评论 -
分布式系统漫谈【伍】_远程调用
上篇文章:分布式系统漫谈【肆】_负载层技术:CDN当我们的系统由单体应用拆分成多个子应用分布式部署后,就要去考虑各个应用之前的调用问题了。因为之前单体应用的时候,各个接口的调用只是本地调用,是在一个JVM中完成的;而我们要跨应用(JVM)调用的时候,这就使用到了远程调用。远程调用什么是远程调用?先了解一下RPC(Remote Procedure Call Pro...原创 2018-03-03 03:17:30 · 865 阅读 · 0 评论 -
分布式系统漫谈【陆】_SOA和微服务
上篇文章:分布式系统漫谈【伍】_远程调用上文我们提到,系统间大量的接口调用我们需要考虑很多事情,比如:1.访问权限问题;2.版本控制问题;3.性能问题;4.访问控制问题;等等问题。如此说来,对服务接口进行治理已经刻不容缓了。这就要提到SOA。SOASOA(Service-Oriented Architecture),中文全称面向服...原创 2018-03-03 11:02:44 · 1004 阅读 · 1 评论 -
分布式系统漫谈【柒】_微服务的挑战和解决方案
上篇文章:分布式系统漫谈【陆】_SOA和微服务本文继续说说微服务面临的一些挑战和解决方案。微服务的挑战在使用微服务架构后,由于服务间的调用不再是进程内的调用而是通过轻量级的网络协议通信,而众所周知网络不不可信的,因此服务可能出现出错、超时或宕机等问题。因此在微服务架构设计时,我们就要把这部分问题考虑进去,下面说说我们应该采取哪些措施和方案去解决。舱壁模...原创 2018-03-05 10:30:49 · 1099 阅读 · 0 评论 -
分布式系统漫谈【捌】_分布式事务一致性:理论基础
上篇文章:分布式系统漫谈【柒】_微服务的挑战和解决方案如果说使用分布式系统带来最大的挑战,应该就是分布式事务了。当使用单体应用的时候,所有接口都是在一个线程内调用,事务相对来说比较好控制;而且在使用单数据库操作的时候,事务控制更加简单。然而当我们将业务数据进行了分库分表存储,并且引入了分布式系统部署后,问题变得复杂起来。“如何保证分布式系统中的事务一致性?”,这是java面试中最喜...原创 2018-03-05 11:26:34 · 519 阅读 · 0 评论 -
分布式系统漫谈【玖】_分布式事务一致性:协议支持
上篇文章:分布式系统漫谈【捌】_分布式事务一致性:理论基础上文介绍了关于分布式事务的理论基础,下面我们总结下几个分布式事务一致性协议。两阶段提交协议两阶段提交协议(2PC)把分布式事务分为两个阶段,一个是准备阶段,另一个是提交阶段。准备阶段和提交阶段都是由事务管理器发起的。事务管理器是两阶段提交引入的一个第三方角色,它本身不参加事务的提交,只是作为一个协调者存...原创 2018-03-05 14:31:40 · 555 阅读 · 0 评论 -
分布式系统漫谈【拾】_分布式事务一致性:阿里方案
上篇文章:分布式系统漫谈【玖】_分布式事务一致性:协议支持其实对于生产环境的分布式事务一致,各大互联网公司都是自己实现的解决方案,总结起来无非是异步、补偿、实时查询、定期校对几种模式,大部分场景都是使用到消息中间件。下面介绍下阿里对分布式事务一致的解决方案,内容总结自钟华老师的《企业IT架构转型之道 阿里巴巴中台战略思想与架构实战》,严重安利这本书,任何想向架构方向发展的同学,此书...原创 2018-03-06 14:00:12 · 2441 阅读 · 0 评论 -
分布式系统漫谈【拾壹】_分布式事务一致性:秒杀实现
上篇文章:分布式系统漫谈【拾】_分布式事务一致性:阿里方案本文说说分布式事务的经典场景:秒杀的实现。可以说秒杀是任何一个电商系统都无法避免的一个场景了,而在互联网公司面试过程中,也经常喜欢以这个场景来提问如何实现,考察面试者的水平。下面本文试从小库存商品秒杀和大库存商品秒杀两个角度来谈谈如何实现。本文依然总结自钟华老师的《企业IT架构转型之道 阿里巴巴中台战略思...原创 2018-03-06 14:31:30 · 1371 阅读 · 0 评论 -
分布式系统漫谈【拾贰】_分库分表带来的问题和解决方案
上篇文章:分布式系统漫谈【拾壹】_分布式事务一致性:秒杀实现本文来说说关于数据库分库分表。分库分表当系统数据库达到一定的量级,单数据库实例已经无法支撑的时候,我们就要考虑采用分库分表的策略了。如何理解这个名词?其实分库就是垂直拆分,按业务将数据拆分到不同数据库;分表就是水平拆分,将同一业务的数据拆到不同的表中(可能也位于不同数据库,但表结构是一样的)。...原创 2018-03-06 15:51:22 · 2314 阅读 · 2 评论 -
分布式系统漫谈【拾叁】_缓存带来的问题和解决方案
上篇文章:分布式系统漫谈【拾贰】_分库分表带来的问题和解决方案关于缓存,本博此前已经总结了分布式缓存redis的原理及使用系列文章:redis知识盘点【零】_redis常用命令redis知识盘点【壹】_基础知识redis知识盘点【贰】_五种类型redis知识盘点【叁】_持久化redis知识盘点【肆】_主从复制和sentinel...原创 2018-03-06 22:38:52 · 621 阅读 · 0 评论 -
什么是云原生Cloud Native
起源2010年5月,WSO2的CTO Paul Premantle在博客中首次提出了云原生(Cloud Native)的概念。2013年,Netflix的云架构师Adrian Cockcroft在Yow会议上介绍了Netflix基于Cloud Native的成功应用实践。同在2013年,Pivotal的Matt Stine在文章中详细介绍了如何将应用迁移到Cloud Native。...原创 2019-10-04 10:26:10 · 377 阅读 · 0 评论 -
什么是Service Mesh服务网格
起源2016年1月,Buoyant公司在git上发布了Linkerd 0.0.7版本,这是业界第一额Service Mesh项目。2016年9月29日,Buoyant公司在SF Microservices大会上第一次提出Service Mesh概念。2016年10月,Buoyant公司的官网博客开始连载《A Service Mesh for Kubernetes》系列文档。2017...原创 2019-10-04 11:54:20 · 392 阅读 · 0 评论