自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Marcus Hold Coding

Loading……

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

原创 Windows机器安装SSH搭建,自己搞个局域网机房玩一玩

家里的三台电脑都链接了同一个路由器,所有设备都在同一个子网下面,那么只需要开启端口确定协议,那么所有设备均可以进行互通互联,包括Android手机也可以使用ADB工具进行控制,那就可以抱着笔记本Surface(一台非常轻的电脑)躺床上远程开发。举个例子,你要约喜欢的女孩子去看电影,那么你得先要有时间+获取到电影票的能力,而你喜欢的女孩子没有时间,那就算你发起“请求”(邀约),也肯定不能约到的。的话,那么指不定你的电脑可能已经存在ssh客户端了,客户端只能是让你的机器有了链接别人的能力。

2023-04-01 16:34:29 1302

原创 HashMap的长度为什么必须是2的n次方

HashMap的长度为什么必须是2的n次方首先我们看下HashMap中的源码当中那里奠定了长度是2的n次方,并且是靠近cap这个值最近的2的n次方static final int tableSizeFor(int cap) { // 首先cap-1使得n的最后一位和cap最后一位绝对不一样 int n = cap - 1; // 向右无符号的移动了1位,并使用或运算使n的所有有1的位上全部是1 n |= n >>> 1; // 向右无符号移动2位

2021-06-29 01:11:15 654 1

原创 看了源码才知道,原来HashMap是这么一个结构

文章目录Map简介HashMap内部重要属性不同类型结点结构HashMap中的重要操作HashMap实例化puttreeifyBingetremoveMap简介Map是一种键值对集合,每一个元素都包含一个键对象和一个值对象。其中键对象是不允许重复的。Map接口与Collection接口是不同的,Map接口有两个主要实现类HashMap类、TreeMap类,HashMap类按哈希算法来存取键值对象,而TreeMap类可以对键值对象进行排序。#mermaid-svg-Q66HOXDdzZwNOqv9 .

2021-03-25 23:57:57 1849 4

翻译 如何选择一个Kafka集群中的主题分区的数量

文章目录更多的分区可使吞吐量更大更多的分区需要更多文件句柄更多的分区增加不可用性更多的分区更高的端到端的延迟更多的分区需要更多的内存Kafka集群中分区应该设置多少比较合适,这是一个面对众多开发者共同的难题,这篇文章的目标就是来解释一些重要的因素,同时会提供一些简单的公式。更多的分区可使吞吐量更大首先我们要有个认知,那就是分区(partition)是Kafka中的并发单位。从生产者和Broker层面来说,写入消息到不同的分区是一种完全的并发行为,所以例如压缩等重量级操作,可以使用更多的硬件资源来解决

2020-10-30 23:25:16 897

原创 Logstash一个开源收集引擎,具有近实时的管道功能

文章目录Logstash的介绍Logstash的能力日志和指标web方面数据和数据流传感器和物联网数据存储Logstash初窥门径检查Java版本安装Logstash开始使用Logstash整合多个I/O插件Logstash的介绍Logstash是一个开源的数据收集引擎,具有近实时的管道能力,Logstash能够从不同的数据源中动态统一出标准化数据,并将格式化的数据输入到你所指定的目标。为形形色色的且不断增加的下游数据分析和可视化等使用案例,提供数据清理和普适。虽然Logstash最初推动了日志收集方

2020-09-06 16:43:47 798

原创 ElasticSearch Mapping数据类型、主要参数一览

文章目录ElasticSearch 数据类型类型一览表文本类型`text` 全文类型`keyword` 关键字数据类型数字类型日期类型范围类型数组类型对象类型嵌套对象类型地理类型ElasticSearch 数据类型类型一览表一级分类二级分类具体类型使用核心类型字符串类型string,text,keyword结构化搜索,全文文本搜索、聚合、排序等整数类型integer,long,short,byte字段的长度越短,索引和搜索的效率越高。浮点类型doub

2020-09-06 15:18:05 1760

原创 Elastic Stack应用性能监控APM初窥门径

文章目录什么是APMAPM的组成APM AgentsAPM ServerElasticsearchKibanaAPM快速开始安装APM ServerAPM Server 配置docker快速安装什么是APMElastic APM (application performance monitor)是一个应用性能监控系统,构建与Elastic Stack上(旧称ELK栈)。APM允许你去实时监控应用软件提供的服务,并会收集处理请求的响应时间,数据库查询,缓存调用,外部HTTP请求等详细的性能信息,这使得查明

2020-09-06 15:17:12 820

原创 docker咋用?那就从搭建开始

文章目录Docker是种Linux Containers镜像和容器容器与虚拟机安装Docker Engine For CentOS卸载老版本安装docker使用仓库进行安装通过rpm包安装使用script进行安装卸载Docker Engine - ConmmunityDocker是种Linux ContainersDocker解决了因机器不一样,而导致应用程序运行环境不一样的尴尬。docker采用了一种虚拟化容器技术,将应用容器化,实现进程隔离。Linux 容器不是模拟一个完整的操作系统,而是对进程进行

2020-06-05 16:06:57 175

原创 使用du命令查看文件/目录大小的常规操作

du命令查看文件/目录大小命令命令语法du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][–block-size][–exclude=<目录或文件>] [–max-depth=<目录层数>][–help][–version][目录或文件]常用参数-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或–total 显示

