- 博客(65)
- 资源 (2)
- 收藏
- 关注
原创 Elasticsearch基本查询语法
先造点数据基于elasticsearch7.10.0POST /hotel{ "mappings":{ "properties":{ "title":{ "type":"text" }, "city":{ "type":"keyword" }, "price":{ "type":"double" }, "create_time":{ "type":"date", "format":"yyyy-MM-dd HH:mm
2022-05-02 20:08:40
1682
原创 Elasticsearch基本概念了解
Elasticsearch基本概念了解基本概念架构原理节点职责主分片和副分片文档读写过程基本概念索引,对应关系型数据库一个数据库文档,数据库中的一条记录字段,数据库中的一个column列映射,文档的数据结构集群和节点:在分布式系统中,为了完成海量数据的存储、计算并提升系统的高可用性,需要多台计算机集成在一起协作,这种形式被称为集群。这些集群中的每台计算机叫作节点。分片、副分片:为了能存储和计算海量的数据,会先对数据进行切分,然后再将它们存储到多台计算机中;每个分片可以设置多个副分片,这样当主
2022-04-30 11:09:44
1414
原创 人类简史历史年表
距今年代135亿年 物质和能量出现。物理学的开始。原子和分子出现。化学的开始。45亿年 地球形成。38亿年 有机生物形成。生物学的开始。600万年 人类和黑猩猩最后的共同祖先。250万年 非洲的人属开始演化。出现最早的石器。200万年 人类由非洲传播到欧亚大陆。演化为不同人种。50万年 尼安德特人在欧洲和中东演化。...
2022-04-10 16:20:43
1544
原创 一定要时刻加强智能合约的风险意识
跨链协议Poly Network被“黑客”攻击,被转移的数字资产价值达6.1亿美元。不过,这名黑客稍后同意归还这些资产,并通过以太坊网络转账留言进行了公开的问答。他表明自己不是恶意的黑客,而是像白衣骑士那样来拯救项目的白帽黑客。他表示,他最初发现了这个漏洞,担心有人利用这个漏洞盗窃资产,于是将这些价值上亿美元的数字资产转移到了他认为安全的地方,但他本人对这些钱并不感兴趣,最后归还了资金。...
2022-01-06 18:23:29
10393
原创 Spotfire10.10.0 windows10安装与配置
Spotfire10.10.0 windows10安装与配置官方文档:https://docs.tibco.com/pub/spotfire_server/10.10.0/doc/html/TIB_sfire_server_tsas_admin_help/_shared/important_information.html目录一 、准备工作 21 下载并解压 22 配置sqlserver数据库的基础信息 2二、 安装spotfire服务器并初始化配置 2安装 2初始配置 3创建管理员账号
2021-04-30 13:53:41
3808
2
转载 4个优雅的JavaScript运算符使用技巧
ECMAScript发展进程中,会有很多功能的更新,比如销毁,箭头功能,模块,它们极大的改变JavaScript编写方式,可能有些人喜欢,有些人不喜欢,但像每个新功能一样,我们最终会习惯它们。新版本的ECMAScript引入了三个新的逻辑赋值运算符:空运算符,AND和OR运算符,这些运算符的出现,也是希望让我们的代码更干净简洁,下面分享几个优雅的JavaScript运算符使用技巧一、可选链接运算符【?.】可选链接运算符(Optional Chaining Operator) 处于ES2020提案的第4
2021-04-30 11:38:24
228
转载 Kafka+Flink 实现准实时异常检测系统
1.背景介绍异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防场景做入侵检测等等。根据业务要求的不同,流计算在其中扮演着不同的角色:既可以做在线的欺诈检测,也可以做决策后近实时的结果分析、全局预警与规则调整等。本文先介绍一种准实时的异常检测系统。所谓准实时,即要求延迟在100ms以内。比如一家银行要做一个实时的交易检测,判断每笔交易是否是正常交易:如果用户的用户名和密码被盗取,系统能够
2021-04-20 10:11:00
271
原创 数据库窗口函数记录
partation分组但不聚合count(字段一) over(partation by 字段二 order by 字段三)。按照字段二分组,且组内按字段三升序,统计组内条数。row-number(字段一) over(partation by 字段二 order by 字段三)按照字段二分组,且组内按字段三升序,返回组内行编号。...
2021-04-17 07:59:19
131
转载 彻底弄懂GMT、UTC、时区和夏令时
前言格林威治时间、世界时、祖鲁时间、GMT、UTC、跨时区、夏令时,这些眼花缭乱的时间术语,我们可能都不陌生,但是真正遇到问题,可能又不那么确定,不得不再去查一查,处理完可能过段时间又忘记。今天,我们彻底来梳理一下它们。一、GMT什么是GMTGMT(Greenwich Mean Time), 格林威治平时(也称格林威治时间)。它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。GMT的历史格林威治皇家天文台为了海上霸权的扩张计划,在十七世纪就开始进行天体观测。为了天文观测
2021-02-23 16:48:36
5485
原创 禅道安装
linux一键安装包内置了XXD、apache, php, mysql这些应用程序,不需要再单独安装部署。一、安装禅道软件下载地址: http://www.zentao.net/download.html ,下载免费的开源版。1、将安装包直接解压到/opt目录下特别说明: 不要 解压到别的目录再拷贝到/opt/,因为这样会导致文件的所有者和读写权限改变, 也不要解压后把整个目录777权限 。sudo tar -zxvf ZenTaoPMS.7.3.stable.zbox_32.tar.gz -C
2020-11-06 18:57:55
472
1
原创 mangoDB4副本集搭建
一 安装mongodb4副本集模式1 规划IPportrole192.168.98.13127017PRIMARY192.168.98.13227017SECONDARY192.168.98.13327017SECONDARY2 下载 mongodb4.0版本地址:https://www.mongodb.com/try/download/community?tck=docs_server3 安装部署先在一个节点上安装,安装完了之后,对其余节点
2020-11-06 18:57:15
225
1
原创 elasticsearch7集群搭建
一、安装jdk11(es7必须使用jdk11)官网源码下载地址:https://www.oracle.com/java/technologies/javase-jdk11-downloads.html。[jdk-11.0.9_linux-x64_bin.tar.gz]1 解压安装包,重命名为jdk11tar -zvxf jdk-11.0.9_linux-x64_bin.tar.gzsudo mv jdk-11.0.9 /usr/local/jdk112 配置环境变量sudo vim /
2020-11-06 18:55:24
386
原创 应用级缓存
1缓存简介缓存是让数据更接近于使用者,目的是让访问速度更快。工作机制是先从缓存中读取数据,如果没有,再从慢速设备上读取实际数据并同步到缓存.那些经常读取的数据、频繁访向的数据、热点数据、 l / O 瓶颈数据、计算昂贵的数据、符合5分钟法则和局部性原理的数据都可以迸行缓存。2缓存命中率从缓存中读取的次数/总读取次数3缓存回收策略基于空间指设置了存储空间,如设置10M,如果存储空间达到10M,则按照一定的策略移除数据基于容量设定了最大条目大小,达到这个条目时,按照一定的策略移除数据基于时间
2020-10-27 11:25:46
208
原创 CAS ABA
ABA问题是指在CAS操作时,其他线程将变量值A改为了B,但是又被改回了A,等到本线程使用期望值A与当前变量进行比较时,发现变量A没有变,于是CAS就将A值进行了交换操作,但是实际上该值已经被其他线程改变过,这与乐观锁的设计思想不符合。ABA问题的解决思路是,每次变量更新的时候把变量的版本号加1,那么A-B-A就会变成A1-B2-A3,只要变量被某一线程修改过,改变量对应的版本号就会发生递增变化,从而解决了ABA问题。在JDK的java.util.concurrent.atomic包中提供了Atomic.
2020-09-25 14:58:10
114
原创 使用私有构造方法或枚举类实现单例
单例模式出现的问题:1 AccessibleObject.setAccessible反射可以调用私有构造方法2 反序列化会生成一个新的实例解决:1 防止反射调用的话可以修改私有构造函数,使其在请求创建第二个实例时抛出异常,且提供一个静态的公开的工厂函数。2 ObjectInputStream在反序列化的时候会检测 hasReadResolveMethod,如果单例类中存在readResolve方法,则调用,所以可以在单例类中加入这个方法,防止反射生成新的实例// readResolve meth
2020-09-23 17:21:34
311
原创 有三条关于优化的格言是每个人都应该知道的
比起其他任何单一的原因(包括盲目的愚蠢),很多计算上的过失都被归昝于效率(不一定能实现)。 —William A. Wulf [Wulf72]不要去计较效率上的一些小小的得失,在 97% 的情况下,不成熟的优化才是一切问题的根源。 —Donald E.Knuth [Knuth74]在优化方面,我们应该遵守两条规则:规则 1:不要进行优化。 规则 2:(仅针对专家):还是不要进行优化,也就是说,在你还没有绝对清晰的未优化方案之前,请不要进行 优化。—M. A. Jackson [Jackson75].
2020-09-23 16:36:56
794
原创 考试系统随机抽题方法
随机抽题是在线考试系统设计中的一个关键问题针对传统随机抽题过程中存在抽题效率低的问题,提出一种基于Random函数的随机索引抽题法该方法用一个数组来保存题库所有题目编号,通过随机函数Random生成一个10,数组元素个数-1]范围内的数组索引,接着把该索引位置对应元素值取出来,并把最后一个索引对应元素的值复制到当前位置,然后使随机数的上限减1,继续随机生成数组索引直到满足需要抽取的题目数量为止通过与传统的抽题方法进行比较证明该方法的有效性。http://www.doc88.com/p-3364975477
2020-09-03 10:02:39
3237
原创 java线程池运行流程
用户线程(ULT):不需要内核支持而在用户程序中实现线程,不依赖操作系统核心,应用进程利用线程库提供创建、同步、调度和管理线程得函数控制用户线程。另外,用户线程是由应用进程利用线程库创建和管理,不依赖操作系统核心。不需要用户态/核心态切换,速度快,操作系统内核不知道多线程得存在,因此一个线程阻塞,将使得整个进程阻塞。(操作系统感知不到内部创建的多个线程,当一个线程执行的时候,操作系统不会分配另外的...
2020-04-20 13:53:58
946
转载 算法的时间与空间复杂度
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。 时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。 空间维度:是指执行当前算法需要占用...
2019-11-18 17:34:25
154
原创 (闭锁)计数器、回环栅栏、信号量
import java.util.concurrent.CountDownLatch;/** * (闭锁)计数器,利用它可以实现类似计数器的功能, 比如有一个任务A,他要等到4个任务执行完毕之后才能执行,此时利用CountDownlatch可以实现 * @author jwt * @date 2019年11月16日 */public class MyCountDownlatch {...
2019-11-16 12:58:40
273
原创 HashMap的hash函数和下标计算
HashMap的hash方法如下 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); }对key进行了hashCode运算,得到一个32位的int值h,然后用h 异或 h>...
2019-09-24 18:16:44
2048
3
原创 阻塞队列生产者消费者
package com.reentrant;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class ArrayBlockingQueue<E> ...
2019-09-19 18:47:02
137
原创 单例双重校验锁
public class SingleDoubleLock { /*假设没有关键字volatile的情况下,两个线程A、B,都是第一次调用该单例方法,线程A先执行instance = new Instance(),该构造方法是一个非原子操作,编译后生成多条字节码指令,由于JAVA的指令重排序,可能会先执行instance的赋值操作, 该操作实际只是在内存中开辟一片存储对象的区域后直接返回...
2019-09-17 18:37:04
149
原创 基于注解的spring profile
pom文件 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.5.RELEASE</version> </depen...
2019-09-16 16:43:52
136
原创 生产者消费者
首先我要记录一下锁的相关知识点:x可以是this也可以是非this1 当多个线程同时执行synchronized(x){}同步代码块时呈同步效果2 当其它线程执行x对象中synchronized同步方法时呈同步效果3 当其它线程执行x对象方法里面的synchronized(this)代码块时也呈同步效果。如果其它线程调用x对象里的非synchronized方法时,还是呈异步效果。1 s...
2019-09-04 17:14:19
156
原创 设计模式之状态模式
状态模式状态模式允许对象内部状态改变的时候改变其行为。状态模式是对象的行为模式。状态模式就是把对象的状态封装在一个状态对象中,每个状态一个类。图如下:抽象的状态角色TcpState封装了一个特定的状态对应的行为;具体状态角色TcpEstablesedSate(已连接状态),TcpListeningSate(监听状态),TcpClosedState(关闭状态)代表了tcp连接的所有状态(模...
2019-09-03 19:22:15
401
原创 同步阻塞I/O
传统BIO通信服务端,由一个Acceptor线程监听客户端的连接,接收到之后为每个客户端建立单独的线程进行链路处理,处理完成后,通过输出流返回给客户端,线程销毁。这就是典型的一请求一应答通信模型。同步阻塞IO server端package com.nio.two;import java.io.BufferedReader;import java.io.IOException;impo...
2019-08-19 11:50:15
165
原创 effective.java.9 使用 try-with-resources 语句替代 try-finally 语句
当用java打开了一个外部资源(数据库连接、文件等)时,使用完毕后必须手动关闭它,因为外部资源不手JVM管理,如果不手动关闭它,就会导致文件被异常占用,数据库连接过多等问题。通常,try-finally语句是关闭外部资源最好的方式:public void test1(String path) throws IOException { BufferedReader br = new Buf...
2019-08-13 18:48:03
177
原创 effective.java.2 当构造方法参数过多时使用builder模式
通常情况下,构造方法的调用需要许多你不想设置的参数,但是你不得不为它们传递一个值。比如:NutritionFacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27);上边代码第四个参数传了一个默认值0,其实这个值没必要设置。这样很难编写客户端代码,而且很难读懂它。可以考虑使用下面的方式// Builder Patternpub...
2019-08-09 16:14:49
153
Opencv提取颜色范围
2023-01-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人