自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Nginx配置ssl自签名证书

1、生成ssl自签名证书1)生成RSA密钥(过程需要设置一个密码,记住这个密码)$ openssl genrsa -des3 -out domain.key 10242)拷贝一个不需要输入密码的密钥文件$ openssl rsa -in domain.key -out domain_nopass.key3)生成一个证书请求$ openssl req -new -key domain.key -out domain.csr4)这里会提示输入国家,地区组织,email等信息.最

2022-04-26 10:44:34 4487 2

原创 【压测】系统吞吐量、TPS(也叫QPS)、用户并发量、性能测试概念和公式

一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间: 一般取平均响应时间(很多人经常会把并发数和TPS理解混淆)理...

2022-03-21 12:52:37 11666

原创 es分片内部原理

1、概述前文我们介绍了分片,并将它描述成最小得工作单元。但是究竟什么是分片,它是如何工作得,此文将做详细解答:为什么搜索是近实时的? 为什么文档的 CRUD (创建-读取-更新-删除) 操作是实时的? Elasticsearch 是怎样保证更新被持久化在断电时也不丢失数据? 为什么删除文档不会立刻释放空间? refresh,flush, 和optimizeAPI 都做了什么, 你什么情况下应该使用他们?2、使文本可被搜索必须解决得第一个挑战是如何使文本可被搜索。传统得数据...

2022-01-19 16:08:39 1875

原创 elasticsearch-06映射和分析

1、简述当摆弄索引里面的数据时,我们发现一些奇怪的事情。一些事情看起来被打乱了:在我们的索引中有12条推文,其中只有一条包含日期2014-09-15,但是看一看下面查询命中的总数(total):GET /_search?q=2014 # 12 resultsGET /_search?q=2014-09-15 # 12 results !GET /_search?q=date:2014-09-15 # 1 resultGET /_searc...

2022-01-18 09:59:09 147

原创 elasticsearch搜索--最基本的工具

