- 博客(12)
- 收藏
- 关注
原创 策略干掉if/else真香?
背景业务开发中避免不了使用if/else,但是业务越来越大的时候,需要的约束条件呢又越来越多,就会导致这个代码出现很多的分支判断,最后的情况可以能就是下图这个样.这显然那个不是我们想要的最终结果,但是开发着开发着就就变成这样了,于是就着手去修改试着干掉if/else1、选用策略模式为基础,提供模版方法。2、高度定制,借鉴策略的思想 public void Buy(double originPriceM) { if (totalAmount >=
2020-06-10 23:01:21
279
原创 Feign分析
Spring CloudFeign 概述Feign 是一个声明web服务客户端,这便得编写web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器,支持拦截器,支持日志,支持重试,相较于HTTPClient多了一种概念,面向接口。所有的请求服务都存放在对应的FeignClient接口中...
2019-06-11 15:52:06
1533
原创 Hystrix分析
简介Hystrix是NetFlix公司推出的用于微服务软件架构设计的服务保护模块,该模块是目的是为了去解决整体服务其中某一个服务出现宕机而依赖该服务的其余节点进入故障不可用状态出现调用雪崩这类问题。对微服务架构架构的延迟和故障去提供一个很好的容错性,这个模块提供了诸如服务降级,熔断,线程隔离,请求合并以及监控。源码分析Hystrix的Work flow说到熔断呢,这就要说到熔断器模式了,...
2019-06-11 15:47:19
548
原创 Zuul&&Kong
网关(API Gateway )原由之前学习分布式网站设计的时候,我们知道挡当应用体量提升的同时,我们的业务应用会逐步走向服务化,这样的架构适合大多数公司的演变,微服务的架构下,势必增加了op的工作量,每次新增一种服务,op就需要配置一套slb,还有原来的哪一套连接基础组件数据库缓存的机器ip白名单等,这些重复工作他需要反复维护,同事还需要维护一套slb机器和各个服务的对应关系,用来工作交接之类...
2019-06-11 15:46:13
5195
原创 Java那点事儿
Java那点事儿开局一问java代码是怎么运行的一个main方法执行就输出了结果,究其原因,我们都知道是java虚拟机提供了运行环境JRE,我们在学习java第一节的时候就知道需要配置jdk的环境变量,然后javac编译,java执行。等等,那么到底是怎么的方式就把我们写的HelloWorld从哪个命令行的黑框中打印出来呢。那我呢就需要从Class文件的加载开始分析分析了。字节码如何加载我...
2019-06-10 16:16:34
307
原创 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
3487
原创 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
183
原创 你了解MySQL?
开局一张图,内容全靠编实例&&数据库傻傻分不清数据库就是一堆数据文件的集合,相当于一个大文件夹其中包含了各种格式的数据文件,不同的数据格式代表使用了不同的存储引擎,如我们经常使用的innoDB在磁盘上的存储格式就是.ibd文件,还有frm MYD MYI格式的,代表不同的存储引擎。如果当前的数据表出现问题,可以从这个数据文件执行恢复数据。需要特别注意的是存储引擎的粒度...
2019-05-31 15:10:11
166
原创 为什么需要幂等
何谓幂等性官方的说法叫做:一次或者N次请求同一个资源地址的返回结果应该是一致的 通俗的说幂等就是说要么对资源的就没有副作用比如查询操作,每次返回的结果一致(忽略数据的局部字段的不一致),要么是对请求的资源有副作用比如更新操作,但是需要做到只能更新一次,在一次更新需要提示已经更新成功,直接返回。由于网络的超时,或者远程服务宕机不包含在幂等性概念讨论考虑之内。幂等性在需要一致性场景强的业务中是默认...
2019-05-10 11:54:07
2248
原创 统一异常处理
异常处理业务开发的场景中 总避免不了这个场景,如何实现是,首先想到的就是AOP。ok AOP的确可以做到,但是是否有点大材小用呢,Spring3.2版本以后为我们提供了一个@ControllerAdvice注解这个注解配合@ExceptionHandler就可以实现所有@RequestMapping的异常捕获。进行统一处理。单独针对异常进行的处理,更急的职责单一。相较于手写aop方式,节省代...
2019-05-10 11:52:23
232
原创 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
178
原创 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
402
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人