码迷,mamicode.com
首页 > 其他好文
剑指offer_04:重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: ? 3 ? / ? 9 20 ? / ...
分类:其他好文   时间:2020-11-16 14:00:02    阅读次数:13
Istio,灰度发布从未如此轻松!!!
三个问题,回顾前情提要。ServiceMesh解决什么问题?SM本质是业务服务与底层技术体系的解耦:一个进程实现业务逻辑(不管是调用方,还是服务提供方),biz,即上图白色方块一个进程实现底层技术体系,proxy,即上图蓝色方块画外音:负载均衡、监控告警、服务发现与治理、调用链…等诸多基础设施,都放到这一层实现。什么是Istio?Istio是ServiceMesh的产品化落地。Istio的分层架构
分类:其他好文   时间:2020-11-16 13:59:46    阅读次数:13
100亿数据,非“双倍”扩容,如何不影响服务,数据平滑迁移?
上次《百亿级数据DB秒级平滑扩容!》之后,很多朋友提问,说如果不是“双倍”扩容,能否做到平滑迁移,不影响服务呢?适用什么场景?互联网有很多“数据量较大,并发量较大,业务复杂度较高”的业务场景,其典型系统分层架构如下:(1)上游是业务层biz,实现个性化的业务逻辑;(2)中游是服务层service,封装数据访问;(3)下游是数据层db,存储固化的业务数据;服务化分层架构的好处是,服务层屏蔽下游数据层
分类:其他好文   时间:2020-11-16 13:59:24    阅读次数:11
Istio分层架构?80%的人有误解
ServiceMesh(3)前篇:《ServiceMesh究竟解决什么问题》《什么是Istio,ServiceMesh最流行落地》Istio是ServiceMesh的产品化落地:它帮助微服务之间建立连接,帮助研发团队更好的管理与监控微服务,并使得系统架构更加安全它帮助微服务分层解耦,解耦后的proxy层能够更加专注于提供基础架构能力,例如:(1)服务发现(discovery)(2)负载均衡(loa
分类:其他好文   时间:2020-11-16 13:59:09    阅读次数:12
Istio究竟是干嘛的?
ServiceMesh(2)上一篇介绍了《ServiceMesh究竟解决什么问题?》,当微服务架构体系越来越复杂的时候,需要将“业务服务”和“基础设施”解耦,将一个微服务进程一分为二:一个进程实现业务逻辑,biz,即上图白色方块一个进程实现底层技术体系,proxy,即上图蓝色方块,负载均衡、监控告警、服务发现与治理、调用链…等诸多基础设施,都放到这一层实现如此解耦之后:biz不管是调用服务,还是提
分类:其他好文   时间:2020-11-16 13:58:44    阅读次数:12
ServiceMesh究竟解决什么问题?
SM,第一篇服务网格(ServiceMesh)这两年异常之火,号称是下一代微服务架构,接下来两个月,准备系统性的写写这个东西,希望能够让大家对最新的架构技术,有个初步的了解。画外音:我的行文的风格了,“为什么”往往比“怎么样”更重要。互联网公司,经常使用的是微服务分层架构。画外音:为什么要服务化,详见《服务化到底解决什么问题?》。随着数据量不断增大,吞吐量不断增加,业务越来越复杂,服务的个数会越来
分类:其他好文   时间:2020-11-16 13:58:09    阅读次数:14
拜托,面试别再问我表达式求值了!!!
上周面试一个候选人,问了一个数据结构与算法的问题,表达式求值。题目大概是这样的:输入长度为n的字符串,例如:1+2+345输出表达式的值,即:63我暗示的问:应该用什么数据结构?候选人回答:栈。画外音:算是答对。问:时间复杂度呢?回答:O(n^2)画外音:额,应该不需要两个for循环吧。我接着提示:应该先计算哪一步?候选人回答:先计算3*4。画外音:额,难道是乘除大于加减?实际应该先计算1+2,说
分类:其他好文   时间:2020-11-16 13:57:51    阅读次数:16
“搜索”的原理,架构,实现,实践,面试不用再怕了(值得收藏)!!!
可能99%的同学不做搜索引擎,但99%的同学一定实现过检索功能。搜索,检索,这里面到底包含哪些技术的东西,希望本文能够给大家一些启示。全网搜索引擎架构与流程如何?全网搜索引擎的宏观架构如上图,核心子系统主要分为三部分(粉色部分):(1)spider爬虫系统;(2)search&index建立索引与查询索引系统,这个系统又主要分为两部分:一部分用于生成索引数据build_index一部分用于
分类:其他好文   时间:2020-11-16 13:57:29    阅读次数:12
KA,连接池居然这么简单?
《“ID串行化”保证群消息顺序性》提到,可以通过连接池的改造,实现ID串行化,本篇讲讲连接池的原理,以及实现细节。通常如何通过连接访问下游?工程架构中有很多访问下游的需求,下游包括但不限于服务/数据库/缓存,其通讯步骤是为:(1)与下游建立一个连接;(2)通过这个连接,收发请求;(3)交互结束,关闭连接,释放资源;不管是服务/数据库/缓存,官方会提供不同语言的Driver、Document、Dem
分类:其他好文   时间:2020-11-16 13:57:11    阅读次数:7
“ID串行化”是如何保证消息顺序性的?
在《消息顺序性为何这么难?》中,介绍了一种为了保证“所有群友展示的群消息时序都是一致的”所使用的“ID串行化”的方法:让同一个群gid的所有消息落在同一台服务器上处理。ID串行化是如何实现的呢?互联网高可用常见分层架构客户端,反向代理层,接入层,服务层,存储层,这是互联网常见的高可用分层架构。画外音:这个图用过好多次。这里的“服务层”至关重要,ID串行化保证的是,同一个群gid的消息落在同一个服务
分类:其他好文   时间:2020-11-16 13:56:56    阅读次数:7
究竟啥才是互联网架构“高可用”
最近留言问“高可用”的朋友颇多,找历史文章又找不到,故重新优化发布,希望大家有收获。一、什么是高可用高可用HA(HighAvailability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可用目
分类:其他好文   时间:2020-11-16 13:56:35    阅读次数:7
我去,1分钟学的架构与运维小技巧,太值了!
架构师之路年终总结(九)-工具篇架构与运维是互联网系统公司必不可少的一环,之前也花了一些心思写架构与运维的文章,很多一分钟系列,欢迎回顾。1.《如何进行无损发布,从此不用凌晨上线》很多公司选择在晚上发布,美名其曰“对用户影响最小”,自从实现了无损发布,随时随地上线,每天按时下班,爽。2.《服务挂了,怎么自动恢复?》一分钟系列,一个互联网常见的运维工具。3.《nohup与&到底有啥用?》一分
分类:其他好文   时间:2020-11-16 13:55:51    阅读次数:9
离不开的微服务架构,脱不开的RPC细节(值得收藏)!!!
上一篇《微服务架构,多“微”才合适?》聊了微服务的粒度。微服务离不开RPC框架,RPC框架的原理、实践及细节,是本篇要分享的内容。服务化有什么好处?服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图所示:服务A:欧洲团队维护,技术背景是Java服务B:美洲团队维护,用C++实现服务C:中国团队维护,技术栈是go服务的上游调用方,按照接口、协议即可完成对
分类:其他好文   时间:2020-11-16 13:55:28    阅读次数:12
微服务架构,多“微”才合适?
以前的文章讨论过《互联网架构,究竟为啥要做服务化?》,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以下问题:代码到处拷贝底层复杂性扩散基础库(so/jar/dll)耦合SQL质量得不到保障,业务相互影响数据库耦合“服务化”是一个很好的解决上述痛点的方案。那么问题来了,微服务架构多“微”才合适?行业内有这样四类常见实践。实践一:统一服务层这是最粗犷的玩法,所有基础数据,都通过一个统一的服务
分类:其他好文   时间:2020-11-16 13:55:14    阅读次数:8
缓存架构设计,从此不再发愁
架构师之路年终总结(五)-缓存篇缓存是互联网系统架构中必不可少的一环,之前花大精力系统性的写了10篇,缓存架构设计相关的文章,欢迎回顾。1.《进程内缓存究竟怎么玩?》缓存,可以分为:进程内缓存,缓存服务。文章介绍了:(1)什么是进程内缓存(2)进程内缓存的优缺点(3)进程内缓存保存一致性的3种方案(4)到底什么时候用进程内缓存文章也说明,大部分业务场景,不应该用进程内缓存,而应该用缓存服务,而如今
分类:其他好文   时间:2020-11-16 13:54:20    阅读次数:5
“杀熟杀豪与互联网推荐”-架构师之路年终总结
年初花了一些笔墨写互联网常见的推荐算法,没有复杂的公式,没有晦涩的技术词汇,只有通俗的案例,每篇1分钟,保证弄懂。《从电影推荐开始,聊协同过滤》什么是协同过滤协同过滤的3步骤一张excel表格,秒懂协同过滤《从职位推荐开始,聊内容推荐》什么是基于内容的推荐基于内容的推荐的3步骤明明职位要求6000+,为啥会出3000+的推荐结果《我不是潘金莲,聊相似性推荐》没有用户行为数据,能不能做电影推荐相似度
分类:其他好文   时间:2020-11-16 13:53:59    阅读次数:6
毕昇JDK,重现了 “活字印刷术” 的传奇
毕昇JDK,重现了“活字印刷术”的传奇中央处理器,即CPU,包含很多种设计架构。其中最常见的架构有两种,一种是X86架构,一种是ARM架构。这两种架构有什么不同呢?主要是使用的指令集不一样。X86架构使用CISC指令集,即复杂指令集,最典型的代表就是英特尔处理器。ARM架构使用RISC指令集,即精简指令集,华为的鲲鹏就是基于ARM架构。OpenJDK,对于X86架构处理器有很好的支持,虽然也基本支
分类:其他好文   时间:2020-11-16 13:53:36    阅读次数:8
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!