千寻

天道酬勤,专注但要有大局观(先大后小,思路为先,实验为辅)

Spring Cloud Feign和Ribbon源码系列汇总篇

Feign 支持两种不同的注解(feign的注解和springmvc的注解)来描述接口,简化了 Java HTTP Client 的调用过程,隐藏了实现细节。而Ribbon实现正向代理的软负载均衡,Spring cloud Feign默认集成Ribbon。 1.基于spring cloud-fe...

2019-05-05 15:01:25

阅读数 51

评论数 0

Spring Cloud Hystrix 源码系列汇总篇

随着服务化的大规模演化,每个应用系统对这些依赖的稳定性与否对系统的影响非常大。而依赖有很多不可控问题:网络连接缓慢,资源繁忙,服务暂时不可用等。特别是高并发的依赖失败时如果没有隔离措施,当前应用服务就有被拖垮的风险。Netflix 公司开发并成功使用Hystrix,它是社区中非常活跃的限流降级神器...

2019-05-05 14:28:43

阅读数 48

评论数 0

响应式编程 RxJava系列

近两年来国内的技术圈子中越来越多的开始提及ReactiveX,一方面反映出现在的高级开发者的追求越来越高逼格,另一方面也反映从从结构化编程到面向对象编程到函数式编程的发展历程,越来越多的应用和面试中都会有ReactiveX,响应式编程中RxJava可谓如鱼得水。 最近也一直在使用rxjava,刚...

2019-04-26 20:46:42

阅读数 49

评论数 0

再谈spring boot 优雅停机

再谈为了提醒明知故犯(在一坑里迭倒两次不是不多见),由于业务系统中大量使用了spring Boot embedded tomcat的模式运行,在一些运维脚本中经常看到Linux 中 kill 指令,然而它的使用也有些讲究,要思考如何能做到优雅停机。 目录 何为优雅关机 kill指令 Run...

2019-05-24 10:24:33

阅读数 12

评论数 0

FastThreadLocal要了解下

Netty 作为高性能框架,对 JDK 中的很多类都进行了封装了和优化,Netty 使用了 FastThreadLocalRunnable 对所有 DefaultThreadFactory 创建出来的 Runnable 都进行了包装。netty的FastThreadLocal和FastThread...

2019-05-17 23:21:19

阅读数 15

评论数 0

elasticsearch实践篇:跨表join查询

随着业务发展跨表join查询需求越来越多,系统的慢查询不断报出,引入ElasticSearch 来实现聚合查询势在必行。ES是一个基于 Lucene 的搜索引擎,通过将业务主表及辅表的索引字段及需要like字段同步到ES里,每张表的索引字段最终汇总成一个联合索引,来实现多个表的跨表搜索。 性能...

2019-05-16 12:35:38

阅读数 12

评论数 0

Docker之网络篇

在Docker中需要在容器间相互访问是非常困难的,默认Docker不会开放任何端口,因此需要将容器与宿主机进行端口映射,使容器可外部访问。而容器间互相访问,除了可以基于端口映射进行访问外,还可以通过容器链接(Link)的方式,也可以通过Docker 网络(Networking)实现。 基于端口映...

2019-05-15 23:25:09

阅读数 9

评论数 0

elasticsearch实践篇: 智能运输产品

Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎。非常幸运的是,之前规划了很久的智能运输产品搜索与推荐在3个月前如期上线了,下面将分享下Elasticsearch 在业务系统中应用。 背景 一条运输...

2019-05-15 22:19:18

阅读数 14

评论数 0

RxJava在业务系统中的实践

在java的世界里由于大多数接口和API都是阻塞式的交互,进而影响到很多童靴的编程思想和编程习惯。因而,有一些专家讲java的编程模型是阻塞式模型(与Node.js区别大),不是没有道理的。从高性能的视角看,任何阻塞点都可能导致性能的退步。而响应式编程其天然就是非阻塞的,当数据准备完成后自动触发下...

2019-05-15 22:17:11

阅读数 10

评论数 0

经度算法:花式链表中查找

在面试中有关链表的提问,真可谓经久不衰。说实话笔者对算法也是研究不太深,而大多数人更要注重后天的积累(套路见多了就会了),天才毕竟是少数人。上次谈过逆转单向链表,今天将分享单链表中查找:是否存在环以及环入口、寻找中位数、倒数第K个节点。 快慢指针 快慢指针中的快慢指的是移动的步长,即每次向前...

