- 博客(64)
- 收藏
- 关注
原创 SpringCloud(四): 断路器—Hystrix
(编写不易,转载请注明:http://shihlei.iteye.com/blog/2431224) 一 概述有段时间没有更新SpringCloud的文章了,目前 SpringBoot 版本 2.0.5.RELEASE,SpringCloud 的版本:Finchley SR1 ,本文继续之前的规划,介绍下 SpringCloud集成 Hystrix 断路器功能。 Hystr...
2018-09-23 16:49:03 1199 1
原创 SpringCloud(四)番外篇(二):Hystrix 1.5.12 源码分析
编写不易,转载请注明(http://shihlei.iteye.com/blog/2429846)!一 概述书接前篇,《Hystrix:断路器》 对断路器和Hystrix做了简单的介绍,旨在帮助读者做个简单入门。本文简单分下Hystrix的源码实现,帮助读者更好的了解Hystrix。 分析版本: <dependency> <gro...
2018-09-09 12:41:01 767
原创 SpringCloud(四)番外篇(一):Hystrix 断路器
编写不易,转载请注明(http://shihlei.iteye.com/blog/2428557)! 一 概述 近些年,微服务架构模式在企业中的得到应用推广,基于SpringBoot,SpringCloud快速实现微服务的技术也得到广泛应用。 SpringCloud是什么?简单的说是一套组件框架,提供服务化需要的一些基础能力,如分布式/版本化配置、服务注册和发现、路由、负载...
2018-08-12 18:04:02 460
原创 RxJava2.x 操作Demo
编写不易,转载请注明(http://shihlei.iteye.com/blog/2428152)! 一 概述阅读Hystrix的源码过程,看到很多RxJava的使用,本文对其中一些重要的方法进行总结,为之后Hystrix的讲解做铺垫。 如果对应响应式编程,RxJava不是很了解,可以阅读《响应式编程 RxJava》做个简单的入门。 版本: ...
2018-08-12 09:50:02 399
原创 响应式编程 RxJava
编写不易,转载请注明(http://shihlei.iteye.com/blog/2426891)! 一 概述 最近使用Hystrix,看文档Hystrix底层基于Rxjava实现,很好奇,就一起研究了下,做个总结 二 响应式编程(Reactive Programming)定义:一种基于异步数据流概念的编程模式。核心:事件,可以被触发,传播,订阅特点:...
2018-07-15 17:13:26 402
原创 观察者模式及Guava EventBus
编写不易,转载请注明(http://shihlei.iteye.com/blog/2426888)! 一 概述最近看RxJava,其骨架就是使用的观察者模式,所以对观察者模式做个总结,顺便记录一下Guava EventBus的实现(事件监听,其实也相当于观察者模式) 二 观察者模式1)概述 观察者模式:行为模式,提供一种一对多关系绑定对象的方法,一个对象状态需...
2018-07-15 14:51:12 382
原创 numfmt 数字格式化命令
编写不易,转载请注明(http://shihlei.iteye.com/blog/2426434) 一 概述 像free 这样的命令,默认打出字节数,不好阅读,幸好提供了 free -m 可以转换成兆字节。针对不能提供这种转换的命令或者场景,numfmt可以帮我们完成转换,目前看主要用于字节转换。 numfmt 用于把数字转换成可阅读的形式(...
2018-07-08 15:58:20 1796
原创 Elasticsearch 2.4.2 低延迟使用记录
编写不易,转载请注明( http://shihlei.iteye.com/blog/2423848 )! 一 概述(一直没有升级ES版本,这里只记录使用这一年多的一些优化结论) Elasticsearch2.4.2 做索引库,提供低延迟的查询需求。业务规模:docuement 规模 90万,大概200M,不算大。查询特点:都是terms查询,没有聚合查询...
2018-05-30 18:49:10 417
原创 MySQL5.7.22 编译安装Dockfile
编写不易,转载请注明 (http://shihlei.iteye.com/blog/2423672) 一 Java1.8 Dockerfile 构建(可以省略) (1)目录结构$ lsDockerfile jdk-8u161-linux-x64.tar.gz (2)Dockerfile#################...
2018-05-28 18:15:53 353
JDK 工具命令使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2423653)一 概述Java应用,线上查看gc,堆分配,堆使用是很常见的需求。JDK自带的命令可以查看很多信息,掌握后对我们定位问题能起到很大的帮助。本文总结相关命令的使用。 二 jstack:查看java线程信息(1)用法:常用方式:jstack [-l] <pid&...
2018-05-27 11:38:48 335
基于Aviator的规则引擎Demo
编写不易,转载请注明(http://shihlei.iteye.com/blog/2421576)! 一 概述Aviator 是一个Java 语言实现的表达式引擎,可以接受字符串类型的表达式,带入参数求值。 需求场景:用户日志字段:[ip,phone,userid,action] 希望灵活组合这些字段,生成规则,比如 “1小时,userid,在ip上,触发...
2018-04-30 19:20:46 4614
原创 MobileIP、运营商接Internet入方式及服务端获取IP的情况
编写不易,转载请注明(http://shihlei.iteye.com/blog/2418672)!一 概述 在服务器端获取客户端IP是一个很普遍的操作,客户端IP的应用场景可能包括:面向IP的地域定位服务,反爬虫服务等。很好奇,用户所在的网络环境:有线,wifi,2G,3G,4G,漫游等,Server端获取的IP情况,按个人理解进行整理,如有错误,望多指点。 本...
2018-04-15 18:50:22 827
原创 Elasticsearch集群信息查看及重启维护流程
编写不易,转载请注明( http://shihlei.iteye.com/blog/2418651)! 一 概述 最近做Elasticsearch优化,需要调整节点参数,重启,查看是否生效。线下测试集群一般使用head插件,方便。但head插件需要其所在节点能正常提供服务,且客户端浏览器网络可达。这种约束不适合线上运维,最直接方式还是使用Elasticsearch提供...
2018-04-15 13:58:05 1584
原创 分布式系统的CAP原则
(编写不易,转载请注明:http://shihlei.iteye.com/blog/2411612)一 概述分布式系统(多台服务器,通过网络相互协调,组成一个整体对外提供服务的系统) (1)CAP原则:任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。 (2)CAP解释:Consistency(一致性):数据在所有服务器上副...
2018-02-26 17:33:11 467
原创 Jest:ElasticSearch Java Http Rest 客户端使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2411470)!一 概述Jest 是一个Java 版的ElasticSearch Http Rest 客户端,基于HttpClient 封装实现。 个人感觉好处:1 连接池可控2 简单封装了Bean 到Document 的Mapping过程 github:https:...
2018-02-24 12:12:17 1006
原创 Dockerfile 使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2411453)! 一 概述(1)基础概念镜像:相当于虚拟机的“只读模板”,不可修改。可以启动容器,修改提交成新的镜像。容器:指定“镜像的实例”,由指定“本地镜像”启动,相当于独立的虚拟机。一个镜像可以启动多个容器,彼此相互隔离。仓库:集中存放镜像文件的地方,用于镜像共享,复用。...
2018-02-23 22:20:47 147
原创 ElasticSearch 批量条件查询
编写不易,转载请注明(http://shihlei.iteye.com/blog/2408238)! 一 概述ElasticSearch 批量条件查询方法Demo。使用《ElasticSearch2.4.0基于Java API或Java Rest API进行CRUD 》的索引库结构开发Demo. 客户端版本:版本较低,见谅 <dependen...
2018-01-20 15:14:01 7642 1
原创 JOL:查看Java 对象布局、大小工具
编写不易,转载请注明(http://shihlei.iteye.com/blog/2407693)! 一 概述最近需求,打算再内存缓存数据,数据量130000万并且还会增加,了解这些数据占用空间的大小是很常见的监控需要。常规方式,人工可以按照Java基础数据类型大小及内容大小估算出缓存对象的大概堆占用,但是麻烦还不准。OpenJDK,提供了JOL包,可以帮我们在运行时...
2018-01-14 11:52:06 23023
原创 SpringBoot:自定义Starter
编写不易,转载请注明(http://shihlei.iteye.com/blog/2407689)!一 概述SpringBoot 个人感觉特点:1)众多库的集合(各种Starter),方便快速构建应用系统。2)自动配置spring(通过AutoConfiguration机制),简化配置,也方便扩展新的Starter。3)内嵌web容器,无需WAR部署。 本文自...
2018-01-14 10:42:05 648
原创 Spring:AnnotationUtils 使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2406149)! 一 Java Annotation(1)概述: Annotation:主要用于对其他元素进行描述。包括Annotation,Class , Method, Field 等。 (2)Demo:package x.demo.spring.core.anno;i...
2017-12-29 14:53:46 11307 3
原创 Spring:@Configuration 使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2405771)! 一 @Configuration 概述 @Bean: 描述@Bean注解的方法生成的Bean 被Spring容器管理, 其中value属性可以指定Bean在Spring容器中的名字。@Configuration:描述@Configuration注解的类,Spring容器扫...
2017-12-26 18:04:51 646
原创 Spring:@ComponentScan 使用
编写不易,转载请注明(http://shihlei.iteye.com/blog/2405675)! 一 @ComponentScan 概述扫描指定表下的Component(@Componment,@Configuration,@Service 等等) 存在于:org.springframework.context.annotation 包中<depende...
2017-12-25 17:21:29 306
原创 SpringCloud(三): 服务注册与发现,服务注册中心—Eureka
编写不易,转载请注明(http://shihlei.iteye.com/blog/2400190)! 一 服务注册与发现(1)概述服务调用基本两端:服务提供者(Service Provider)、服务消费者(Service Client)调用方式:(a)简单版:直接调用优点:简单,快速完成缺点:服务消费者感知服务端IP、Port,任何这二...
2017-11-20 18:14:26 967
SpringCloud(二):声明式RestClient—Feign
(编写不易,转载请注明:http://shihlei.iteye.com/blog/2399457) 一 概述 feign: 声明式rest 客户端,spring cloud 扩展了feign,提供了springmvc的标签支持,替代RestTemplate简化操作。 git:https://github.com/OpenFeign/feig...
2017-11-12 17:04:42 349
原创 SpringCloud(一): SpringBoot 创建简单的微服务
(编写不易,转载请注明:http://shihlei.iteye.com/blog/2398709) 一 概述 : 基于sring boot 创建 简单的微服务。 spring boot 版本:1.5.7.RELEASE。 二 项目组成 父项目:x.demo.springcloud mod...
2017-11-06 19:14:38 672
原创 Linux 内存 buffers, cached
一 buffers, cachedbuffers:用来缓存metadata及pages,可以理解为系统缓存cached:是用来给文件做缓存,可以理解为数据块缓存 二 手动触发 cached 回收方法 a)清理pagecache(页面缓存)# echo 1 > /proc/sys/vm/drop_caches 或者 # sysctl -w vm.dr...
2017-11-01 13:59:43 212
原创 Server获取客户端IP 工具类:IPUtil
一 概述 获取客户端Ip工具类,支持client 和 server之间有代理的情况 二 代码 import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang3.StringUtils;/** * 获取client ip */public class...
2017-10-22 14:42:57 244
原创 Git 常用命令使用
概述: 工作区:workspace ,即 .git 目录的父目录,文件所在目录 暂存库:index ,.git目录中的一块区域,用于记录所有工作区的变换,并暂存,(即:git add 提交修改到git,未 commit 到分支) 当前分支:repository,.git目录中的一块区域,本地仓库,存放版本 一 配置git confi...
2017-07-29 17:01:39 119
原创 机器学习HelloWrold:从零开始到模型训练预测房价
编写不易,转载请注明( http://shihlei.iteye.com/blog/2386498)! 一 概述 基于python 从零开始,完成环境搭建,训练模型,预测房价。 环境: 1)运行环境 Miniconda3:包管理器 python :3.6 ...
2017-07-23 16:43:37 292
基于Mockito 的Spring Controller 单元测试
编写不易,转载请注明( http://shihlei.iteye.com/blog/2383971)! 一 概述: 实现spring rest controller 单元测试,依赖service mock,用于重点测试controller的行为 二 maven 依赖<project xmlns="http://maven.apache.org/POM/4.0...
2017-07-11 09:31:33 1698
原创 Junit,Mockito,PowerMockito 进行单元测试
编写不易,转载请注明( http://shihlei.iteye.com/blog/2383925)! 概述: 介绍基于Junit ,Mockito,PowerMockito 常用的测试方法,包括异常测试,私有方法测试,没有返回值的方法测试,基于mock或spy的测试; 其中包含常规方法mock,私有方法mock。 一 测试介绍1)测试原则: ...
2017-07-10 18:52:23 835
Java 静态块抛异常之后
一 背景一直以为Java静态块抛异常,没人捕获,虚拟机会推出,要不是最近debug到异常的执行流程,观念还正不了,自己看吧。 二 代码(1)静态块抛异常类/** * 静态块抛异常类 */public class App { static { System.out.println("static start !============...
2017-02-22 09:37:06 1547
基于BitSet的广告索引检索引擎实现
编写不易,转载请注明 (http://shihlei.iteye.com/blog/2358063) 一 概述广告系统中,广告活动创建时,运营人员通常会根据广告的受众情况,设置广告的基本定向,如香奈儿推广 需要投放上海的女士用户。 因此,根据定象条件对广告活动进行索引和检索是投放引擎的必备功能。 通常实现可以使用ElasticSearch这样的索引引擎。本文...
2017-02-20 16:15:30 478
原创 Elastalert 报警框架安装使用
Elastalert是Yelp公司用python2.6写的一个报警框架,github地址为 代码:https://github.com/Yelp/elastaler文档:http://elastalert.readthedocs.io/en/latest/参考:http://blog.csdn.net/gamer_gyt/article/details/52917116...
2016-12-23 16:11:38 1153
原创 Docker 使用初步
概述:(1)架构 docker server:服务进程,管理所有容器,接受客户端操作。 docker client:远程控制器,远程控制服务器行为 通常二者在同一个机器上 (2)名词 镜像:容器运行的只读模板,由层构成,经过提交相应的层更新生成不同的容器 ...
2016-11-30 19:18:55 167
原创 Elasticsearch2.4 Template 批量操作,条件更新,删除
编写不易,转载请注明( http://shihlei.iteye.com/blog/2339398)! 一 前言 ES 做简单的条件查询,条件删除,在2.4版没有提供,script只提供的update的方案,自己简单封装了下。做面向对象的使用。 二 依赖 <dependency> <groupId...
2016-11-20 18:44:30 8497
原创 ElasticSearch2.4.0基于Java API或Java Rest API进行CRUD
编写不易,转载请注明(http://shihlei.iteye.com/blog/2328656)! 规划:Indics:索引库,相当于RDBMS的 数据库,整体控制分片(shard)和副本(Replica),一旦创建,分片不能改变。Document Type:索引类型Document:索引记录,由唯一ID区分,ID决定Shard位置Filed:一条索引记录中的...
2016-10-05 18:53:47 281
ElasticSearch2.4.0单机版及集群安装
编写不易,转载请注明( http://shihlei.iteye.com/blog/2327971)!概述(一)简介 基于lucene 实现的近实时搜索服务,Restful 接口操作 (二)名词解释Indics:索引库,相当于RDBMS的 数据库,整体控制分片(shard)和副本(Replica),一旦创建,分片不能改变。 D...
2016-09-30 09:38:51 348
原创 MySQL开启慢查询
一 开启和查看mysql 慢查询日志(1)命令方式 set global log_queries_not_using_indexes=on ;set global slow_query_log_file='/var/log/mysql/mysql-slow'.log;set global long_query_time=0.1;set global slo...
2016-07-17 17:42:21 309
原创 Flume自定义Sink—实现按天或小时分割文件并压缩保存
编写不易,转载请注明:http://shihlei.iteye.com/blog/2306151 项目需要: Flume收集日志,期望落地文件系统,按小时分割,并压缩保存。 Flume自带的File Roll Sink 只能按时间分割文件,不能定制存放目录,压缩文件等。所以自定义了Sink结合Log4j的RollingFileAppender的特性,完...
2016-06-20 16:56:04 2560 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人