服务失败的解决方式
FailOver:失败自动切换。就是服务消费者发现调用失败或者超时后,自动从可用的服务节点列表总选择下一个节点重新发起调用,也可以设置重试的次数。这种策略要求服务调用的操作必须是幂等的,也就是说无论调用多少次,只要是同一个调用,返回的结果都是相同的,一般适合服务调用是读请求的场景。
FailBack:失败通知。就是服务消费者调用失败或者超时后,不再重试,而是根据失败的详细信息,来决定后续的执行策略。比如对于非幂等的调用场景,如果调用失败后,不能简单地重试,而是应该查询服务端的状态,看调用到底是否实际生效,如果已经生效了就不能再重试了;如果没有生效可以再发起一次调用。
FailCache:失败缓存。就是服务消费者调用失败或者超时后,不立即发起重试,而是隔一段时间后再次尝试发起调用。比如后端服务可能一段时间内都有问题,如果立即发起重试,可能会加剧问题,反而不利于后端服务的恢复。如果隔一段时间待后端节点恢复后,再次发起调用效果会更好。
FailFast:快速失败。就是服务消费者调用一次失败后,不再重试。实际在业务执行时,一般非核心业务的调用,会采用快速失败策略,调用失败后一般就记录下失败日 ...
你绝对不知道的冷知识,黑板为什么是绿色的
欢迎评论?为什么不叫绿板
Git常用命令速查表
Git常用命令速查表无知的小狼整理版#### 基础概念12345master: 默认开发分支Head: 默认开发分支origin: 默认远程版本库Head^: Head的父提交创建版本库12$ git clone <url> #克隆远程版本库 $ git init #初始化本地版本库
修改和提交123456789$ git status #查看状态 $ git diff #查看变更内容$ git add . #跟踪所有改动过的文件 $ git add <file> #跟踪指定的文件$ git mv <old> <new> #文件改名$ git rm <file> #删除文件$ git rm --cached <file> # ...
一折啦
拼团商品1折起,云服务器ECS86元/年,快来拼团吧点击
数据库优化
MYSQL-性能优化篇1、 为什么要进行数据库优化?1、 避免网站页面出现访问错误由于数据库连接timeout产生页面5xx错误由于慢查询造成页面无法加载由于阻塞造成数据无法提交2、 增加数据库的稳定性很多数据库问题都是由于低效的查询引起的3、 优化用户体验流畅页面的访问速度良好的网站功能体验2、mysql数据库优化可以从哪几个方面进行数据库的优化?如下图所示:
A、 SQL及索引优化根据需求写出良好的SQL,并创建有效的索引,实现某一种需求可以多种写法,这时候我们就要选择一种效率最高的写法。这个时候就要了解sql优化B、 数据库表结构优化根据数据库的范式,设计表结构,表结构设计的好直接关系到写SQL语句。C、 系统配置优化大多数运行在Linux机器上,如tcp连接数的限制、打开文件数的限制、安全性的限制,因此我们要对这些配置进行相应的优化。D、 硬件配置优化选择适合数据库服务的cpu,更快的IO,更高的内存;cpu并不是越多越好,某些数据库版本有最大的限制,IO操作并不是减少阻塞。注:通过上图可以看出,该金字塔中,优化的成本从下而上逐渐增高,而优化的效果会逐渐降低。
3、SQL及索引 ...
常用的正则表达式
整数或者小数:^[0-9]+.{0,1}[0-9]{0,2}$只能输入数字:”^[0-9]$”只能输入n位的数字:”^\d{n}$”只能输入至少n位的数字:”^\d{n,}$”只能输入m~n位的数字:”^\d{m,n}$”只能输入零和非零开头的数字:”^(0|[1-9][0-9])$”。只能输入有两位小数的正实数:”^[0-9]+(.[0-9]{2})?$”。只能输入有13位小数的正实数:”^[0-9]+(.[0-9]{1,3})?$”。只能输入非零的正整数:”^+?[1-9][0-9]$”。只能输入非零的负整数:”^-[1-9][]0-9″$。只能输入长度为3的字符:”^.{3}$”。只能输入由26个英文字母组成的字符串:”^[A-Za-z]+$”。只能输入由26个大写英文字母组成的字符串:”^[A-Z]+$”。只能输入由26个小写英文字母组成的字符串:”^[a-z]+$”。只能输入由数字和26个英文字母组成的字符串:”^[A-Za-z0-9]+$”。只能输入由数字、26个英文字母或者下划线组成的字符串:”^\w+$”。验证用户密码:”^[a-zA-Z]\w{5,17}$”正确格式为 ...
剑指officer
坚持,坚持,坚持
day1习题
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package com.wzl.day1;/** * @author wuzhilang * @Title: Day1 * @ProjectName questions * @Description: TODO * @date 7/15/20191:14 PM */import java.util.ArrayList;import java.util.Calendar;import java.util.List;/** * 问题描述: 阅读以下代码输出正确的答案 * import java.util.Calendar; * <p> * public class Elvis { * public static final Elvis INSTANCE = new Elvis(); * private final int beltSize; * <p> * private static f ...