2019-05-15 16:18:12

阅读数 12

评论数 0

常用shell awk统计

awk是一个linux中强大的文本分析工具,很多时候我们需要对应用日志进行分析,它就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk的语法 awk 后面没有BEGIN和END,跟着的是pattern,也就是每一行都会经过这个命令 $0 当前记录(这个变...

2019-05-14 20:57:34

阅读数 7

评论数 0

gRPC快速入门

gRPC 是 Google 开源的基于 Protobuf 和 Http2.0 协议的通信框架,底层由netty提供。之前也简单的介绍过HTTP/2 重要特性,gRPC提供四种模式:unary,client streaming,server streaming 以及 bidirectional st...

2019-05-14 20:18:23

阅读数 40

评论数 0

Http2.0 协议

目前国内大部分互联网都还在使用 HTTP1.1 协议对外提供 API 服务,不过很多大型互联网公司都已经有大量的业务线在使用了 HTTP2.0 协议,因为 Http2.0 支持的 Streaming 和 Duplexing 可以将请求和响应消息进行分片交叉传送,可以大幅提升传输效率。据 W3Tec...

2019-05-09 23:10:17

阅读数 43

评论数 0

Double-checked locking should not be used

双重检查锁定是在输入同步块之前和之后检查惰性初始化对象的状态以确定对象是否被初始化。如果没有对float或int以外的任何可变实例进行额外的同步,它就不能以平台独立的方式可靠地工作。使用双重检查锁定对任何其他类型的基元或可变对象进行延迟初始化会使第二个线程使用未初始化或部分初始化的成员,而第一个线...

2019-05-09 21:36:39

阅读数 53

评论数 0

基本功:ConcurrentArrayList

很多时候,如何保障你的代码高并发高性能,这的确是个很耐人寻味的话题。高性能意味着你要对采用的每一个容器、集合(数据结构)要非常讲究,而它往往是很多人不太注意的地方,这也行就是你不能专家级的一方面原因!so,基本功很重要,尽可能的接触底层实现。在java圈中,ArrayList 是非线程安全的,难道...

2019-05-08 22:10:41

阅读数 6

评论数 0

Spring Cloud Hystrix:番外篇Sentinel

Hystrix是社区中非常活跃的限流降级神器,之前也花了几周的时间去研究分享源码,而Sentinel 是阿里中间件团队2018年开源的另一款面向分布式服务架构的轻量级高可用流量控制组件,主要以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 Sentinel...

2019-05-05 14:38:50

阅读数 7

评论数 0

基本功:关于长连接那点事

玩rpc、Netty、连接池的童鞋一定知道长连接,TCP 本身并没有长短连接的区别,长短与否完全取决于我们怎么用它。通常要求高性能需要完成端到端频繁通信以及连接个数受限的系统交互一般都采用长连接。另外长连接还常常被用来做数据的推送,可以很方便的实现 push 模型。 短连接 每次通信时,创建 ...

2019-05-02 22:09:01

阅读数 21

评论数 0

你不知道的HTTP和TCP的KeepAlive

HTTP的KeepAlive和TCP的KeepAlive其实并不是一个概念,这一点很多人理解都是有误的。HTTP 协议的 KeepAlive 意图在于连接复用,同一个连接上串行方式传递请求-响应数据。TCP 的 KeepAlive 机制意图在于保活、心跳,检测连接错误。 启用 TCP KeepA...

2019-05-02 21:19:36

阅读数 34

评论数 0

java冷知识:Java类型检测与提前类加载

提起Java提供了参数的动态检验,相信很多人对它的理解:仅仅是在执行期检测参数是否合法。常常我们觉得 classloader的加载顺序就应该在执行期。 Java编译器会开启这种静态检测机制,会使用一组类型检测规则来检测Java字节码,检测这些字节码是否符合规则,如果不符合那么将会被拒绝。但是部分...

2019-05-02 20:13:43

阅读数 10

评论数 0

响应式编程之网络新约:RSocket

响应式reactive是Java中高效应用的下一个前沿,但它目前主要有两个障碍:数据访问和网络。RSocket是一种新的第7层语言无关的应用网络协议(解决后者),它由Facebook,Netifi和Pivotal等工程师开发,提供Java,JavaScript,C ++和Kotlin等实现,RSo...

2019-05-01 20:40:53

阅读数 48

评论数 0

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