从mysql高可用架构看高可用架构设计
摘要:高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。如果系统每运行100个时间单位,会有1个时间单位无法提供服务,我们说系统的可用性是99%。很多公司的高可
阅读全文
posted @
2019-05-23 11:03
一天不进步,就是退步
阅读(2681)
推荐(1) 编辑
solr查询工作原理深入内幕
摘要:1.什么是Lucene? 作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用
阅读全文
posted @
2019-03-21 16:56
一天不进步,就是退步
阅读(4282)
推荐(0) 编辑
漫谈架构师之路的修仙之法
摘要:从小有一个武侠梦,长大从事了IT,空闲时间看了很多修仙小说。就萌生了一个想法:把IT之路和修仙之路联系到一起。 于是参照<凡人修仙传>的各个修仙阶段,对比IT之路进行了对照,才有了这篇文章。无图无真相。 大图太大,不易看清楚,下面分阶段展示一下: 1.初入书院 说明: 1.1 入门 人的精力有限,总
阅读全文
posted @
2019-03-15 18:28
一天不进步,就是退步
阅读(2857)
推荐(12) 编辑
zookeeper服务发现实战及原理--spring-cloud-zookeeper源码分析
摘要:1.为什么要服务发现? 服务实例的网络位置都是动态分配的。由于扩展、失败和升级,服务实例会经常动态改变,因此,客户端代码需要使用更加复杂的服务发现机制。 2.常见的服务发现开源组件 etcd—用于共享配置和服务发现的高可用性、分布式、一致的键值存储。使用etcd的两个著名项目是Kubernetes和
阅读全文
posted @
2019-03-14 10:00
一天不进步,就是退步
阅读(2572)
推荐(0) 编辑
Apache Solr 实现去掉重复的搜索结果
摘要:https://lucene.apache.org/solr/guide/7_2/collapse-and-expand-results.html#collapsing-query-parser 对应的源码实现QParserPlugin 具体如下:
阅读全文
posted @
2019-03-07 17:14
一天不进步,就是退步
阅读(702)
推荐(0) 编辑
solr调用lucene底层实现倒排索引源码解析
摘要:1.什么是Lucene? 作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用
阅读全文
posted @
2019-03-07 13:26
一天不进步,就是退步
阅读(1684)
推荐(1) 编辑
lucene实战--打分算法没有那么难!
摘要:作为一个开放源代码项目,Lucene从问世之后,引发了开放源代码社群的巨大反响,程序员们不仅使用它构建具体的全文检索应用,而且将之集成到各种系统软件中去,以及构建Web应用,甚至某些商业软件也采用了Lucene作为其内部全文检索子系统的核心。apache软件基金会的网站使用了Lucene作为全文检索
阅读全文
posted @
2019-03-06 12:00
一天不进步,就是退步
阅读(2872)
推荐(1) 编辑
zookeeper配置中心实战--solrcloud zookeeper配置中心原理及源码分析
摘要:程序的发展,需要引入集中配置: 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址…… 并且对配置的期望也越来越高,配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 并且随着采用分布式的开发模式,项目之间的相互引用随着服务的不断增多,相
阅读全文
posted @
2019-02-25 16:05
一天不进步,就是退步
阅读(1677)
推荐(1) 编辑
增量架构方法与系统构建
摘要:世界上大多数的应用程序,可能有90%,都是由单体结构(monolithic)完美地提供服务的;Randy Shoup在Summit 2018年峰会上宣布,为了避免过度设计,我们应该从一个简单的架构开始,并根据需要进行演进。在他最近发表的演讲中,他描述了自己与在一些公司的项目经历,这些公司起初规模很小
阅读全文
posted @
2019-02-14 09:59
一天不进步,就是退步
阅读(919)
推荐(1) 编辑
分布式系统中的限流与熔断
摘要:在应对秒杀、大促、双 11、618 等高性能压力的场景时,限流已经成为了标配技术解决方案,为保证系统的平稳运行起到了关键性的作用。不管应用场景是哪种,限流无非就是针对超过预期的流量,通过预先设定的限流规则选择性的对某些请求进行限流“熔断”。 1. 限流 1.1 单机限流 a>>限制并发量 b>>计数
阅读全文
posted @
2018-12-29 15:21
一天不进步,就是退步
阅读(4046)
推荐(0) 编辑
数据库新秀 postgresql vs mongo 性能PK
摘要:前几天看了一篇文章<High Performance JSON PostgreSQL vs. MongoDB> 发布在Percona Live Europe 2017 作者是<Dominic Dwyer Wei Shan Ang>,作者的观点是PostgreSQL更好,恰巧没有玩过postgresq
阅读全文
posted @
2018-12-28 21:40
一天不进步,就是退步
阅读(4235)
推荐(0) 编辑
分布式系统中"身份证"是如何生成的?
摘要:1.公民身份证是如何生产的? 根据中华人民共和国国家标准GB 11643-1999 公民身份号码规则 示例: 校验码公式 校验码规则说明 2.分布式系统中"身份证" 分布式系统,有的业务系统,都有生成ID的需求,如订单id,商品id,文章ID等。这个"身份证"一般要求: >>全局唯一 >>有序 分布
阅读全文
posted @
2018-12-27 12:46
一天不进步,就是退步
阅读(719)
推荐(1) 编辑
秒杀架构中高性能可扩展高可用的一点思考
摘要:1.DNS轮询 秒杀架构作为业界的热点问题,受到广泛关注。BAT作为业界的翘楚,了解他们的高扩展架构对我们的思路也许会有帮助。 nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题,我们先来看看BAT的域名解析后是什么样子的? >>红色方框1中的服务器,是域名服务
阅读全文
posted @
2018-12-26 11:04
一天不进步,就是退步
阅读(316)
推荐(0) 编辑
主流的自动化运维工具
摘要:主流的自动化运维工具有3种:Puppet、Saltstack和Ansible,用的最多的还是Ansible。 Puppet:官网:www.puppetlabs.com ,基于rubby开发,C/S架构,支持多平台,可管理配置文件、用户、cron任务、软件包、系统服务等。分为社区版(免费)和企业版(收
阅读全文
posted @
2018-11-07 14:29
一天不进步,就是退步
阅读(1584)
推荐(0) 编辑
分布式系统发展史--转
摘要:http://www.infoq.com/cn/articles/the-evolution-of-distributed-systems 分布式系统(确切地说应该是分布式计算机系统)从它诞生到现在已经过去了很长的时间。在很久以前,一台电脑一次只能完成一项特定的任务。如果我们需要同时完成多项任务,则
阅读全文
posted @
2018-07-23 13:28
一天不进步,就是退步
阅读(345)
推荐(0) 编辑
微服务实践分享(9)文档中心
摘要:1.文档中心 在项目中,需要协同开发,所以会写许多API文档给其他同事,以前都是写一个简单的TXT文本或Word文档,口口相传,这种方式比较老土了,所以,需要有个api管理系统专门来管理这些api 2.开源 Swagger apiDoc 阿里的RAP 3.业界 淘宝api中心 腾讯开发平台
阅读全文
posted @
2018-07-09 18:03
一天不进步,就是退步
阅读(235)
推荐(0) 编辑
微服务实践分享(8) 控制调用中心
摘要:1.熔断 在微服务领域,熔断机制是从消费端保护微服务提供者的措施,当微服务的运行质量低于某个临界值时,启动熔断机制,暂停微服务调用一段时间,以保障后端的微服务不会因为持续过负荷而宕机。 2.降级 服务降级主要包括容错降级和屏蔽降级 屏蔽降级:1)throw null 不发起远程调用,直接返回空 2)
阅读全文
posted @
2018-07-07 12:44
一天不进步,就是退步
阅读(983)
推荐(0) 编辑
微服务实践分享(7)认证授权中心
摘要:认证机制: OAuth (Facebook, Twitter, Google...) - SAML - CAS - OpenID Connect - HTTP - OpenID - Google App EngineLDAP - SQL - JWT - MongoDB - CouchDB - IP
阅读全文
posted @
2018-07-03 20:38
一天不进步,就是退步
阅读(2680)
推荐(0) 编辑
微服务实践分享(6)消息中心
摘要:1.作用 解耦在项目启动之初来预测将来项目会碰到什么需求,是极其困难的。消息系统在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口。这允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。冗余 有些情况下,处理数据的过程会失败。除非数据被持久化,否则将造
阅读全文
posted @
2018-07-03 20:05
一天不进步,就是退步
阅读(1594)
推荐(0) 编辑