1、空搜索搜索API的最基础的形式是没有指定任何查询的空搜索,它简单地返回集群中所有索引下的所有文档:GET /_search返回的结果(为了界面简洁编辑过的)像这样:{ "hits" : { "total" : 14, "hits" : [ { "_index": "us", "_type": "tweet", "_id": "7",

2022-01-16 15:34:08 231

原创 elasticsearch-分布式文档存储

1、路由一个文档到一个分片中当索引一个文档的时候,文档会被存储到一个主分片中。 Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片 1 还是分片 2 中呢?首先这肯定不会是随机的,否则将来要获取文档的时候我们就不知道从何处寻找了。实际上,这个过程是根据下面这个公式决定的:routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。routing通过 hash 函数生成一个数字,然后这个数字再除以.

2022-01-16 12:10:17 305

原创 Elasticsearch数据输入和输出介绍大全

1、文档的含义在大多数应用中,多数实体或对象可以被序列化为包含键值对的 JSON 对象。 一个 键 可以是一个字段或字段的名称,一个 值 可以是一个字符串,一个数字,一个布尔值, 另一个对象,一些数组值,或一些其它特殊类型诸如表示日期的字符串,或代表一个地理位置的对象:通常情况下,我们使用的术语 对象 和 文档 是可以互相替换的。不过,有一个区别: 一个对象仅仅是类似于 hash 、 hashmap 、字典或者关联数组的 JSON 对象,对象中也可以嵌套其他的对象。 对象可能包含了另外一些对象。在

2022-01-16 11:23:40 300

原创 elasticsearch集群内部原理总结

1、前言ElasticSearch 的主旨是随时可用和按需扩容。 而扩容可以通过购买性能更强大(垂直扩容,或纵向扩容) 或者数量更多的服务器(水平扩容,或横向扩容)来实现。虽然 Elasticsearch 可以获益于更强大的硬件设备,但是垂直扩容是有极限的。 真正的扩容能力是来自于水平扩容—​为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中。对于大多数的数据库而言,通常需要对应用程序进行非常大的改动,才能利用上横向扩容的新增资源。 与之相反的是,ElastiSearc...

2022-01-12 16:46:58 459

原创 初识Elasticsearch

es从新手到专家官方教程地址:后续步骤 | Elasticsearch: 权威指南 | Elastic1、根据索引(index)+类型(type)+主键(id)查询数据GET ima_alarm_dev_index_0422/ima_alarm_dev_type_0422/3714818012-2021121692705效果如下图:2、根据索引+类型+_search,查询该类型下所有数据默认10条,结果全部放在hit中GET ima_alarm_dev_index_0422/im

2022-01-12 15:26:44 812

原创 spring各组件模块作用介绍

一、模块详细介绍Spring5.x中的模块划分如下图所示,除了图中的spring-mymvc,spring-mymc-annotation,spring-source-study为笔者自己创建之外,总共有22个模块:1.1、spring-aop模块面向切面编程时使用。Spring通过"横切"的方式将贯穿于多业务中的公共功能独立抽取出来,形成单独的切面,并指定切面的具体动作,在需要使用该功能时,动态地将该功能切入到需要的地方。1.2、spring-aspects模块...

2021-12-06 16:06:12 5502

原创 springboot功能解析及各个包作用以及使用场景

1、springboot源码各个包结构图2、解析说明从springboot官方网站源码下载springboot源码,下载完成后切换到某个tag版本,此处以v2.1.6RELEASE举例,下载完成后源码结构如下图所示:spring-boot-project为spring-boot核心技术包,其中包含了spring-boot所有基础源码 spring-boot-samples为springboot的案例包,在高版本后会删除此包 spring-boot-test为springboot的测试包.

2021-12-02 15:07:36 5401

原创 java框架源码下载大全(持续更新中)

1、springboot源码地址 github地址::https://github.com/spring-projects/spring-boot/tree/1.5.x git地址:https://github.com/spring-projects/spring-boot.git

2021-11-30 19:12:40 16054

原创 springBoot深度解析-06springboot-JSON

目录6. JSON6.1. Jackson6.2. Gson6.3. JSON-B6. JSONSpring Boot 提供了与三个 JSON 映射库的集成: Gson Jackson JSON-B Jackson 是首选和默认的库。6.1. Jackson提供了 Jackson 的自动配置,并且 Jackson 是spring-boot-starter-json.当 Jackson 在类路径上时,ObjectMapper会自动配置..

2021-11-30 14:16:56 148

原创 springBoot深度解析-04springboot国际化功能解析

5. 国际化此功能一般用于jsp页面,目前市场主流前后端分离不适用与此,国际化的主要作用是用于写完一套代码后能够支持不同国家的人能看到此页面信息Spring Boot 支持本地化消息,以便您的应用程序可以满足不同语言偏好的用户。默认情况下,Spring Bootmessages在类路径的根目录中查找资源包的存在当配置的资源包的默认属性文件可用时(messages.properties默认情况下),自动配置适用。如果您的资源包仅包含特定于语言的属性文件,则需要添加默认值。如果找不到与任何配置的

2021-11-30 14:13:08 1781

原创 springBoot深度解析-04springboot日志Logging

4. LoggingSpring Boot 将Commons Logging用于所有内部日志记录,但保持底层日志实现处于打开状态。为Java Util Logging、Log4J2和Logback提供了默认配置。在每种情况下,记录器都预先配置为使用控制台输出,也可以使用可选的文件输出。默认情况下,如果您使用“Starters”,则使用 Logback 进行日志记录。还包括适当的 Logback 路由,以确保使用 Java Util Logging、Commons Logging、Log4J

2021-11-29 18:03:30 1521

原创 springBoot深度解析-03springboot配置简介

spring Profiles提供了一种分离应用程序配置部分并使其仅在某些环境中可用的方法。例如@Component,@Configuration或者@ConfigurationProperties可以在@Profile加载时标记为限制,如下例所示:@Configuration(proxyBeanMethods = false)@Profile("production")public class ProductionConfiguration { // ...} 如果@Co

2021-11-29 10:19:59 232

原创 java从文本中提取姓名、身份证、电话、地址

最近在工作中遇到了从一段有一定规则文本中提取姓名、身份证、电话、地址得需求,本来想使用Hanlp分完词后,使用动态规划分离出语义词,在通过机器学习得方式提取,但考虑到实际工作两较大,故采用了一种比较简单得方式,废话不多说贴代码1、提取操作工具类package com.hikvision.ima.alarmschedule.utils;import com.hikvision.ima.alarmschedule.bean.po.PersonInfo;import org.apa...

2021-11-26 11:40:32 10888 3

原创 springBoot深度解析-02springboot配置介绍详细版

2. 外化配置Spring Boot 允许您将配置外部化,以便您可以在不同环境中使用相同的应用程序代码。您可以使用各种外部配置源,包括 Java 属性文件、YAML 文件、环境变量和命令行参数。属性值可以通过直接注射到你的bean@Value注释,通过Spring的访问Environment抽象,或者被绑定到结构化对象通过@ConfigurationProperties。Spring Boot 使用一个非常特殊的PropertySource顺序,旨在允许合理地覆盖值。属性按以下顺序考虑(来自较低

2021-11-24 21:56:18 1353

原创 springBoot深度解析-01springApplication特性介绍

本文将深入介绍springBoot框架得特性,此处可助您了解springBoot自身特性,为后续工程架构铺平道路1、springBoot应用springApplication类提供了一个方便得方式来引导启动spring应用得main方法。在许多情况下您可以委托给静态SpringApplication.run方法,如下例所示:@SpringBootApplicationpublic class MyApplication { public static void main(Strin

2021-11-20 11:44:29 2154

翻译 springboot maven插件详细说明及使用

1、介绍Spring Boot Maven 插件在Apache Maven 中提供 Spring Boot 支持。它允许您打包可执行的 jar 或 war 档案、运行 Spring Boot 应用程序、生成构建信息并在运行集成测试之前启动您的 Spring Boot 应用程序。2. 入门要使用 Spring Boot Maven 插件,请在plugins您的部分包含适当的 XMLpom.xml,如以下示例所示:<project> <modelVersion&gt.

2021-11-18 13:19:56 8129

原创 18.架构基础-JAVA设计模式-责任链模式

责任链模式

2021-11-15 16:52:12 384

原创 19.架构基础-JAVA设计模式-观察者模式

观察者模式定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新,这种模式有时又称作发布-订阅模式、模型-视图模式,它时对象行为型模式。观察者模式是一种对象行为型模式,其主要优点如下。1.降低了目标于观察者之间的耦合关系,两者之间是抽象耦合关系,和服依赖倒置原则。2.目标与观察者之间建立了一套触发机制它的主要缺点如下。1、目标与观察者之间的依赖挂你并没有完全接触,而且有可能出现循环引用2、当观察者对象很多时,通知的发布会花费很多时间

2021-11-15 16:08:37 236

原创 ElasticSearch安装教程全量版(包含kibana和ik分词器带图文)

一、ES离线单机版安装教程1、官网https://www.elastic.co/cn/downloads/past-releases#kibana下载linux版本的elasticsearch和kabana可视化界面包如下图所示(es6需要jdk8,es7需要配置jdk11):2、将两个包上传至usr/java/elasticsearch/下3、使用tar –zxvf +包名 命令,分别解压elasticsearch包和kibana包4、进入(cd elasticsearch/config)

2021-11-12 14:24:47 1964

原创 Centos8.3上安装sqlServer教程全量版(带图文)

1、下载mssql-server-2019.repo文件,执行如下命令:curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2019.repo[root@centos-7 etc]# curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/

2021-11-04 13:24:34 1534

原创 cnpm安装教程

1、确认npm是否安装成功:win+R,输入cmd,打开命令窗口2、 命令行窗口输入:node -v,显示有版本号,则安装成功3、安装cnpm:输入npm install -g cnpm -registry=https://registry.npm.taobao.org4、安装完成后,输入cmpm -v,检查是否安装成功如果出现cnpm不是内部或者外部命令提示,请继续以下操作5、 配置环境变量打开系统环境变量,增加如下配置,则修改成功回到命令行窗口输入cn..

2021-10-21 14:59:45 85538

原创 nrm安装与配置

1、nrm介绍nrm(npm registry manager )是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在npm源间切换2、nrm安装在命令行执行命令,npm install -g nrm,全局安装nrm。安装完成后,执行nrm ls,如果提示找不到命令,则打开nrm安装目录3、nrm使用1)执行命令nrm ls查看可选源...

2021-10-19 15:16:51 18082 5

原创 node.js安装配置教程

一、文件下载:打开官方网站进行下载,Download | Node.js如下图所示:如果想安装更早版本,鼠标往下拉,找到如下图所示位置,点击进入二、安装1、双击刚才下载好得msi文件2、点击Run(运行),将出现如下界面:3、勾选接受协议选项,点击next(下一步)按钮:4、Node.js默认安装目录为 "C:\Program Files\nodejs\" , 你可以修改目录,并点击 next(下一步):5、点击树形图标来选择你需要的安装模式 ...

2021-10-19 14:43:44 2616

原创 nginx基本配置与参数说明

#运行用户:主模块指令,指定Nginx Worker进程运行用户以及用户组,默认由nobody账号运行user nobody;#nginx要开启的进程数,每个Nginx进程平均耗费10M~12M内存,通常设置成和cpu的数量相等worker_processes 1; #全局错误日志:用来定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit可#供选择,其中,debug输出日志最为最详细,而crit输出日志最少#error_log logs/e.

2021-10-12 22:41:45 137

原创 linux命令汇总

一、基础命令1.cd /data 切换到data目录下,前面如果有‘/’则为绝对路径,不带'/'为相对路径2.ls 查看当前目录下文件及文件夹(结果竖向)3.ll 查看当前目录下文件及文件夹(结果横向)4.二、查找命令1.find:find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等基本格式:find path expression    1.按照文件名查找    (1)find / -name httpd.conf..

2021-09-26 10:17:21 134

原创 编译nginx时几种常见错误

在对nginx进行编译时报了如下图所示错误src/os/unix/ngx_user.c: In function ‘ngx_libc_crypt’:src/os/unix/ngx_user.c:36:7: error: ‘struct crypt_data’ has no member named ‘current_salt’cd.current_salt[0] = ~salt[0];^make[1]: *** [objs/Makefile:774: objs/src/os/unix/ngx_

2021-09-21 13:05:23 3971 3

原创 nginx安装和部署教程linux完整版(含PCRE库、SSL库、zlib库)

1.安装gcc gcc-c++(如新环境,未安装请先安装)[root@centos-7 gcc]# yum install -y gcc gcc-c++2.安装wget (如果已安装请忽略[root@centos-7 gcc]# yum -y install wget3.安装PCRE库[root@centos-7 local]# cd /usr/local/tools[root@centos-7 local]# mkdir pcre[root@centos-7 local].

2021-09-18 18:47:59 3697 1

原创 mysql在linux安装教程

mysql下载地址:https://downloads.mysql.com/archives/community/

2021-09-16 17:12:41 4597

原创 NEO4J-链路预测算法06-全邻域算法(Total Neighbors )应用场景简介

1.简介Total Neighbors 根据节点拥有的唯一邻居的数量计算节点的接近度。它基于节点连接越多,接收新链接的可能性就越大的想法 算法公式如下:其中N(x)为节点x的关系节点,N(y)为节点y相邻节点。值0表示两个节点不接近,而较高的值表示节点较近。neo4j包含一个函数来计算两个节点之间的接近度2.使用场景3.源码解析 public double totalNeighbors(@Name("node1") Node no...

2021-08-24 15:42:24 715

原创 NEO4J-链路预测算法05-相同社区算法(Same Community)应用场景简介

1.简介相同社区是一种确定两个节点是否属于同一个社区的方法。可以使用其中一种社区检测算法来计算这些社区。如果两个节点属于同一个社区,那么将来它们之间存在关系的可能性更大,如果还没有的话。值为 0 表示两个节点不在同一个社区中。值为 1 表示两个节点在同一个社区中。该库包含一个计算两个节点之间接近度的函数。2.使用场景 相同社区算法,一般适用于判断两个节点之间是否由共同属性,比如由同一所学校,同一...

2021-08-24 15:27:03 960

原创 NEO4J-链路预测算法03-优先链接算法(Preferential Attachment)应用场景简介

说明:使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库1.简介公共邻居捕捉到两个共同朋友比没有任何共同朋友的陌生人更有可能被介绍的想法。它使用如下公式进行计算的:,其中N(x)是与节点x相邻的节点集,N(y)是与y节点相邻的节点集,PN(x,y)即为计算x和y节点的相邻节点数乘积值0表示两个节点不接近,而较高的值表示节点相近。2.使用场景进入抖音app,常常会弹出一个框,可能认识,上面显示显示由多少个共...

2021-08-24 14:08:33 2595

原创 NEO4J-链路预测算法02-公共邻居算法(commonNeighbors)应用场景简介(抖音朋友推荐)

说明:使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库1.简介2.使用场景3.neo4j中公共邻居算法使用示例3.源码解析NEO4J-链路预测算法01-Adamic Adac算法(adamicAdar)应用场景简介...

2021-08-24 10:24:24 2212

原创 NEO4J-链路预测算法01-Adamic Adac算法(adamicAdar)应用场景简介

说明:使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库1.简介Adamic Adac算法公式如下:其中N(u)是与相邻的节点集u。值A(x,y)=0表示两个节点不接近,而较高的值表示节点较近该库包含一个计算两个节点之间接近都的函数2.语法示例及使用场景语法:RETURN gds.alpha.linkprediction.adamicAdar(node1:Node, node2:Node, { relationshipQuery:Strin

2021-08-23 20:42:03 3259

原创 NEO4J-相似度算法05-重叠相似度算法应用场景简介

说明:使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库1.简介重叠相似度算法就是先把两个向量表示成两个长度相等得一维坐标,即映射到一维空间,再进行重合度加权求和,它即不关注两个向量得夹角,也不关注向量之差得长度值。其向量公式如下:数学计算公式如下:,其中分母是作为一个归一化因子,其中成为共同维度函数,O(x_{i},y_{i}) }为重合度函数2.使用场景我们可以使用重叠相似性算法来计算出哪些事物是其他事物的子集。此算法对两个事物之间本身关联关系数

2021-08-23 19:05:16 1935

原创 NEO4J-相似度算法04-欧几里得距离算法(euclidean)应用场景简介

说明:使用neo4j算法库时需引入跟neo4j数据库对应的算法库插件或自定义算法库1.简介欧几里德距离算法原理是计算n维坐标系中点与点之间地距离,如在三维坐标系中点A(p1,p2,p3),点B(q1,q2,q3),两个点之间得距离则为 :,如果在n维坐标系中,两个点得距离则变为:根据以上特性拓展:距离越小则A点和B点重合度越高,由此可衍生出A点和B点在n维空间中距离相似度公式为: similarity = neo4j自带算法包提供了欧几里得相似度...

2021-08-23 16:56:31 1835

原创 java Robot源码解析(史上最全)

简介:此类用于生成本机系统输入事件,出于测试自动化、自运行演示和其他可以控制鼠标和键盘的应用程序这是需要的。机器人的主要目的是方便用户Java平台实现的自动化测试方法介绍及解析:以下private开头方法为Robot内部使用,方法,public方法为对外开放方法,请重点关注public方法Robot中对外提供接口 使用要点 代码示例 说明 1.实例化方法 new Robot(); 无参实例化,详见1 new Robot( GraphicsEnvironmen

2021-08-23 14:54:11 2460

空空如也

空空如也

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

TA关注的人

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