- 浏览: 341654 次
- 性别:
- 来自: 北京
-
最新评论
-
u013430438:
图文并茂
EGit(Git Eclipse Plugin)使用 -
1927105:
赞挺实用的
JOL:查看Java 对象布局、大小工具 -
ShihLei:
wangming520liwei 写道上面的HA 架构图是不是 ...
Hadoop-2.3.0-cdh5.0.1完全分布式环境搭建(NameNode,ResourceManager HA) -
wangming520liwei:
上面的HA 架构图是不是来自 某个官网? 想问下还记得地址么 ...
Hadoop-2.3.0-cdh5.0.1完全分布式环境搭建(NameNode,ResourceManager HA) -
ShihLei:
jxjxtang 写道public TimeV1MicroSe ...
SpringCloud(二):声明式RestClient—Feign
文章列表
编写不易,转载请注明 (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)反向代理版:
在中间增加反向代理,服务消费者依赖反向代理服务器,屏蔽服务提供者后端物理架构 ...