布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。今天,我们就来看看关于分布式的精华问答吧!
1
Q:什么是分布式缓存?
A:为了提高性能和响应时间,在应用程序(通常是Web应用程序)中“部署”并确保数据从内存加载而不是从磁盘加载(速度更慢)的解决方案。
如果要在单台机器上使用高速缓存,那么看起来很简单 - 只需从内存中的数据库中加载最活跃的数据(例如Guava Cache实例),然后从中提供。当必须在集群中工作时,它变得有点复杂 - 例如5个应用节点以循环方式向用户提供请求。
Q:如何实现分布式系统的高可用性?
A:高可用性的前提是:保证服务系统能够持续工作,实现高可用性一般有两种手段: 一种是通过第三方软件/组件保证系统的可用性;另一种是软件/组件自身己具备高可用的技术实现。
Q:分布式系统利弊
A:在分布式系统中:
1、应用可以按业务类型拆分成多个应用,再按结构分成接口层、服务层;我们也可以按访问入口分,如移动端、PC端等定义不同的接口应用;
2、数据库可以按业务类型拆分成多个实例,还可以对单表进行分库分表;
3、增加分布式缓存、搜索、文件、消息队列、非关系型数据库等中间件;
很明显,分布式系统可以解决集中式不便扩展的弊端,我们可以很方便的在任何一个环节扩展应用,就算一个应用出现问题也不会影响到别的应用。
随着微服务Spring Cloud & Docker的大热,及国内开源分布式Dubbo框架的重生,分布式技术发展非常迅速。
分布式系统虽好,也带来了系统的复杂性,如分布式事务、分布式锁、分布式session、数据一致性等都是现在分布式系统中需要解决的难题,虽然已经有很多成熟的方案,但都不完美。分布式系统也增加了开发测试运维成本,工作量增加,分布式系统管理不好反而会变成一种负担。
Q:分布式系依赖关系如何理解?
A:整个顶层设计下的若干个子系统肯定存在依赖关系,但是依赖关系是否科学、是否可以持久维护是需要考虑的一个非常关键的要点 。 客户方不懂技术,是我们在需求调研阶段遇到的算一个问题的问题,但关键看需求人员从哪个方面着手向用户解释,引导用户对需求逻辑进行分析 。 比起前两个代码级别的循环依赖和业务级别的循环依赖,整个顶层设计下的若干子系统的循环依赖问题才是架构师最头疼的问题。
Q:分布式与集群的区别是什么?
A:分布式:一个任务分给多台机器去做,减少单个任务的执行时间。
集群:提高单位时间内执行任务数。
例如:一个任务由10个子任务组成,每个子任务单独执行需要1个小时,则在一台服务器上执行该任务需要10个小时。
分布式方案:提供10台服务器,每台服务器只处理一个子任务,不考虑任务间的依赖关系,执行完这个任务只需要一个小时。
集群方案:同样提供10台服务器,每台服务器都能独立处理这个任务。假设有10个任务同时到达,10个服务器将同时工作,10小时后,10个任务同时完成,同样是一个小时完成一个任务。
小伙伴们冲鸭,后台留言区等着你!
关于分布式,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……
同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~
福利
1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!
推荐阅读:
Elastic Jeff Yoshimura:开源正在开启新一轮的创新 | 人物志
深入浅出Docker 镜像 | 技术头条
19岁当老板, 20岁ICO失败, 21岁将项目挂到了eBay, 为何初创公司如此艰难?
码二代的出路是什么?
机器学习萌新必备的三种优化算法 | 选型指南
小程序的侵权“生死局”
@996 程序员,ICU 你真的去不起!
真香,朕在看了!