架构

程序员进阶文章

丶灬走出姿态 提交于 2019-12-11 04:44:11
1、 拜托!面试请不要再问我Spring Cloud底层原理 2、 【双11狂欢的背后】微服务注册中心如何承载大型系统的千万级访问? 3、 【性能优化之道】每秒上万并发下的Spring Cloud参数优化实战 4、 微服务架构如何保障双11狂欢下的99.99%高可用 5、 兄弟,用大白话告诉你小白都能听懂的Hadoop架构原理 6、 大规模集群下Hadoop NameNode如何承载每秒上千次的高并发访问 7、 【性能优化的秘密】Hadoop如何将TB级大文件的上传性能优化上百倍 8、 拜托,面试请不要再问我TCC分布式事务的实现原理! 9、 【坑爹呀!】最终一致性分布式事务如何保障实际生产中99.99%高可用? 10、 拜托,面试请不要再问我Redis分布式锁的实现原理! 11、 【眼前一亮!】看Hadoop底层算法如何优雅的将大规模集群性能提升10倍以上? 12、 亿级流量系统架构之如何支撑百亿级数据的存储与计算 13、 亿级流量系统架构之如何设计高容错分布式计算系统 14、 亿级流量系统架构之如何设计承载百亿流量的高性能架构 15、 亿级流量系统架构之如何设计每秒十万查询的高并发架构 16、 亿级流量系统架构之如何设计全链路99.99%高可用架构 17、 七张图彻底讲清楚ZooKeeper分布式锁的实现原理 18、 大白话聊聊Java并发面试问题之volatile到底是什么?

漫谈分布式系统

只愿长相守 提交于 2019-12-11 04:29:50
漫谈分布式系统 1.分布式架构中的相关概念 2.分布式架构的发展过程和历史 3.分布式架构的难点 ==================================== 一. 分布式架构中的相关概念 1.集群 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群 2.分布式 为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群 3.节点 节点是指一个可以独立按照分布式协议完成一组逻辑的程序个体。在具体的项目中,一个节点表示的是一个操作系统上的进程。 4.副本 副本(replica/copy)指在分布式系统中为数据或服务提供的冗余。节点的数据丢失时,可以从副本上读取到数据。数据副本是分布式系统中解决数据丢失问题的唯一手段。服务副本表示多个节点提供相同的服务,通过主从关系来实现服务的高可用方案 5.中间件 中间件位于操作系统提供的服务之外,又不属于应用,他是位于应用和系统层之间为开发者方便的处理通信、输入输出的一类软件,能够让用户关心自己应用的部分。 二. 分布式架构的发展过程和历史 一个成熟的大型网站系统架构并不是一开始就设计的非常完美,也不是一开始就具备高性能、高可用、安全性等特性

微服务

扶醉桌前 提交于 2019-12-11 00:52:10
微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。 微服务可以在"自己的程序"中运行,并通过"轻量级设备与HTTP型API进行沟通"。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构(在现有系统中分布一个API)区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。 微服务概念: 微服务不需要像普通服务那样成为一种独立的功能或者独立的资源。定义中称,微服务是需要与业务能力相匹配,这种说法完全正确。不幸的是,仍然意味着,如果能力模型粒度的设计是错误的,那么,我们就必须付出很多代价。如果你阅读了Fowler的整篇文章,你会发现,其中的指导建议是非常实用的。在决定将所有组件组合到一起时,开发人员需要非常确信这些组件都会有所改变,并且规模也会发生变化。服务粒度越粗,就越难以符合规定原则。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响。然而,利弊之间的权衡过程是非常复杂的,我们要在配置和资金模型的基础上考虑到基础设施的成本问题。 微服务现状: 微服务作为一项在云中部署应用和服务的新技术已成为当下最新的热门话题

【GANs代码学习】目录

可紊 提交于 2019-12-10 23:56:36
   前言   在初学GANs的时候我们可能会尝试自己写一些简易的模型,这对于学习代码有帮助,但是距离想真正实现自己的想法和创意是很不够的。所以我觉得,学习到一些高级的GANs架构的代码技巧是会挺有帮助的,所以在此专栏中,我将专门记录我特别想学到的一些最新架构的代码实现方式,并进行非常细致的记录和讲解。  目录   StyleGAN->GauGAN->SinGAN三份开源代码是我认为目前所有GANs中最有价值的代码(当然还有BigGAN->VQVAE2->LOGAN也值得学但Deepmind不开源哪~~~),首先StyleGAN就是“细节记忆”特别强,生成图片足够清晰;然后GauGAN“细节关系推理”特别好,基于语义布局的生成能学到组件间的逻辑联系(譬如湖面和倒影);SinGAN就听效果(单张图片模式推理)就特别牛逼,但是其实际价值还有待学习考证。。  架构1 StyleGAN     ★ 重点:AdaIN机制、Progressive动态变化过程     ★ 学习AdaIN的价值:1.AdaIN改变了原始生成器输入latents的功能,即将latents控制合成图片的内容(content),变成了latents控制合成图片的风格(style),这是一种非常有效且具有普适性的技巧。2. AdaIN适合于样式迁移(Style Transfer)任务中。     笔记内容:      

什么是SOA,什么是SCA,什么是微服务?

