自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

每日运维

一切从实践开始

  • 博客(42)
  • 收藏
  • 关注

转载 磁盘及网络IO工作方式解析

PIO与DMA有必要简单地说说慢速I/O设备和内存之间的数据传输方式。PIO我们拿磁盘来说,很早以前,磁盘和内存之间的数据传输是需要CPU控制的,也就是说如果我们读取磁盘文件到内存中,数据要经过CPU存储转发,这种方式称为PIO。显然这种方式非常不合理,需要占用大量的CPU时间来读取文件,造成文件访问时系统几乎停止响应。DMA后来,DMA(直接内存访问,Direct Mem

2017-11-07 17:49:04 679

原创 RandomAccessFile文件随机读写

RandomAccessFile是用来访问那些保存数据记录的文件的model各个参数详解 * r 代表以只读方式打开指定文件 * rw 以读写方式打开指定文件  * rws 读写方式打开,并对内容或元数据都同步写入底层存储设备  * rwd 读写方式打开,对文件内容的更新同步更新至底层存储设备方法区:定位用的getFilePointer( )在文件里移动用的

2017-11-06 22:19:27 887

原创 ReentrantLock理解

互斥锁:线程会从sleep(加锁)——>running(解锁),过程中有上下文的切换,cpu的抢占,信号的发送等开销。自旋锁:线程一直是running(加锁——>解锁),死循环检测锁的标志位,机制不复杂。java.util.concurrent.locks包提供了锁和等待条件的接口和类互斥锁--Lock接口及其实现类ReentrantLock,所谓互斥锁, 指的是一次最多只能有

2017-11-06 22:17:42 928

原创 白话普及serverless架构

最近serverless概念炒的特别的火,更有甚说今年是serverless元年,说是“无服务器服务”,以后开发如何如何省工,如何如何牛逼等。我个人觉得其实serverless的出现很早就有了,而且是伴随着云一起的,更多的是换了一个高大上的名字,换种玩法,炒炒概念,给公有云打打广告。既然这个概念有的聊了,小弟不才愿意抛砖引玉下。什么是serverless architecture(没有服务器的

2017-11-06 22:14:53 1167

原创 Semaphore信号量类详解

Semaphore类是一个计数信号量,必须由获取它的线程释放,通常用于限制可以访问某些资源(物理或逻辑的)线程数目,信号量控制的是线程并发的数量。计数器:一个信号量有且仅有3种操作,且它们全部是原子的:初始化、增加和减少增加可以为一个进程解除阻塞;减少可以让一个进程进入阻塞。原理理解:Semaphore是用来保护一个或者多个共享资源的访问,Semaphore内部维护了一

2017-11-03 22:18:17 2460

原创 dd磁盘io测试

测试纯写入性能time dd if=/dev/zero of=test bs=4k count=10000 oflag=direct测试纯读取性能time dd if=test of=/dev/null bs=4k count=10000 iflag=direct①、time有计时作用,dd用于复制,从if读出,写到of;②、if=/dev/zero不产生IO,因此可以用来测试

2017-11-02 23:40:03 4484

原创 ReentrantLock重入锁

ReentrantLock是一个可重入的互斥锁,重入锁是一种递归无阻塞的同步机制。由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁。如果锁已经被当前线程拥有,当前线程会立即返回。重入锁的构造方法提供一个可选的公平参数:    公平情况下,操作会排一个队按顺序执行,来保证执行顺序。    不公平情况下,是无序状态允许插队,jvm会自动

2017-11-02 23:22:42 177

原创 单点登录

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分.相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,

2017-11-02 23:19:34 267

原创 Python 线程池

一切从动手开始pip install threadpool  pool = ThreadPool(poolsize)  requests = makeRequests(some_callable, list_of_args, callback)  [pool.putRequest(req) for req in requests]  pool.wait()解释:第一

2017-07-12 17:15:17 313

原创 Python协程(coroutine)

coroutine和generator的区别generator是数据的产生者。即它pull data 通过 iteration,generator的作用是可以作为data pipeline使用.coroutine是数据的消费者。它push data into pipeline 通过 send;coroutine来做filter;解释:通过send(value)方法将value作为y

2017-07-07 16:59:07 409

原创 Python生成器

在Python中,一边循环一边计算的机制,称为生成器(Generator)。特殊场景下可以节约内存开支。要创建一个generator>>> g = (x * x for x in range(10))>>> g at 0x104feab40>第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator。>>> g.next()0一般情况下

2017-07-06 18:07:45 221

转载 kafka 存储文件解析

Kafka中的Message是以topic为基本单位组织的,不同的topic之间是相互独立的。每个topic又可以分成几个不同的partition(每个topic有几个partition是在创建topic时指定的),每个partition存储一部分Message。借用官方的一张图,可以直观地看到topic和partition的关系。partition是以文件的形式存储在文件系统中,比如,创

2017-07-06 10:55:29 564

原创 Java 常用线程池

Java通过Executors提供四种线程池,分别为:import java.util.concurrent.ExecutorService;  import java.util.concurrent.Executors;newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThrea

2017-05-25 18:29:20 225

原创 Java 定时任务

Timer是一种定时器工具,用来在一个后台线程计划执行指定任务,而TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。Timer的schdule方法:schedule(TimerTask task, Date time):安排在指定的时间执行指定的任务。schedule(TimerTask task, Date firstTime, long period) :安

2017-05-25 18:05:10 1106

转载 java 类型转换

类型转换Java 语言是一种强类型的语言。强类型的语言有以下几个要求:变量或常量必须有类型:要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。运算时类型必须一致:参与运算的数据类型必须一致才能运算。但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种需要,这个语法就是数

2017-04-17 18:54:10 298

转载 java 操作csv文件

package com.mark.csv /** * 读取CSV文件 */ public void readeCsv(){ try { ArrayList csvList = new ArrayList(); //用来保存数据 Strin

2017-04-17 15:14:22 303

原创 java NIO总结

Java NIO :ChannelsBuffers:缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成 NIO Buffer 对象Selectors:允许单线程处理多个 Channel。Channel 的实现:FileChannel 从文件中读写数据。DatagramChannel 能通过 UDP 读写网络中的数据。SocketChanne

2017-04-13 09:54:47 310

原创 java 单例模式和工厂模式

单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法饿汉式单例    public class Singleton {        private static Singleton singleton = new Singleton();        priva

2017-04-13 09:53:06 2627

原创 java 集合总结

java集合的主要分为三种类型:JAVA集合位于 java.util包Set(集)List(列表)Map(映射)arrays函数,equals():比较两个array是否相等。fill():将值填入array中。sort():用来对array进行排序。binarySearch():在排好序的array中寻找元素。arraycopy():array的复制。

2017-04-07 18:05:32 199

原创 python multiprocessing模块

multiprocessing 充分利用cpu多核一般情况下cpu密集使用进程池,IO密集使用线程池。python下想要充分利用多核CPU,就用多进程。pool = multiprocessing.Pool(multiprocessing.cpu_count())__init__(self, group=None, target=None, name=None, args=(), kw

2017-04-06 17:04:31 1061

原创 python excel和csv处理操作记录

CSV是英文Comma Separate Values(逗号分隔值)的缩写,顾名思义,文档的内容是由 “,” 分隔的一列列的数据构成的。读文件:import csvcsv_reader = csv.reader(open('data.file', encoding='utf-8'))for row in csv_reader:    print(row)import c

2017-04-05 18:52:17 1243

原创 Elasticsearch 5.2 增删改查

把ES当做关系型数据库mysql,常用的增删改查+批处理语句。ES还是很牛逼的,不仅仅是存储,今天还发现了Graph Api,可以做指示图谱用。查看和创建GET /_cat/indices?v    查看全部索引PUT /customer?pretty   创建名为customer的索引==创建库databaseGET /customer/_search?pretty  查询全

2017-02-24 18:46:26 767

原创 Elasticsearch 存储方式和管理优化细节

Elasticsearch 的数据存储方式:Lucene 把每次生成的倒排索引,叫做一个段(segment).然后另外使用一个 commit 文件记录索引内所有的 segment,生成 segment 的数据来源,refresh到内存中的 buffer。从写入refresh到文件缓存buffer中默认设置为 1 秒。Elasticsearch 在把数据写入到内存 buffer 的同

2017-02-23 18:11:45 13530 1

原创 Elasticsearch压测工具esrally详解

rally 工具是 Elastic 官方开源的针对性性能压测工具。目前 Elasticsearch 的 nightly performance report 就是由 rally 产生的。对自己在做 ES 源码修改,或者ES 应用调优的人来说,通过 rally 验证自己的修改效果,是一件很需要且容易的事情。环境:python3.4+ ;pip3;JDK8;git 1.9+;gradl

2017-02-21 18:28:55 20172 2

原创 Kibana5.2监控ES5.2集群排错记录

今天调整下集群,kibana竟然无耻的报错,记录一下,避免以后掉坑;       kibana报错提示:网上有很多排错案例,删除.kibana索引即可,但是我的环境没有好使;我使用的ES和Kibana都是5.2的版本,系统是centos7.2的。cat kibana.ymlserver.host: "192.168.80.11"elasticsearch.u

2017-02-21 12:17:10 3422

原创 JAVA 线程总结

线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC),线程切换开销小。线程和进程一样分为五个阶段:创建、就绪、运行、阻塞、终止。多线程是指在同一程序中有多个顺序流在执行。在Java中创建线程有两种方法:使用Thread类和使用Runnable接口。方法一:继承Thread类覆盖run方法  (不推荐)public class ThreadDemo1 {

2017-02-17 22:25:26 190

原创 Elasticsearch几个概念和配置

Elasticsearch是当今最流行的分布式搜索引擎,首先介绍下使用场景,比如:全文检索       比如找到与搜索词项(term)最相关的维基百科文章。聚合       比如在广告网络中,可视化的搜索词项的竞价直方图。地理空间API       比如在顺风车平台,匹配最近的司机和乘客。接下来重点介绍下几个概念和配置:master节点主要功能是维护元数

2017-02-16 17:23:45 2142

转载 JVM常见问题及参数详解

几个常见的jvm问题,总结的比较好,搬来借鉴。1. java.lang.OutOfMemoryError:Java heap space ----JVM Heap(堆)溢出JVM在启动的时候会自动设置JVM Heap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn -Xms -Xmx等

2017-02-16 14:36:32 691

原创 JAVA 数组常用方法

//静态初始化int array[] = { 1, 2, 3, 4 };//动态初始化int array[] = new int[3];//数组长度int length = array.length;//获取二维中第一维的长度int length2 = array[0].length;//遍历int[] array = new int[] { 1

2017-02-16 10:13:59 744

原创 JAVA基础 几个注意点

int     整型             4 bytesfloat     单精度浮点型     4 bytes  有效数字7位,双精度是15位char     字符型             2 bytesbool    布尔型             1 bitpublic static void main(String[] args){  System.out

2017-02-13 16:19:44 311

原创 Elasticsearch 搜索使用详解

结构化搜索//精确值查找使用过滤器(filters),跳过评分阶段,容易缓存。请尽可能使用过滤式查询。在query DSL查询表达式中,term查询类似where条件查询。{    "term" : {        "price" : 20    }}使用 constant_score(恒定分数) 查询以非评分模式来执行 term 查询并以一作为统一评分。

2017-02-10 17:44:45 2470

翻译 Elasticsearch JAVA API

参考文献:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.htmlMaven 工程 pom.xml修改    org.elasticsearch.client    transport    5.2.0//client api通过TransportClie

2017-02-09 16:01:54 742

原创 elasticsearch 5.2 部署及Rally压力测试

elasticsearch 5.2于2017年1月31号发布,压测试用。详细的文档记录奉献各位。

2017-02-08 18:46:23 6296 1

原创 JAVA 面试题(二)

1.String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。2.说出Servlet的生命周期,并说出Servlet和CGI的区别?Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doP

2017-01-19 15:34:20 595

原创 JAVA 面试题(一)

1.谈一谈”==“与”equals()"的区别。==就是用来比较值是否相等,适用于原始数据类型和枚举类型.equals方法是基类Object中的方法,因此对于所有的继承于Object的类都会有该方法。在Object类中,equals方法是用来比较两个对象的引用是否相等,即是否指向同一个对象。2.Java中的四种引用及其应用场景是什么?强引用: 通常我们使用new操作符创建一个对

2017-01-18 17:34:11 1296

原创 Elasticsearch 常用查询语句理解

pretty在任意的查询字符串中增加pretty参数,会让Elasticsearch美化输出(pretty-print)JSON响应以便更加容易阅读。GET /website/blog/123?pretty针对性过滤输出GET /website/blog/123?_source=title,text如果你想做的只是检查文档是否存在,使用HEAD方法来代替GET。HEAD

2017-01-16 15:16:58 4919

原创 java 序列化和反序列化

java 序列化和反序列化

2017-01-14 10:52:20 262

原创 Elasticsearch 简介

Java API节点客户端(node client)传输客户端(Transport client)都通过9300端口与集群交互,集群中的节点之间也通过9300端口进行通信.RESTful API HTTP通过9200端口的与Elasticsearch进行通信,?pretty参数将使请求返回更加美观易读的JSON数据。curl -i -XGET '172.28.80.11

2017-01-14 10:50:21 417

转载 ​Elasticsearch 5.x (四) lucene 的评分机制

elasticsearch是基于lucene的,所以他的评分机制也是基于lucene的。评分就是我们搜索的短语和索引中每篇文档的相关度打分。如果没有干预评分算法的时候,每次查询,lucene会基于一个评分算法来计算所有文档和搜索语句的相关评分。使用lucene的评分机制基本能够把最符合用户需要的搜索放在最前面。当然有的时候,我们可能想要自定义评分算法,这个就和lucene的评分算法

2017-01-14 10:42:26 1051

原创 Elasticsearch 5.x (三) Elasticsearch REST API

elasticsearch中的API:官网链接:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html#docses中的API按照大类分为下面几种:文档API: 提供对文档的增删改查操作搜索API: 提供对文档进行某个字段的查询索引API: 提供对索引进行操作查看API: 按照更直观

2017-01-14 10:37:58 6699

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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