上次《百亿级数据DB秒级平滑扩容!》之后,很多朋友提问,说如果不是“双倍”扩容,能否做到平滑迁移,不影响服务呢?适用什么场景?互联网有很多“数据量较大,并发量较大,业务复杂度较高”的业务场景,其典型系统分层架构如下:(1)上游是业务层biz,实现个性化的业务逻辑;(2)中游是服务层service,封装数据访问;(3)下游是数据层db,存储固化的业务数据;服务化分层架构的好处是,服务层屏蔽下游数据层
分类:
其他好文 时间:
2020-11-16 13:59:24
阅读次数:
11
ServiceMesh(2)上一篇介绍了《ServiceMesh究竟解决什么问题?》,当微服务架构体系越来越复杂的时候,需要将“业务服务”和“基础设施”解耦,将一个微服务进程一分为二:一个进程实现业务逻辑,biz,即上图白色方块一个进程实现底层技术体系,proxy,即上图蓝色方块,负载均衡、监控告警、服务发现与治理、调用链…等诸多基础设施,都放到这一层实现如此解耦之后:biz不管是调用服务,还是提
分类:
其他好文 时间:
2020-11-16 13:58:44
阅读次数:
12
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
这是一个真实的故事。【上】我叫“小孩子”,一个后端研发工程师,平时喜欢搞技术,看源码。和大部分互联网公司一样,我使用MySQL作为存储,在研究MySQL,学习MySQL的过程中,我遇到了这样一些困难:(1)网上MySQL的资料不系统,多而杂;(2)有的书偏应用,比较浅,底层原理没有讲;(3)有的书语言比较晦涩,比较难懂;我在想,会不会有很多技术的小伙伴,在学习MySQL的时候,会不会遇到类似的问题
分类:
数据库 时间:
2020-11-16 13:56:12
阅读次数:
14
以前的文章讨论过《互联网架构,究竟为啥要做服务化?》,随着数据量、并发量、业务复杂度的增长,互联网架构会出现以下问题:代码到处拷贝底层复杂性扩散基础库(so/jar/dll)耦合SQL质量得不到保障,业务相互影响数据库耦合“服务化”是一个很好的解决上述痛点的方案。那么问题来了,微服务架构多“微”才合适?行业内有这样四类常见实践。实践一:统一服务层这是最粗犷的玩法,所有基础数据,都通过一个统一的服务
分类:
其他好文 时间:
2020-11-16 13:55:14
阅读次数:
8
架构师之路年终总结(八)-算法篇写了几万字关于算法与数据结构的文章,稍作总结,希望对大家有帮助。画外音:都是面试官最喜欢问的,必须要掌握。1.TopK问题六种方法求解TopK问题,阅读量超高。《拜托,面试别再问我TopK了!》全局排序、局部排序,堆,分治法,减治法,随机选择等六种方法,时间复杂度从平方到线性,彻底搞懂TopK。画外音:分治法,减治法的本质是什么?2.数1问题四种方法求解数1问题,阅
分类:
编程语言 时间:
2020-11-16 13:54:58
阅读次数:
14
年初花了一些笔墨写互联网常见的推荐算法,没有复杂的公式,没有晦涩的技术词汇,只有通俗的案例,每篇1分钟,保证弄懂。《从电影推荐开始,聊协同过滤》什么是协同过滤协同过滤的3步骤一张excel表格,秒懂协同过滤《从职位推荐开始,聊内容推荐》什么是基于内容的推荐基于内容的推荐的3步骤明明职位要求6000+,为啥会出3000+的推荐结果《我不是潘金莲,聊相似性推荐》没有用户行为数据,能不能做电影推荐相似度
分类:
其他好文 时间:
2020-11-16 13:53:59
阅读次数:
6
毕昇JDK,重现了“活字印刷术”的传奇中央处理器,即CPU,包含很多种设计架构。其中最常见的架构有两种,一种是X86架构,一种是ARM架构。这两种架构有什么不同呢?主要是使用的指令集不一样。X86架构使用CISC指令集,即复杂指令集,最典型的代表就是英特尔处理器。ARM架构使用RISC指令集,即精简指令集,华为的鲲鹏就是基于ARM架构。OpenJDK,对于X86架构处理器有很好的支持,虽然也基本支
分类:
其他好文 时间:
2020-11-16 13:53:36
阅读次数:
8
思路 方法一:二分法之一 (类似暴力) (1) 用二分法找到第一个target所在的位置 (2) 之后在此位置前后顺序查找依次计数target的出现次数 复杂度分析 时间复杂度:最坏情况下O(n) 空间复杂度:O(1) ...
分类:
编程语言 时间:
2020-11-16 13:13:01
阅读次数:
7