Windows10输入法获取当前时间
打开输入法设置右击单击右下角的输入法选项,选择设置
选择词库和自学习
点击添加或编辑自定义短语
添加短语添加短语:%yyyy%-%MM%-%dd% %HH%:%mm%:%ss%
使用在中文模式下输入sj即可获取当前时间
Git恢复之前的版本
解决方法回退(reset)、反做(revert)
回退(reset)原理git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本,如下图所示,假设我们要回退到版本一
适用场景如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法
具体操作
查看版本号
先查看当前库有哪些版本号,查看方法有两种:
Git命令
1git log
commit后的黄色字符串就是版本号
在GitHub中查看
点击下图的提交数
点击下图的复制按钮即可复制完整版本号
开始回退
使用下面命令将版本回退
1git reset --hard 目标版本号
使用下面命令提交更改,-f代表强制
1git push -f
反做(revert)原理git revert是用于反做某一个版本,以达到撤销该版本的修改的目的。比如,我们commit了三个版本(版本一、版本二、 版本三),突然发现版本二不行(如:有bug),想要撤销版本二,但又不想影响撤销版本三的提交,就可以用git revert命令来反做版本二,生成新的版本四,这 ...
整合Feign和Hystrix实现服务熔断服务降级彻底解耦
解耦原因下面代码使用@HystrixCommand(fallbackMethod = “getInfoFallback”)业务代码耦合度太高,不利于维护,所以需要整合Feign和Hystrix进行解耦
123456789101112131415161718192021222324252627/** * 获取信息 * * @return * @throws InterruptedException */@RequestMapping("/getInfo")@HystrixCommand(fallbackMethod = "getInfoFallback")public Map<String, Object> getInfo() throws InterruptedException { Thread.sleep(100); Map<String, Object> map = new HashMap<>(16); map.put("code", 200); ma ...
Hystrix集群监控turbine
简介Hystrix集群监控使用的是turbine,而turbine是基于Dashboard的
组建Hystrix集群新建一个Module,该Module为Maven项目,命名为:microservice-student-provider-hystrix-1005,把microservice-student-provider-hystrix-1004的所有文件都复制一份过来,修改几个地方:
修改application.ymlserver.port修改为:1005,eureka.instance.instance-id: microservice-student-hystrix修改为:1005
修改启动类如果启动类是复制过来的,重命名为:StudentProviderHystrixApplication_1005
新建集群监控项目新建一个Module,命名为:microservice-student-consumer-hystrix-turbine-91
添加依赖12345678910<dependencies> <dependency> < ...
Hystrix使用服务监控
简介Hystrix提供了 准实时的服务调用监控项目Dashboard,能够实时记录通过Hystrix发起的请求执行情况,可以通过图表的形式展现给用户看。
配置新建Module该Module为Maven项目,命名为:microservice-student-consumer-hystrix-dashboard-90
添加依赖123456789101112<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> ...
Hystrix修改默认超时时间
概述Hystrix的默认超时时间是1秒,有时候正常请求响应的时间就超过了1秒,所以1秒钟并不能满足日常的开发需求,需要根据实际情况设置超时时间
源码位置1private static final Integer default_executionTimeoutInMilliseconds = 1000;
修改在application.yml中添加下面配置:
1234567hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 3000
数值的单位为毫秒,1000毫秒==1秒
测试先启动三个eureka,再启动带hystrix的provider,最后启动普通的consumer
浏览器地址输入:http://localhost/student/getInfo
上面配置已经将Hystrix的默认超时时间修改为3秒,使用Thread.sleep(2000)让程序睡眠两秒也不会超时
使用Hystrix断路器
简介hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因此Netflix团队将该框架命名为Hystrix,并使用了对应的卡通形象做作为logo。
在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,如何能够保证在一个依赖出问题的情况下,不会导致整体服务失败,这个就是Hystrix需要做的事情。Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。
服务雪崩效应当一个请求依赖多个服务的时候:
正常情况下的访问
但是,当请求的服务中出现无法访问、异常、超时等问题时(图中的I),那么用户的请求将会被阻塞
如果多个用户的请求中,都存在无法访问的服务,那么他们都将陷入阻塞的状态中
作用Hystrix断路器可以通过服务熔断和服务降级来解决上述的服务雪崩效应
使用熔断机制是应对雪崩效应的一种微服务链路保护机制,当某个服务不可用或者响应时间超时,会进行服务降级,进而熔断该节点的服务调用,快速返回自定义的错误影响页面 ...
Markdown代码块编程语言清单
我的常用
语言名称
Markdown 语言声明
HTML
html
CSS
css
JavaScript
javascript
Java
java
Linux和Windows命令、Bash、文件路径
bash
XML
xml
.yml
yaml
SQL
sql
所有
语言名称
Markdown 语言声明
常见文件名
1C Enterprise
1c-enterprise
*.bsl
4D
4d
*.4dm
ABAP
abap
*.abap
ABNF
abnf
*.abnf
AGS Script
ags-script, ags
*.asc
AMPL
ampl
*.ampl
ANTLR
antlr
*.g4
API Blueprint
api-blueprint
*.apib
APL
apl
*.apl
ASN.1
asn.1
*.asn
ASP
asp, aspx, aspx-vb
*.asp
ATS
ats, ats2
*.dats
ActionScript
actionscript, ...
使用Feign
Feign简介Feign是一个声明式的Web Service客户端,它使得编写Web Serivce客户端变得更加简单。我们只需要使用Feign来创建一个接口并用注解来配置它既可完成。它具备可插拔的注解支持,包括Feign注解和JAX-RS注解。Feign也支持可插拔的编码器和解码器。Spring Cloud为Feign增加了对Spring MVC注解的支持,还整合了Ribbon和Eureka来提供均衡负载的HTTP客户端实现。
使用修改公共模块项目公共模块项目名称为: microservice-common
pom.xml引入Feign依赖:
1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-feign</artifactId></dependency>
新建StudentClientService接口(新建一个service包并存放在里面),加入@FeignClie ...
Ribbon策略
说明Ribbon默认的策略是轮询策略,这种默认的轮询策略肯定是不能满足实际需求的,比如有3个服务提供者,突然挂了一个,这样的话,默认轮询 ,总有1/3的概率访问失败,会出现下面的错误,所以需要选择合适的策略
策略大全
策略名
策略声明
策略描述
实现说明
BestAvailableRule
public class BestAvailableRule extends ClientConfigEnabledRoundRobinRule
选择一个最小的并发请求的server
逐个考察Server,如果Server被tripped了,则忽略,在选择其中ActiveRequestsCount最小的server
AvailabilityFilteringRule
public class AvailabilityFilteringRule extends PredicateBasedRule
过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,并过滤掉那些高并发的的后端server(active connections 超过配置的阈值)
使用一个 ...