梦想与她 提交于 2019-12-10 21:25:43
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能。 大家好,我是IT修真院上海分院朱明星,一枚正直纯洁善良的JAVA程序员。 今天给大家分享一下,修真院官网任务九,深度思考中的知识点——什么是SOA,什么是SCA,什么是微服务? (1)背景介绍: 架构演变 单一应用架构 * 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 * 此时,用于简化增删改查工作量的数据访问框架(ORM) 是关键。 * 代码层面没有拆分,所有的业务逻辑都在一个项目里打包成一个二进制的编译后文件,通过这个文件进行部署,并提供业务能力。 垂直应用架构 * 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 * 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 * 整个系统由多个模块组成,每个模块又由这种不同的部分组成。这样一来,我们就把整个系统拆解成了很多粒度较小的零件。 分布式服务架构 * 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 * 此时,用于提高业务复用及整合的分布式服务框架(RPC) 是关键。

揭秘丨7分钟看懂华为云鲲鹏Redis背后的自研技术【华为云技术分享】

ぐ巨炮叔叔 提交于 2019-12-10 17:55:37
2019年5月,华为云发布全球首个基于自研ARM架构的分布式缓存鲲鹏Redis,搭载华为LibOS+华为编译器+安全容器引擎三项黑科技,在保证Redis强劲高性能外,还降低客户30%的使用成本,真正实现了好用不贵的普惠型分布式缓存Redis产品。 本文从技术视角解读华为云鲲鹏Redis是如何通过数据中心基础设施、芯片、硬件、软件等全栈创新优化,达成以上效果。 一、为什么 ARM 架构适合 Redis ? 众所周知,Redis是一款风靡全球的高性能、高灵活性、数据结构类型丰富的key-value内存数据库,拥有毫秒级的响应时延。因此Redis对服务器内存、网络带宽时延要求极高,即:Redis的高性能能否发挥出来取决于服务器内存、网络性能。 2019年3月, Redis之父Salvatore Sanfilippo(网名:antirez)就Redis ARM架构发展趋势发表观点,他表示把ARM作为Redis运行架构,并且通过了所有测试与验证、性能稳定性非常好,Antirez列举了很多测试数据,得到了广大网友的支持。 由于Redis在设计上就采用单线程架构,所有IO和数据处理都是在同一个线程中完成的,所以单节点的Redis最多只能使用一颗CPU核心,单节点Redis的性能基本达到10万QPS的量级后就没法再向上扩展了。 在现实的业务系统中,对Redis性能往往都要求达到100万QPS以上

Spring Cloud简介,微服务架构,以及与Dubbo的详细比较

这一生的挚爱 提交于 2019-12-10 17:28:08
什么是Spring Cloud Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。 为什么需要Spring Cloud Spring Cloud 是整个 Spring 家族中新的成员,要致力于分布式系统、云服务的框架。 Spring Cloud 为开发人员提供了 快速构建分布式系统中一些常见模式的工具,例如: 配置管理 服务注册与发现 断路器 智能路由 服务间调用 负载均衡 微代理 控制总线 一次性令牌 全局锁 领导选举 分布式会话 集群状态 分布式消息 一句话概括:Spring Cloud是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术集合,俗称微服务全家桶。 微服务架构使用场景 首先,我们需要看看一般的微服务架构需要的功能或使用场景: 1、我们把整个系统根据业务拆分成几个子系统。 2、每个子系统可以部署多个应用,多个应用之间使用负载均衡。 3、需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也是通过在注册中心注册的服务来使用一定策略来实现。 4、所有的客户端都通过同一个网关地址访问后台的服务,通过路由配置,网关来判断一个URL请求由哪个服务处理。请求转发到服务上的时候也使用负载均衡。 5

微服务

无人久伴 提交于 2019-12-10 15:49:00
单体应用   早些年,各大互联网公司的应用技术栈大致可分为 LAMP(Linux + Apache + MySQL + PHP)和 MVC(Spring + iBatis/Hibernate + Tomcat)两大流派。无论是 LAMP 还是 MVC,都是为单体应用架构设计的,其优点是学习成本低,开发上手快,测试、部署、运维也比较方便,甚至一个人就可以完成一个网站的开发与部署。   以 MVC 架构为例,业务通常是通过部署一个 WAR 包到 Tomcat 中,然后启动 Tomcat,监听某个端口即可对外提供服务。早期在业务规模不大、开发团队人员规模较小的时候,采用单体应用架构,团队的开发和运维成本都可控。   然而随着业务规模的不断扩大,团队开发人员的不断扩张,单体应用架构就会开始出现问题。我估计经历过业务和团队快速增长的同学都会对此深有感触。从我的角度来看,大概会有以下几个方面的问题。   想要解决上面这些问题,服务化的思想也就应运而生。 什么是服务化   用通俗的话来讲,服务化就是把传统的单机应用中通过 JAR 包依赖产生的本地方法调用,改造成通过 RPC 接口产生的远程方法调用。一般在编写业务代码时,对于一些通用的业务逻辑,我会尽力把它抽象并独立成为专门的模块,因为这对于代码复用和业务理解都大有裨益。   以微博系统为例,微博既包含了内容模块,也包含了消息模块和用户模块等

DSP微架构

若如初见. 提交于 2019-12-10 12:49:02
微架构又叫指令集架构(Instruction Set Architecture,ISA). DSP的微架构(流水线,指令集,基本运算单元等) SIMD:单指令多数据流,用于打包指令集 整数 四级流水:取指(instruction fetch) 解码(instruction decode) 执行(Execute) 写回 流水线是否越深越好? 当然不是合适最好。流水线越深吞吐率越高性能越好,但同时浪费越大,面积消耗越大。 指令集:存储在CPU内部,对CPU的运算进行指导和优化的硬程序。Intel主要有X86,SSE等指令集。 来源: CSDN 作者: 司cc 链接: https://blog.csdn.net/yuxiaoxi21/article/details/93618377