`
文章列表
 编写不易,转载请注明 (http://shihlei.iteye.com/blog/2423672)     一 Java1.8 Dockerfile 构建(可以省略)   (1)目录结构 $ ls Dockerfile jdk-8u161-linux-x64.tar.gz   (2)Dockerfile ############################################################ # Dockerfile to build Java Installed Containers # B ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2423653) 一 概述 Java应用,线上查看gc,堆分配,堆使用是很常见的需求。JDK自带的命令可以查看很多信息,掌握后对我们定位问题能起到很大的帮助。 本文总结相关命令的 ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2421576)!   一 概述 Aviator 是一个Java 语言实现的表达式引擎,可以接受字符串类型的表达式,带入参数求值。   需求场景: 用户日志字段:[ip,phone,userid,action]   希望灵活组合这些字段,生成规则,比如 “1小时,userid,在ip上,触发action 100次报警”,并能灵活修改或新增。   这种需求基于Avaiator实现非常方便,实现规则引擎后,规则修改组合就不需要研发干预了。   本文基于Aviator自定义函数实现一个规 ...
编写不易,转载请注明(http://shihlei.iteye.com/blog/2418672)! 一 概述         在服务器端获取客户端IP是一个很普遍的操作,客户端IP的应用场景可能包括:面向IP的地域定位服务,反爬虫服务等。很好奇,用户所在的网络环境:有线,wifi,2G,3G,4G,漫游等,Server端获取的IP情况,按个人理解进行整理,如有错误,望多指点。   本文主要介绍: 1)IP基础知识 2)运营商Internet接入方式。   Java 在服务器端获取Client IP的方式可参见《Server获取客户端IP 工具类:IPUtil》。   二 ...
编写不易,转载请注明( http://shihlei.iteye.com/blog/2418651)!   一 概述         最近做Elasticsearch优化,需要调整节点参数,重启,查看是否生效。线下测试集群一般使用head插件,方便。但head插件需要其所在节点能正常提供服务,且客户端浏览器网络可达。这种约束不适合线上运维,最直接方式还是使用Elasticsearch提供的Rest API,通过curl 在某个节点上直接查看。           本文从《Elasticsearch官方文档》,《ElasticSearch权威指南》中总结常用命令,用于维护使用,同时摘 ...
 (编写不易,转载请注明:http://shihlei.iteye.com/blog/2411612) 一 概述 分布式系统(多台服务器,通过网络相互协调,组成一个整体对外提供服务的系统)   (1)CAP原则:任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。   (2)CAP解释: Consistency(一致性):数据在所有服务器上副本是否一致。  Availability(可用性): 数据是否在一定时间内更新成功。 Partition tolerance(分区容忍性):  分区:数据只存在于部分服务器。 分区容器性:数据保 ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2411470)! 一 概述 Jest 是一个Java 版的ElasticSearch Http Rest 客户端,基于HttpClient 封装实现。   个人感觉好处: 1 连接池可控 2 简单封装了Bean 到Document 的Mapping过程   github:https://github.com/searchbox-io/Jest/tree/master/jest   二 环境 (1)版本信息 elasticsearch:elasticsearch-6.2.2. ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2411453)!    一 概述 (1)基础概念 镜像:相当于虚拟机的“只读模板”,不可修改。可以启动容器,修改提交成新的镜像。 容器:指定“镜像的实例”,由指定“本地镜像”启动,相当于独立的虚拟机。一个镜像可以启动多个容器,彼此相互隔离。 仓库:集中存放镜像文件的地方,用于镜像共享,复用。   (2)Docker 分层技术: 分层角度镜像:底层由多个“只读层”构成,层遵循创建时执行命令的顺序(类链表结构),镜像创建完成,提供各层组合后的统一视角(上层会覆盖下层内容)。 分层角度容器 ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2408238)!   一 概述 ElasticSearch 批量条件查询方法Demo。 使用《ElasticSearch2.4.0基于Java API或Java Rest API进行CRUD 》的索引库结构开发Demo.   客户端版本:版本较低,见谅 <dependency> <groupId>org.elasticsearch</groupId> <artifactId>e ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2407693)!   一 概述 最近需求,打算再内存缓存数据,数据量130000万并且还会增加,了解这些数据占用空间的大小是很常见的监控需要。 常规方式,人工可以按照Java基础数据类型大小及内容大小估算出缓存对象的大概堆占用,但是麻烦还不准。 OpenJDK,提供了JOL包,可以帮我们在运行时计算某个对象的大小,是非常好的工具   官网:http://openjdk.java.net/projects/code-tools/jol/ 定位:分析对象在JVM的大小和分布 依赖:   ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2407689)! 一 概述 SpringBoot 个人感觉特点: 1)众多库的集合(各种Starter),方便快速构建应用系统。 2)自动配置spring(通过AutoConfiguration机制),简化配置,也方便扩展新的Starter。 3)内嵌web容器,无需WAR部署。   本文自定义一个helloworld-starter 揭示starter的定义过程,及Spring AutoConfiguration 自动配置方法。   注: SpringBoot AutoConfig ...
编写不易,转载请注明(http://shihlei.iteye.com/blog/2406149)!   一 Java Annotation (1)概述:   Annotation:主要用于对其他元素进行描述。包括Annotation,Class , Method, Field 等。   (2)Demo: package x.demo.spring.core.anno; import java ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2405771)!   一 @Configuration 概述  @Bean: 描述@Bean注解的方法生成的Bean 被Spring容器管理, 其中value属性可以指定Bean在Spring容器中的名字。 @Configuration:描述@Configuration注解的类,Spring容器扫描@Bean注解的方法,将生成的Bean纳入容器管理(可以简化xml配置) 。   存在于:   <dependency> <groupId>o ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2405675)!   一 @ComponentScan 概述 扫描指定表下的Component(@Componment,@Configuration,@Service 等等)   存在于:org.springframework.context.annotation 包中 <dependency> <groupId>org.springframework</groupId> <artifactId&g ...
  编写不易,转载请注明(http://shihlei.iteye.com/blog/2400190)!    一 服务注册与发现 (1)概述 服务调用基本两端: 服务提供者(Service Provider)、服务消费者(Service Client) 调用方式: (a)简单版: 直接调用 优点: 简单,快速完成 缺点: 服务消费者感知服务端IP、Port,任何这二者修改,都可能引起客户端都需要修改,极端可能需要重新发布上线。 不利于服务HA。       (b)反向代理版: 在中间增加反向代理,服务消费者依赖反向代理服务器,屏蔽服务提供者后端物理架构 ...
Global site tag (gtag.js) - Google Analytics