2020-06-05 15:39:20 597

原创 Linux文件新建/查找/删除/拷贝/移动/上传等常用命令

文章目录1.新建操作2.查看操作2.1查看目录2.2查看文件2.3查找操作4.删除操作5.拷贝文件/目录5.1单机操作5.2远程拷贝6.移动命令使用6.1移动文件或目录7.解(压)压缩操作8.上传文件9.ln、file和touch命令1.新建操作mkdir abc #新建一个文件夹touch abc.sh #新建一个文件echo "abc" > test.txt #新建一个文件,并将abc写入。这里用到了重定向符2.查看操作2.1查看目录ll #显示目录文件详细信息df -lh #查

2020-06-05 15:38:47 476

原创 top命令应该怎么用?top命令里面参数都是什么

top命令经常用来监控Linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令1. 系统运行时间和平均负载top命令的顶部显示与uptime命令的输出相似这些字段显示:当前时间系统已运行的时间当前登录用户的数量最近5、10和15分钟内的平均负载。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FES9RQTj-1591342615681)(en-resource://database/933:1)]21:45:11 — 当前系统时间0 day

2020-06-05 15:37:46 1124

原创 安全并正确地重启Elasticsearch集群

背景在重启elasticsearch后可能存在数据丢失,或者是“启动ES后,怎么一直有大量的数据在迁移?”问题原因其本质原因有两点:ES中的数据不是实时写入磁盘的。数据进入ES后先进入data buffersegment和transientLog这两个buffer,(此处又涉及到数据防丢失的机制)然后进入操作系统文件系统缓存的数据段,最后再特定时机(两个条件,一个是segment到达容量,一个是到达refresh时间间隔)下才刷入磁盘。即在内存中有很多数据是没写入磁盘的。ES的分片自动分配迁移

2020-06-05 15:34:41 1731

原创 在Elasticsearch使用URI花式搜索

文章目录通过URI实现搜索指定字段和泛查询Term与语句(phrase)查询范围查询和算数符号通配符查询正则表达式模糊匹配与近似查询Request Body Search查询使用SearchTemplate查询通过URI实现搜索URI Search 是通过在URI上传入参数定义你的查询条件,不支持所有的DSL但是更加便利,常用传入参数如下:curl -XGET -H "Content-Type:application/json" "http://localhost:9200/<index>

2020-06-05 15:05:27 305

原创 Elasticsearch路由routing是个什么鬼

什么是路由routing的默认值是文档id,也可以是自定义值,根据routing计算出分片序号,并指定到该分片上。索引文档时,文档会被存储到一个主分片下,其分片公式如下:shard_num = hash(_routing) % num_primary_shards由于number_of_primary_shards会参与路由的计算,因此主分片数量一经指定就不能改变你,会使routing值失效。客户端查询请求时节点工作步骤请求被集群交给主节点主节点接收后,将请求广播到指定索引的每一个shar

2020-06-05 15:04:09 541

原创 Hystrix初试牛刀(使用切面编程/拦截器踩坑了)

Hystrix服务降级首先配置Hystrix时需要使用到@HystrixCommand注解,将该注解标记在所需要限制或服务降级的代码块上(目前只在controller层的方法上使用过),其中降级的目标方法,方法入参需要与被降级的方法保持一致,最多添加一个Throwable类型参数,保证ignoreExceptions能够使用,具体配置如下:@Slf4j@RestControllerpublic class InternationalGMController { @Autowired

2020-06-05 15:02:10 659 1

原创 Elasticsearch的集群从概念到搭建

文章目录为什么要搭建Elasticsearch的集群ES集群Set up节点类型配置文件搭建Elasticsearch7.X伪集群Docker安装Elasticsearch集群启动异常(系统资源限制层面)在主节点机器上进行验证为什么要搭建Elasticsearch的集群Elasticsearch是一个开源的高扩展的分布式全文检索引擎通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。ES主要解决问题:检索相关数据;返回统计结果;速度要快。1. 高可用性通

2020-06-05 14:55:07 196

原创 Node.js各平台安装配置快速开始

[TOC]Node.js 简介Node.js 就是运行在服务端的 JavaScript的解析器,是一个基于ChromeV8引擎的JavaScript 运行平台。运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象。 运行在NodeJS提供了fs、http等内置对象,可操作磁盘文件或搭建HTTP服务器。补充:V8引擎执行Javascri...

2020-02-05 16:25:34 1094

原创 零拷贝实现原理

[TOC]内容拷贝过程场景:从一个文件中读出并将数据传到另一台服务器实现伪代码如下:File.read(file, buf, len);Socket.send(socket, buf, len);// 此过程涉及4次拷贝注意: 在应用拷贝时会涉及到用户态切换到内核态1. 应用程序调用read()方法,此处会设计到上下文切换(用户态->内核态),底层采用DMA(direct me...

2019-10-31 17:18:40 691

原创 常用Git命令

0. 日常操作拉取项目(默认master)git clonse 地址抓取远程仓库代码到本地git pull推送本地代码到仓库git push查看所有分支git branch -a切换分支git checkout 合并指定分支到当前分支git merge origin/从当前本地分支创建新的本地分支,并切换到新分支git checkout -b 提交本地分支到远程仓库git pus...

2019-09-24 09:18:16 405

原创 Linux 使用tar/zip/rar 解压/归档命令

文章目录**tar命令常用参数****压缩****解压****注意:**tar命令常用参数-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compr...

2019-07-11 09:16:57 214

原创 配置linux的jdk报错error while loading shared libraries: libjli.so

问题描述:执行jar命令,javac命令执行报错javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory事情起因经过配置jdk都可以眯着眼配置了,然而今天配置阿里云服务器发生了意外,差点啪啪打脸,地发现...

2019-07-10 11:19:14 11424

转载 java注解(四种元注解:@Retention @Target @Document @Inherited)

java中元注解有四个: @Retention @Target @Document @Inherited;   @Retention:注解的保留位置               @Retention(RetentionPolicy.SOURCE)   //注解仅存在于源码中,在class字节码文件中不包含      @Retention(RetentionPolicy.CLASS)  ...

2018-09-28 13:18:47 8398

转载 安装MySQL5.7.17遇到的一些坑

记性不好,转载的东西记一下,帮了大忙了在官网下载的最新的5.7.17免安装版本mysql下载MySQL 5.7.17安装解压后配置my.ini文件,然后就运行命令net start mysql 接着就显示:MySQL正在启动.MySQL无法启动。服务没有报告任何错误。然后找到原因,MySQL需要初始化data,于是进入MySQL目录:cd C:\Program File...

2018-07-18 20:22:38 152

原创 Git版本库的使用

什么是版本库    版本库简单理解其实就是一个目录,在这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,在将来某个时刻可以“还原”成历史时刻中的随意一个版本。创建版本库    首先,打开Git Bash,在配置好name和email标识后,选择一个合适的路径(避免中文和空格的出现),创建一个空目录,进入该目录 mkdir learngi...

2018-04-17 18:28:08 1056 1

原创 Git使用安装使用

Git简介     Git是目前世界上最先进的分布式版本控制系统,而SVN则是集中式版本控制器,其实 Git 跟 SVN一样有自己的集中式版本库或服务器,但是Git 更倾向于被使用于分布式模式,也就是每个开发人员从中心版本库/服务器上chect out代码后会在自己的机器上克隆一个跟中心版本库一模一样的本地版本库,在git中还可以同一个项目建立不同的分支,因为git只是保存了修改,其每一个分支都相...

2018-04-16 13:30:23 263

原创 Spring核心依赖注入(二)

    IOC(Inversion of Control):其思想是反转资源获取的方向。当某个Java对象(调用类)需要调用另一个Java对象(被调用类)的方法时,传统的做法有两种:原始做法:调用者主动创建被依赖对象,然后再调用被依赖对象的方法,也就是用new的调用构造器 public class Test { public static void main(String...

2018-04-15 21:38:57 177 1

原创 Spring框架简介(一)

Spring是什么?   Spring框架致力于JavaEE应用各层的解决方案,Spring贯穿了表现层、业务层、持久层。然而,Spring并不是取代那些已有的框架,而是以高度的开放性与他们无缝整合。下图是Spring框架通过IOC和AOP事务管理进行的SSH整合,其中包括了Shiro安全框架,用于身份验证。Spring的特点 轻量级:Spring是非侵入性的-基于Spring开发的应用中的对象可...

2018-04-11 16:25:02 1221

原创 Java反射机制

在了解Java反射机制之前,咱们先来了解下JVM的运作流程:  通过javac命令编译后JVM启动,你的代码会编译成一个.class文件,然后被类加载器加载进JVM的内存中,你的类Object加载到方法区中,创建了Object类的class对象到堆中,注意这个不是new出来的对象,而是类的类型对象,每个类只有一个class对象,作为方法区类的数据结构的接口。JVM创建对象前,会先检查类是否...

2018-04-08 19:33:38 169 1

原创 面向对象特征——继承及重写

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。继承可以理解为一个对象从另一个对象获取属性和方法的过程。      继承中最常使用的两个关键字是extends(继承)和implements(接口的实现)这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系,通过使用这两个关键字,我们能实现一个对象获取另一个对

2017-11-18 09:48:49 251

原创 Servlet 访问WEB资源的方式

WEB资源:      HttpServletRquest,HttpServletSession,Cookie等,原生Servlet  API  Servlet访问WEB资源的方式    Servlet API解耦的方式(只能访问到有限的Servlet API对象和方法)       >使用ActionContextimport java.util.Map;im

2017-11-17 17:01:35 428

原创 Action类和action请求

WEB资源:      HttpServletRquest,HttpServletSession,Cookie等,原生Servlet  API  Servlet访问WEB资源的方式    Servlet API解耦的方式(只能访问到有限的Servlet API对象和方法)       >使用ActionContextimport java.util.Map;

2017-11-17 16:32:25 1764

原创 Struts2配置使用

Struts2 配置文件     加入 jar 包:复制 struts\apps\struts2-blank\WEB-INF\lib 下的所有 jar 包到当前 web 应用的 lib 目录下。     如果是Mavn工程只需要添加依赖就好,如下: org.apache.struts struts2-core 2.3.15.3  

2017-11-17 14:26:05 259 1

原创 Struts概述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。    Struts2提供了 Web 应用程序开发过程中的一些常见问题的解决方案:对来自用户的输入数据进行合法性验证统一的布局可扩展性国际化和本地化支持 Ajax表单的重复提交文件的上传下载

2017-11-17 14:02:59 427 1

转载 Maven标签详解

通过xml表示maven项目,使用pom.xml来实现。以下是在别人博客上看到的,记下来以后可以当字典查<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="...

2017-11-17 08:04:41 240

转载 Eclipse安装SVN插件

eclipse里安装SVN插件,一般来说,有三种方式: 1. 直接下载SVN插件,将其解压到eclipse的对应目录里 2. 使用eclipse 里Help菜单的“Install New Software”,通过输入SVN地址,直接下载安装到eclipse里 3. 使用eclipse自己的软件市场去下载安装第一种方式:1.下载SVN插件SVN插件下载地址及更新地址,你根据需要选

2017-11-17 07:22:47 166

原创 Maven核心概念学习

①POMPOM含义:Project Object Model 项目对象模型pom.xml对于Maven工程师核心配置文件,构建过程一切配置都在这个文件中进行配置<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

2017-11-09 19:16:13 241

原创 Maven安装核心程序

①首先确保系统中已经安装 JDK 并正确设置了 Java 环境变量。检测后%JAVA_HOME%环境变量,在命令窗口输入:echo %JAVA_HOME% 查看到%JAVA_HOME%路径为C:\Program Files\Java\jdk1.8.0_131  ②Maven 的下载地址为:http://maven.apache.org/download.cgi 将下载下来的文件解压

2017-11-05 11:44:16 1330

原创 Maven构建——重点

构建的概念   构建并不是创建,创建一个工程并不等于构建一个项目。构建就是以我们编写的 Java 代码(Java源文件)、框架配置文件、国际化等其他资源文件、JSP 页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程,要了解构建的含义我们应该由浅入深的从以下三个层面来看:  ①纯 Java 代码(编译)    大家都知道,我们 Java 是一门编译型语言,

2017-11-05 11:02:25 218

原创 Maven从零开始

Maven是一个项目管理工具一款自动化构建工具,专注服务于 Java 平台的项目构建 项目构建和依赖管理,它包含:以前做过的项目中,没有真正的使用过Maven,只知道其名声很大,其作用是用来管理jar 包的。最近一段时间在项目过程中使用Maven,用Maven构建的web项目,其项目结构只停留在了解阶段,没有深入的使用与理解,刚好最近看了一篇关于Maven的详解;就开始深入学习一下Maven的具体应用。

2017-11-05 10:59:48 287 1

原创 IO流简单学习知识点

流是一组有顺序的,有起点和终点的字节/字符集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。输入input 文件——》程序======输入流输出output 文件《——程序======输出流(站在程序角度来看是输出还是输入)一、IO的分类    按照数据单位分类:    字节

2017-11-02 17:37:24 224

空空如也

空空如也

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

TA关注的人

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