摘要:
简介 由于某些场景下服务提供方和调用方都无法做到可用性,当系统远程调用时,可能会因为某些接口变慢导致调用方大量HTTP连接被阻塞而引发雪崩。 解决思路如下: 服务提供方实现接口快速失败,当处理时间达到一定阈值时,直接返回失败。需要服务提供方配合改造。 服务提供方在反向代理层增加proxy_timeo 阅读全文
摘要:
本文旨在对比Elasticsearch和MongoDB高可用和分片的实现机制。 Elasticsearch ES天生就是分布式的,那她又是如何做到天生分布式的? 通过 "ES官方指南" )我们可以知道: 一个运行中的 Elasticsearch 实例称为一个 节点,而集群是由一个或者多个拥有相同 c 阅读全文
摘要:
Prometheus是什么 "Prometheus" (普罗米修斯)是一个名字非常酷的开源监控系统。 它支持多维度的指标数据模型,服务端通过HTTP协议定时拉取数据后,通过灵活的查询语言,实现监控的目的。 如上图,客户端记录相关指标数据,对外提供查询接口。Prometheus服务端通过服务器发现机制 阅读全文
摘要:
业内实践 git flow 固定远程分支: master分支: 主分支,和生产环境一致,存放已发布完成的版本 develop分支: 主开发分支,用于合并功能分支,维护公共的最新代码 临时远程分支: release分支: 预发分支,发布时基于Develop分支创建一个Release分支,完成Relea 阅读全文
摘要:
服务发现和注册 我们有了两个服务。服务A的IP地址是192.168.0.1,端口9001,服务B的IP地址192.168.0.2,端口9002。我们的客户端需要调用服务A和服务B,我们只需要在配置文件中写上服务A和服务B的IP地址即可。 此时,服务A的服务器负载有点高,我们需要临时增加服务A的实例, 阅读全文
摘要:
雪崩效应 现如今SOA、微服务风愈演愈烈,越来越多的业务和资源被以服务的形式包装和发布,服务间又可能会依赖其他各种服务。由此而来不可避免的会产生很多问题。 比如一个服务,其依赖了另外30个服务。假设每个服务的可用率都有三个9(99.9%),那么我们计算一下: 99.99%^30 = 99.7% 现实 阅读全文
摘要:
论获取缓存值的正确姿势 cache 时至今日,大家对缓存想必不在陌生。我们身边各种系统中或多或少的都存在缓存,自从有个缓存,我们可以减少很多计算压力,提高应用程序的QPS。 你将某些需要大量计算或查询的结果,设置过期时间后放入缓存。下次需要使用的时候,先去缓存处查询是否存在缓存,没有就直接计算/查询 阅读全文
摘要:
偶然看到一个GITHUB项目,提供了一套Docker Compose下的redis Sentinel方案。 项目地址 "https://github.com/AliyunContainerService/redis cluster" ,应该是国人创建的。 具体说明readme中写的很明白了,yml内 阅读全文
摘要:
踩坑 近日在对一个ASP.NET WEBFORM项目进行调优过程中,偶然发现页面POSTBACK事件是串行处理的,甚至不同页面的请求都是串行处理的(一个页面加载完毕后,才开始加载第二个页面)。但是网站明明是并发处理请求的啊,当时十分不解,把代码翻来覆去排查了大半天,寻找业务框架中什么地方是不是锁了资 阅读全文
摘要:
Thymeleaf是现代化服务器端的Java模板引擎,不同与JSP和FreeMarker,Thymeleaf的语法更加接近HTML,并且也有不错的扩展性。详细资料可以浏览 "官网" 。本文主要介绍Thymeleaf模板的使用说明。 模板(template fragments) 定义和引用模板 日常开 阅读全文