自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 资源 (6)
  • 收藏
  • 关注

原创 ​ES elasticsearch-analysis-dynamic-synonym​连接数据库动态更新synonym近义词

在很多搜索场景中,我们希望能够搜索出填写词的近义词的商品。例如在商品搜索中,我填写“”,希望能够搜索出“”,但“”商品名称因不含有“”无法搜索出来。此时就需要将“”解析成“”和“”,es的synonym,synonym过滤器就是提供了该功能,将词转为近义词再分词。如下,声明了一个分词器将“”和“”定义为近义词可以看到,“” 被分词成为了。这是因为在自定分词器中,我们将“瓠瓜”和“西葫芦”定义成了近义词“”,相当于先将“”转为“”和“”,再依次对近义词集合(也就是“”和“”)分词得到结果。

2023-04-13 19:44:04 1546 11

原创 关于minio 启动报错 Segmentation fault (core dumped)

原因是因为提供的包是不全的,可以通过。时间:2023-3-29日。下载minio程序包。

2023-03-29 10:56:15 538

原创 修改ik分词器源码实现直连数据库动态增量更新词汇

ik分词器直连数据库增量更新词汇

2022-12-14 21:24:36 1082

原创 Consul学习(一)—— 集群搭建

Consul下载地址:Downloads | Consul by HashiCorp参数说明:Configuration | Consul by HashiCorp一、介绍Consul是HashiCorp公司推出的开源软件,通过 GO 语言编写,提供服务注册和发现、配置、多数据中心的高可用方案等能力,分布式一致方面采用 raft 算法 实现,并且很容易和 Spring Cloud 等微服务框架集成,使用起来非常的简单,具有简单、易用、可插排等特点。简而言之,Consul 提供...

2022-04-13 11:14:17 4774

原创 记一次WebService优化(响应时间从300ms降到30ms)

优化结果:接口响应时间从300ms降到30ms,并且节约CPU和内存近10倍。一、背景及问题在公司的Mis系统中,服务调用使用的技术是WebService,但是每次在WebService添加一个方法,在调用方就要就要更新一次引用从而拿到调用方法,所以在6年前有一位前辈大佬为了提高大家的效率,写了一个名叫AllInOne的通用方法,这个方法只要给出类名和方法名就可以调用目标方法,是不是有点类似RPC,调用方再也不用为每次都要更新引用而头痛了。原理大家也都猜到了,就是使用了反射来调用目标方法。但是

2022-04-06 22:50:34 2315

原创 记一次WebApi与Grpc性能测试及对比

一、背景公司在做系统内部服务调用的技术选型,本次测试主要是分析WebApi和Grpc的性能。我将会从内存,CPU,网络传输,响应时间和TPS来分析。二、环境.Net Core 3.1Window 10三、测试工具Jmeter , WinDump , WireShark四、准备首先创建一个WebApi项目,Grpc项目用于提供服务。本次主要是做系统内部服务调用的技术选型,所以要再次创建WebApi项目来作为调用方。五、过程1. 由Jmeter发起并发请求给Web..

2022-04-04 19:20:13 1924

原创 Jenkin+GitLab自动构建Maven项目

