自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chaos Awakening

欢迎大家访问我的个人博客 http://moodfly.top

  • 博客(12)
  • 收藏
  • 关注

原创 策略干掉if/else真香?

背景业务开发中避免不了使用if/else,但是业务越来越大的时候,需要的约束条件呢又越来越多,就会导致这个代码出现很多的分支判断,最后的情况可以能就是下图这个样.这显然那个不是我们想要的最终结果,但是开发着开发着就就变成这样了,于是就着手去修改试着干掉if/else1、选用策略模式为基础,提供模版方法。2、高度定制,借鉴策略的思想 public void Buy(double originPriceM) { if (totalAmount >=

2020-06-10 23:01:21 224

原创 Feign分析

Spring CloudFeign 概述Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,支持拦截器,支持日志,支持重试,相较于HTTPClient多了一种概念,面向接口。所有的请求服务都存放在对应的FeignClient接口中...

2019-06-11 15:52:06 1426

原创 Hystrix分析

简介Hystrix是NetFlix公司推出的用于微服务软件架构设计的服务保护模块,该模块是目的是为了去解决整体服务其中某一个服务出现宕机而依赖该服务的其余节点进入故障不可用状态出现调用雪崩这类问题。对微服务架构架构的延迟和故障去提供一个很好的容错性,这个模块提供了诸如服务降级,熔断,线程隔离,请求合并以及监控。源码分析Hystrix的Work flow说到熔断呢,这就要说到熔断器模式了,...

2019-06-11 15:47:19 492

原创 Zuul&&Kong

网关(API Gateway )原由之前学习分布式网站设计的时候,我们知道挡当应用体量提升的同时,我们的业务应用会逐步走向服务化,这样的架构适合大多数公司的演变,微服务的架构下,势必增加了op的工作量,每次新增一种服务,op就需要配置一套slb,还有原来的哪一套连接基础组件数据库缓存的机器ip白名单等,这些重复工作他需要反复维护,同事还需要维护一套slb机器和各个服务的对应关系,用来工作交接之类...

2019-06-11 15:46:13 5138

原创 Java那点事儿

Java那点事儿开局一问java代码是怎么运行的一个main方法执行就输出了结果,究其原因,我们都知道是java虚拟机提供了运行环境JRE,我们在学习java第一节的时候就知道需要配置jdk的环境变量,然后javac编译,java执行。等等,那么到底是怎么的方式就把我们写的HelloWorld从哪个命令行的黑框中打印出来呢。那我呢就需要从Class文件的加载开始分析分析了。字节码如何加载我...

2019-06-10 16:16:34 248

原创 Elasticsearch组合查询

组合查询基于Elsticsearch5.4.3版本如何执行如下的sql查询SELECT product FROM products WHERE (price = 20 OR productID = "XHDK-A-1293-#fJ3") AND (price != 30)对应的DSL语句GET /my_store/products/_search{ "query" : { ...

2019-06-10 16:13:39 3400

原创 Elasticsearch的聚合查询

Elasticsearch的聚合Elasticsearch的聚合涉及到2个核心的概念Buckets和Metrics,Metrics相当于SQL查询中的COUNT SUM MAX MIN 之类的函数,Buckets相当于分组GROUP BY。Buckets就相当于满足特定条件的文档的集合,Buckets支持嵌套也就是说,聚合整个内蒙古地区居民的CPI,包头居民的CPI会被录入该Buckets中,...

2019-06-10 16:12:37 150

原创 你了解MySQL?

开局一张图,内容全靠编实例&&数据库傻傻分不清数据库就是一堆数据文件的集合,相当于一个大文件夹其中包含了各种格式的数据文件,不同的数据格式代表使用了不同的存储引擎,如我们经常使用的innoDB在磁盘上的存储格式就是.ibd文件,还有frm MYD MYI格式的,代表不同的存储引擎。如果当前的数据表出现问题,可以从这个数据文件执行恢复数据。需要特别注意的是存储引擎的粒度...

2019-05-31 15:10:11 140

原创 为什么需要幂等

何谓幂等性官方的说法叫做:一次或者N次请求同一个资源地址的返回结果应该是一致的 通俗的说幂等就是说要么对资源的就没有副作用比如查询操作,每次返回的结果一致(忽略数据的局部字段的不一致),要么是对请求的资源有副作用比如更新操作,但是需要做到只能更新一次,在一次更新需要提示已经更新成功,直接返回。由于网络的超时,或者远程服务宕机不包含在幂等性概念讨论考虑之内。幂等性在需要一致性场景强的业务中是默认...

2019-05-10 11:54:07 2213

原创 统一异常处理

异常处理业务开发的场景中 总避免不了这个场景,如何实现是,首先想到的就是AOP。ok AOP的确可以做到,但是是否有点大材小用呢,Spring3.2版本以后为我们提供了一个@ControllerAdvice注解这个注解配合@ExceptionHandler就可以实现所有@RequestMapping的异常捕获。进行统一处理。单独针对异常进行的处理,更急的职责单一。相较于手写aop方式,节省代...

2019-05-10 11:52:23 204

原创 Java SE 8之Optional分析

Optional先准备一个基类,用于模拟业务开发过程中的entity @Data @ToString @AllArgsConstructor @NoArgsConstructor class Student{ private String name; private int age; private String...

2019-05-10 11:51:40 130

原创 Java SE 8之Function分析

@FunctionalInterface注解提供该注解是为了让被标识的接口可以应用在lambda表达式上。被该注解修饰的接口只允许有一个抽象方法,也叫做Single Abstract Method Interface但是可内部有多个default方法。也可以重写Object的方法,还可以有静态方法。Java SE 8提供了如下Consumer,Predicate,Function,Suppli...

2019-05-10 11:49:50 366

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除