认识jenkins摘自jenkins自动部署入门Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。CI/CD是什么?CI(Continuous in

2022-03-25 11:15:46 2261

原创 .Net Core根据环境读取不同配置文件 & Visual Studio灵活启动

在开发过程中,一个服务通常都有多个环境,所以每次调试或排查问题时都要手动更改appsettings.json或appsettings.Development.json里面的配置,非常麻烦。但是可以通过读取ASPNETCORE_ENVIRONMENT环境变量的不同来实现读取不同的配置文件。以下就是配置过程。目录根据ASPNETCORE_ENVIRONMENT读取指定文件Visual Studio设置根据ASPNETCORE_ENVIRONMENT读取指定文件1.首先创建几个自定义配

2021-12-05 20:45:32 1981

原创 c# .net WebService环境搭建及学习

公司的项目中用到了WebService,所以学习了一下net环境下的WebService搭建并且在此记录供大家学习参考。关于WebService的概念啥的我就不说了,直接进入主题以解决大家的刚需,嘿嘿。主要步骤创建服务,创建一个.net framwork web项目用来提供WebService服务调用服务,这里调用我写了两个案例,一个是.net framwork控制太调用,另一个是.net core web来调用。不过大体相似。创建服务...

2021-10-11 20:25:21 2992

原创 基于密钥认证加密传输的TCP通信模板 -- Golang,Java

问题来源最近在公司参与开发充电柜通信协议和迭代车辆通信协议。发现了一下几个问题:明文传输,没有任何加密机制 没有认证机制,后台是通过每一条指令的imei来识别哪一条设备。这样造成的后果就是每次处理上报指令都会在集合中寻找是否有该设备的连接对象,存在则对其进行替换。而在这个过程中,会对集合加锁。 且因为每种指令都有自增长的序号,在处理和应答上报指令的序号的过程中,又得再次从集合中取出对应得连接对象,这个过程又得加锁。再加上服务调用设备发送指令还是要加锁,而集合是一个全局变量,这样就导致了所有用户的

2021-04-15 09:54:36 755

原创 Golang的sync.Map源码解读

sync.Map源码解读说明:在map中,内部有两个map结构dirty和read.m 在查询过程中会优先从read.m中查询,并且对缺失计数misses加一。当misses达到dirty的长度时,会用dirty来替换read,并重置dirty为nil和misses为0。我称这个过程为缺失处理 再所有操作中,都会优先访问read.m再访问dirtytype Map struct { read atomic.Value // readOnly,存放一个readOnly mu Mut

2021-02-25 13:27:30 282

原创 MySQL常见的存储引擎MyISAM、InnoDB、MEMORY、Archive

MyISAM既不支持事物,也不支持外键。对事物完整性没有要求或以SELECT、INSERT为主的应用可以使用这个引擎创建表。每个MyISAM在磁盘上存储成3个文件,文件名和表名相同:.frm(存储表定义).MYD(存储数据,可创建表通过DATA DIRECTORY指定路径).MYI(存储索引,可创建表通过INDEXDIRECTORY指定路径)CHECK TABLE语句可以检查MyISAM表的健康,REPAIR TALBE修复。...

2020-10-03 05:06:58 485

原创 JVM--线程安全与锁优化--大致总结

我们可以将Java语言中各种操作共享数据分为五类:不可变、绝对线程安全、相对县城安全、线程兼容和线程相对。不可变:一个不可变的对象被正确的构建出来(即this引用没有发生逃逸),且保证对象的行为不会对其状态产生影响。绝对线程安全:不管运行环境如何,调用者读不需要任何额外的同步操作。相对线程安全:如java中的线程安全类,但也并不能说明一定是安全的。线程兼容:指对象本身并不是线程安全的,通过同步可以保证安全。线程对立:无法使用并发的代码,如Thread类的suspend和resume方法。线程安

2020-08-29 03:55:11 110

原创 JVM--Java内存模型与线程 --大致总结(二)

Java与线程实现线程主要有三种方式:使用内核线程实现(1:1),使用用户线程实现(1:N),使用用户线程家加轻量级进程混合实现(N:M)。1.内核线程内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操纵调度器对线程进行调度,并负责将线程的任务映射到各个处理器上。程序一般不会直接使用内核县城,而是使用内核线程的一种高级接口--轻量级进程,就是我们通常意义上的线程。由于每个轻量级进程都由一个内核线程支持,因此只有支持内核线程,才能有轻量级进程。它们的关系为1:1。轻

2020-08-27 03:41:21 128

原创 JVM--Java内存模型与线程 --大致总结(一)

Java内存模式java内存模型规定了所有的变量都存储在主内存中。每条线程都有自己的工作内存,线程的工作内存中保存了被该线程使用的变量的主内存副本,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存中的数据。不同的线程也无法直接访问对方工作内存的变量,线程间的变量值传递均需要通过主内存来完成。为了解决缓存不一致性问题,通常来说有以下2种解决方法:1)通过在总线加LOCK#锁的方式2)通过缓存一致性协议java内存模型中定义了一下8中操作,每一种操作都是原子的、不可再分的。

2020-08-26 04:08:58 183

原创 JVM--后端编译与优化--大致总结

如果我们把字节码看作是程序语言的一种中间表示形式的话,那编译器无论在何时、何种状态下把Class文件转换成与本地基础设施相关的二进制机器码,都可以视为整个编译过程的后端。即时编译器目前主流的java虚拟机内部都同时包含解释器与编译器。当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译的时间,立即运行。当程序启动后,随着时间的推移,编译器逐渐发挥作用,把越来越多的代码编译成本地代码,这样可以减少解释器的中间损耗,获得更高的执行效率。 解释器与编译器经常是相辅相成地配合工作。解释器还可以

2020-08-21 01:17:01 212

原创 JVM--前端编译与优化--大致总结

编译器分类前端编译器:javac之类,将java代码编译成字节码即时编译器:Hotspot的C1、C2等,运行期间把字节码编译成本地代码提前编译器:直接把java代码编译成字节码。javac编译过程(1)准备过程:初始化插入式注解处理器(2)解析与填充符号表过程。包括:词法解析:将源码中的字符流转换为标记集合的过程。 语法解析:根据标记序列构造出抽象语法树的过程,它的每个节点都代表一个语法结构。 填充符号表:符号表是由一组符号地址和符号信息构成的数据结构,它所登记的内容用于语义检查

2020-08-18 02:25:30 168

原创 JVM--虚拟机字节码执行引擎--大致总结

执行引擎在执行字节码的时候,通常会有解释执行(通过解释器执行)和编译执行(通过即时编译器编译成本地代码)public statci void main(String[] args){ { byte[] placeholder=new byte[64*1024×1024]; } System.gc();} 该代码调用gc后并没有回收placeholder的内存,原因是离开它的作用域后并没有发生对局部变量表的读写操作,变量槽还没有被其他变量复用,所以作为GC

2020-08-13 00:54:59 171

原创 JVM--虚拟机类加载机制--大致总结

类加载的生命周期:1.加载2.验证3.准备4.解析5.初始化6.使用7.卸载解析也可能在初始化之后进行,每个阶段通常都是交叉混合进行。对类初始化(主动引用)的6种情况:1.遇到new,getstatic,putstatic和invokestatic这4条字节码指令时,能生成这4条指令代码场景有:使用new实例化对象。 读取或设置一个类型的静态字段(非final)。 调用一个类型的静态方法。2.当类初始化,其父类未初始化时,会先将其父类初始化。3.当实现了默认方法(defau

2020-08-03 17:02:19 126

原创 JVM--垃圾收集器与内存分配策略--大致总结

以下是《深入学习java虚拟机》总结判断对象是否还存活?1.引用计数器算法在对象在添加一个引用计时器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器减1。缺点:两个对象内部相互引用了对方,当这两个对象的外部引用失效且内部引用还在引用,这是也会被判断这两个对象已死去。2.可达性分析算法从GC Roots的根对象为起始节点,根据引用关系向下搜索,如果过能够到达一个对象,则说明该对象存活;反之无法到达则说明该对象死去。要真正宣告一个对象的死亡,至少要经过两次标记:第一次发现对象没有

2020-07-24 13:37:35 138

原创 本人目前学习的所有编程知识

知识总结,不定时更新https://github.com/liulingjie888/code

2020-05-19 02:49:46 194

原创 关于Ubuntu扩展分区的工具GParted Partition Editor及一些好用的工具

最近安装了Ubuntu,发现这Linux系统真的比Windows系统好用,简洁反应又快,不知不觉爱上了这系统,但随着安装越来越多的软件,一开始分配的54G逐渐不够用,于是想像Windows系统那样通过压缩卷和扩展卷的方式来扩大Ubuntu系统分区。于是发现了这样一款工具,GParted Partition Editor !!!该工具我是通过Ubuntu的U盘启动盘发现的,类似与Windows的...

2020-03-04 17:51:27 1461

原创 java代码实现在Windows中自动连接WiFi(乞丐版)

之前在学校用校园网时每次开机自己都要连接WiFi然后手动登入校园账号,频繁的登入使我萌生了能不能用代码来完成这些操作。说动手就动手,但现在暑假不在学校无法查看校园登入的一些参数,于是打算先实现自动连接WiFi。之所以称它为乞丐版,是因为思路很简单,就是利用代码来执行命令台连接WiFi的命令。不过有一点要注意,我们连接的SSID必须要有对应的配置文件,一般我们成功连接过的WiFi会自动生成配置文...

2019-08-23 21:50:10 1896

原创 Android安卓应用实现QQ第三方登入

前天实现了网站的第三方QQ登入,今天在家贼无聊于是试着实现一下移动应用的第三方登入。我看了一下腾讯开发平台的SDK文档,其中有一部分无法看懂,不过我最终还是成功拿到用户的基本信息,所以没有继续专研(懒)。编写的例子已上传。下面我将自己的实现过程分享给大家。准备工作:(1)申请移动应用APP,和前天网站应用实现QQ登入的申请过程差不多,其中的应用包名和签名可以用AppManager获取:将...

2019-08-18 11:18:35 660

原创 javaweb应用网站实现第三方QQ登入过程

腾讯开发文档入口今天实现了web应用第三方QQ登入,由于我当时只看了开发文档中实现登入的流程,没有看SDK中的demo,所以SDK中的工具我没有用到。其实只要知道流程,完全可以不借助它的SDK也能实现第三方登入。当然,既然是别人自家开发的,用起来一般比我们自己编写要高效得多。下面我就将实现的流程及遇到的问题分享一下,由于代码涉及到个人应用私密信息故没有上传,望谅解下面五步是准备工作:第...

2019-08-15 23:18:53 2874 1

转载 IntelliJ IDEA部署远程Tomcat的方法及如何处理1099端口问题

首先说一下我的相关信息服务器:CentOS服务器Tomcat版本:Tomcat7Tomcat安装路径:/usr/local/tomcat首先我们要保证服务器的Tomcat正常访问第一步:第二步:第三步:(点击Remote staging中的Host右边的. . .进入,这个是创建并测试远程服务器连接的,创建好后选择该Host)第四步:...

2019-08-11 23:41:53 2286 3

原创 Tomcat手动部署web应用

首先我们看一下web应用的目录结构:按照结构创建好各目录后,接下来我们只要做两件事:将servlet编译成的class文件文件放到classes目录下 ( class文件要用到的jar包放到lib目录下 ) 在web.xml中设置好相关的配置,重启!第一步:我们写一个简单的servlet,HelloWorldServlet.java:package jsp.servlet;...

2019-08-03 17:08:53 401

原创 关于Tomcat7.0设置主页面问题

(1)首先找到安装目录,将你要设置成主页的文件放到appwebs/ROOT下(记住是ROOT目录下,不是在appwebs下,这简直就是坑爹呀)(2)打开conf文件夹下的web.xml,移至文件末尾,如图在<welcom-file-list>标签中加入自己想设置成主页的文件名,保存退出;PS:访问主页时它会按照设置的顺序去寻找主页资源,如果找到就会返回给用户(3)然后重...

2019-07-31 23:38:39 276

原创 CentOS7自带的JDK位置

今天装了一个CentOS系统,发现自带JDK,在设置环境变量时却不知道JDK安装在哪了,找了一段时间原来在/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64希望能帮到你我是程序小白,每次进步一丢丢。...

2019-07-09 20:46:55 5042 1

原创 云服务器CentOS7安装图形界面与远程连接,超简单

安装图形界面1.安装图形用户界面接口X Window Systemyum groupinstall "X Window System"2.安装图形用界面gnomeyum groupinstall "GNOME Desktop"完成以上操作,我们还要借助vnc工具来远程连接桌面1.安装服务端vnc vncserver安装yum -y install tigervnc-server...

2019-07-09 11:36:00 12294 4

转载 NAT基本原理及应用

原文出处:http://www.cnblogs.com/derrick/p/4052401.html?utm_source=tuicool&utm_medium=referral#undefined原文出处:https://blog.csdn.net/u013597671/article/details/74275852NAT有三种类型:静态NAT(Static NAT)、动态地址NA...

2019-06-23 15:17:44 259

原创 android编程中清单权限大全

android编程中权限大全允许程序打开网络套接字<uses-permission android:name="android.permission.INTERNET"/>允许程序读取短信息<uses-permission android:name="android.permission.READ_SMS"/>允许程序监视、修改有关播出电话<uses-...

2019-06-14 15:57:06 544

原创 phpMyAdmin mySQL密码忘记如何找回

phpMyAdmin mySQL密码忘记如何找回1.找到mySQL安装目录下的my.ini文件,用文本打开,找到 [mysqld] 在下面加入 skip-grant-tables,保存退出。2.点击电脑右键–管理–服务,找到mysql服务,重启该服务;3.在mySQL/bin下打开命令窗口(工作目录进入到mySQL/bin下),输入以下命令进入到mysql命令模式;mysql -ur...

2019-06-05 20:13:32 827

​elasticsearch-analysis-dynamic-synonym​连接数据库动态更新近义词

​elasticsearch-analysis-dynamic-synonym​连接数据库动态更新近义词

2023-04-13

elasticsearch-analysis-ik-7.17.6实现动态增量更新词汇

elasticsearch-analysis-ik-7.17.6实现动态增量更新停用词

2023-04-12

WebService压测结果

WebService压测结果

2022-04-14

Grpc和WebApi性能测试用例

Grpc和WebApi性能测试用例

2022-04-04

autoLogin.zip

通过该项目在Windows可以实现WiFi的自动连接,java代码

2019-08-23

javaWeb.zip

网站应用实现第三方QQ登入,获取用户基本信息。哈哈哈

2019-08-18

QQLogin.zip

QQ登入实现例子,获取用户基本信息

2019-08-18

sdk4j_demo.zip

javaWeb应用实现QQ第三方登入,java SDK。哈哈哈哈哈哈

2019-08-15

空空如也

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

TA关注的人

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