自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 资源 (4)
  • 收藏
  • 关注

原创 java对JSON字符串差异化对比

对json字符串进行差异化比较,含有数组对比

2023-02-19 00:53:59 2378 1

原创 Redis应用问题及分布式锁

文章目录缓存穿透现象原因解决方案缓存击穿现象特点原因解决方案缓存雪崩现象原因解决方案Redis实现分布式锁分布式锁实现方案Redis实现分布式下锁误删除出现情形解决方案Redis分布式锁——加锁释放锁的原子性优化造成问题解决方案缓存穿透现象应用服务器压力变大了,很多请求过来redis命中率降低一直查询数据库(缓存中很多数据查询到,就查数据库,导致数据库压力增加)原因Redis查询缓存中不存在的数据出现很多非正常的url访问,一般出现在收到恶意攻击的时候,根据正常的url来改变值来恶意攻

2021-12-13 15:28:22 883

原创 Redis主从复制搭建、哨兵搭建、集群搭建

文章目录主从复制搭建步骤(例子:一主两从)主从模式服务故障一主二从情形情形一:某个从服务器挂掉情形二:主节点挂掉薪火相传反客为主主从复制原理哨兵模式搭建流程缺陷——复制延迟Redis集群搭建步骤Redis cluster如何分配这六个节点关于slot槽的分配的情况说明故障恢复主从复制此模式的优势:读写分离,性能扩展;容灾快速恢复搭建步骤(例子:一主两从)首先定义一个目录便于后期区分主从,单节点服务,集群模式。我就在//home/scene/installPackage目录下定义了一个redis-m

2021-12-13 15:19:21 1110

原创 Redis安装及5中常用类型简单使用

文章目录Redis安装安装gcc安装gcc-c++离线(内网)安装RedisRedis简介使用Redis键操作字符串数据结构List类型数据结构Set类型数据结构Zset类型数据结构哈希(Hash)类型数据结构Redis发布和订阅实现消息队列功能Redis安装安装gcc首先查看有没有安装GCC,使用gcc --version指令查看,若没有显示gcc的版本则需安装可以使用简单的yum方式的安装,若安装gcc的时候有冲突则需要手动下载rpm包安装下载gcc的rpm包,然后使用rpm -ivh gc

2021-12-13 15:07:09 982

原创 离线安装yum,配置yum源

离线安装yum,配置yum源下面是基于centos7的步骤首先从镜像http://mirrors.163.com/centos/7/os/x86_64/Packages/下载文件python-iniparse-0.4-9.el7.noarch.rpmyum-3.4.3-168.el7.centos.noarch.rpmyum-metadata-parser-1.1.4-10.el7.x86_64.rpmyum-plugin-fastestmirror-1.1.31-54.el7_8.noarch

2021-12-13 14:32:07 3344

原创 MySQL主从复制——概述及搭建

文章目录复制概述复制原理复制优势搭建步骤masterslave复制概述复制时将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在库上对这些日志重新执行(也叫重做),从而使得从库和主数据库的数据保持同步MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制复制原理具体操作分为三步Master主库在事务提交时,会把数据变更作为时间Events记录在二进制日志文件binlog中主库推送二进制日志文件binlog中的日志事件到从库的中继日志

2021-12-05 15:23:21 109

原创 MySQL——B+Tree、索引及使用时优化

MySQL介绍、索引、BTree介绍

2021-12-03 16:32:10 1119

原创 MySQL8安装卸载——windows版本

这里写自定义目录标题MySQL卸载旧版本步骤MySQL8.0安装步骤——解压缩安装MySQL5.7与8的区别MySQL卸载旧版本步骤停止mysql服务,windows搜索服务,找到mysql关闭打开系统自带的控制面板卸载功能,卸载mysql卸载mysql(此方式适用于msi方式安装的,和安装一样的步骤,只不过选择remove即可)如果是解压缩安装的,cmd管理员执行指令sc delete mysql删除mysql安装文件夹删除C:\ProgramData\MySQL下的mysql文件夹删除

2021-11-26 16:06:45 1052

原创 开机使用脚本批处理打开软件

日常办公,公司的工位的电脑性能。。。电脑开机后还要我手动一个个去点击打开一堆软件,办公聊天软件、浏览器、编辑工具、数据库连接工具、xshell等,墨迹了半天很不爽。作为程序员的我们,得搞个脚本省省力气,电脑开机后,自动执行脚本,让脚本去打开软件,这个时候,我们去倒杯水,WC里面“摸摸鱼,冷静冷静,思考人生”,然后回来,正好软件都已打开,无需等待一般公司配置的都是windows环境的,并且基本是win7以上的环境了,此处是基于win7的(win7及以上可用)编写一个bat后缀的脚本@ECHO O

2021-11-18 10:57:24 2901

原创 curl调用单笔接口结合shell循环实现批量操作

shell脚本相关获取年月日时分秒来设置请求的时间echo $(date +%Y%m%d%H%M%S)请求中的随机数生成,根据请求报文格式得知

2021-11-15 16:15:53 3744

原创 java优雅停机说明及springboot2版本后的单体优雅停机方案

之前搭建过jenkins发版项目,启动脚本中的判断进程是否存在,然后杀死进程的方式是kill -9的,这样的做法是很不优雅的,执行复杂的业务的时候突然中断可能导致一系列的问题。哎,包括我目前所在的公司处理生产的重启也是这样,我想到了之前无意中看到的优雅停机的方式项目已上传giteehttps://gitee.com/gangye/springboot_mutiDemos/tree/shutdown-gentle-branch/常规的java项目优雅停机Java语言本身是支持优雅停机的,先写一

2021-09-04 16:03:04 778 1

转载 elasticsearch 插件开发-自定义分词方法

自定义elasticsearch插件实现1 插件项目结构这是一个传统的maven项目结构,主要是多了一些插件需要的的目录和文件plugin.xml和plugin-descriptor.properties这两个是插件的主要配置和描述pom.xml里面也有一些插件的配置pom.xml文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" .

2021-09-04 09:36:53 615

原创 多线程情形下,日志链路traceId、spanId的传递

创建线程池异步调用服务的情形中,子线程在打印日志的过程中traceId将丢失解决思路:重写线程池,对任务进行一次封装,在调度任务的之前将链路塞入MDC。几乎所有的情形下很少会new线程池(及其不推荐使用),自带的创建线程池的方案也不推荐使用,阿里巴巴开发手册推荐创建线程池的方案是使用ThreadPoolExecutor创建线程池,线程池创建大小,自定义名称,自定义拒绝策略等优点在此不多赘述直接上代码:import com.csrcb.constants.MyConstant;impor.

2021-08-23 10:30:34 6812

原创 MDC实现RestTemplate、okHttp的请求方式日志traceId链路跟踪

MDC

2021-08-20 10:49:47 1195

原创 spring-cloud-sleuth及自定义日志链路traceId、spanId跟踪

在上文ELK日志集成中讲到了日志的排查方法,现在聊聊使用spring-cloud-sleuth和MDC+拦截器两种方法操作traceId实现全链路调用日志跟踪方法一:直接使用spring-cloud-starter-sleuth进行日志链路跟踪在pom.xml文件中直接配置依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <arti.

2021-08-17 18:12:12 7477 2

原创 ELK日志集成(filebeat+kafka+logstash+elasticsearch+kibana)

1、日志文件准备首先日志集成json格式,这个在我搭建的项目案例中的logback-spring.xml中有过配置如何将日志转成json格式,具体参考gitee项目的logback-spring.xml配置,也可参考之前写过的一篇文章。2、安装filebeat在应用启动的机器上安装filebeat,将日志推送到kafka集群中...

2021-08-12 11:54:44 919

原创 Kafka集群搭建

首先准备工具zookeeper和Kafka安装包zookeeper官网下载wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gzKafka官网下载wget https://archive.apache.org/dist/kafka/1.1.1/kafka_2.11-1.1.1.tgz

2021-08-11 14:10:27 533

原创 Java远程代码调试及JVM监控

远程代码调试1.首先在启动命令中配置调试参数,借助上篇文章中的启动方式,加上参数备注:不同的JDK版本是不同的配置的###1.3及之前版本-Xnoagent -Djava.compiler=NONE -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7070###1.4版本-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7070

2021-08-02 19:04:32 376

原创 Jenkins+Maven+Git实现自动化持续集成部署

若需打包到远程服务器,需配置系统设置,指定远程的机器,在Manage Jenkins中找到Configure System,然后找到Publish over SSH,点击新增,自定义机器名,指定ip地址及目录和账号密码指定全局的git以及maven配置,在System Configuration的Global Tool Configuration下配置git的安装路径,一定要精确到bin/git设置maven,使用jenkins服务器已安装好的maven然后创建一个任务...

2021-07-27 21:20:25 703 2

原创 Java与Elasticsearch的API实现工具类(三)——聚合查询、多字段分组聚合、游标查询

相关代码已上传gitee仓库https://gitee.com/gangye/elasticsearch_demo

2021-06-17 15:44:44 1262 2

原创 Java与Elasticsearch的API实现工具类(二)——增删改,以及批量插入

接着上面的项目,添加工具类的方法一、向es的指定索引中新增文档 /** * @Description 单条记录插入 * @param indexName * @param sourceMap 传入的记录的键值对 * @return */ public static Map<String, Object> singleInsert (String indexName, Map<String, Object> s

2021-06-17 14:06:45 852 1

原创 Java与Elasticsearch的API实现工具类(一)——条件查询

首先搭建一个项目,引入pom依赖,此处我是用maven搭建一个web项目,使用主流的sprongboot,但是es的api操作使用的是原生态的,没有使用spring自带的,便于使用,直接xiecheng

2021-06-15 21:12:56 2293 3

原创 ES的复杂查询(二)——聚合、分组

ES的聚合查询(SUM、MAX、MIN、AVG)1.求和查询例如查询cust_name_s为张三的txn_amt_d的和,sql语句是select sum(txn_amt_d) as sum_number from trade_info.csrcb where cust_name_s = '张三'对应的es的查询就是(此处与sql中的sum一样,也有起别名以及聚合方式的参数,其中的aggs可以写全,写成aggregatins)curl -XPOST "http://192.168.2

2021-03-11 20:05:37 15032 3

原创 es的复杂多条件查询(一)——match、term、bool

match系列操作1.match查询(1)使用get请求的方式URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。(详情解释参考https://www.cnblogs.com/xiaojiulin/p/10598658.html)因此我将张三字符串先url编码(使用utf8)得到%e5%bc%a0%e4%b8%89,然后结合curl发起get请求curl -XGET "http://192.168.236.131:9200/trade_info/csrcb/_se

2021-03-11 10:47:59 22572

原创 Elasticsearch的分词介绍及中文分词的安装

es的复杂多条件查询1.根据条件查询类似于select * from trade_info where cust_name_s = '张三'(1)使用get请求的方式URL只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。(详情解释参考https://www.cnblogs.com/xiaojiulin/p/10598658.html)因此我将张三字符串先url编码(使用utf8)得到%e5%bc%a0%e4%b8%89,然后结合curl发起get请求curl

2021-03-05 13:17:40 336

原创 ElasticSearch的使用

传统的关系型数据库与elasticsearch的对比 Relational DB Elasticsearch 数据库(database) 索引(index) 表(table) type 行(row) document 字段(column) field 文档的元数据一个文档不仅仅只有数据,还包含了

2021-02-05 16:04:57 276

原创 Elasticsearch安装部署及集群搭建,使用elasticsearch-head工具

安装部署Elastichead1.到官网下载安装包(不同版本的需要的jdk版本是不同的,我的服务器是jdk8,下载使用了别的版本)https://artifacts.elastic.co/downloads/elasticsearch2.将下载好的安装包解压至自定义的目录下tar xvzf elasticsearch-6.8.7.tar.gz -C /server/由于使用root用户启动会报错,因此创建别的用户启动创建用户组esgroup,创建组下成员esuser,并将.

2021-01-12 15:18:41 444 1

原创 linux下安装tar文件的mysql5.7

一、到官网下载安装包可以选择使用rpm的文件安装或者使用tar文件安装https://downloads.mysql.com/archives/community/此处我是用的是tar文件安装若使用rpm安装,参考这篇博客https://www.cnblogs.com/lzhdonald/p/12511998.html二、安装1.首先查看是否已经安装异步IO接口libaiorpm -qa|grep libaio若未安装使用yum安装下yum -y instal

2020-12-31 11:25:21 294

原创 第一次自我编程解决生活中实际遇到的问题——满满的成就感

前段时间参加了一场考试,考试的成绩分数下来,当时有过想法去写的代码监听考试成绩的公布,以及调用下微信公众号通知服务,通知自己的成绩公布时间,然后懒得写,现在成绩公布通过,填写证书的邮寄地址后,需要漫长的时间等待官方证书制作,以及证书邮寄状态,以及官方提供我的证书邮寄单号信息(因为我的证书地址填写的是老家的地址),我不可能每天登录查看自己的证书以及邮寄状态,因此编写个程序去监听自己的证件邮寄状态,然后微信公众号和邮箱双重提醒一、准备微信公众号以及微信通知的服务微信测试公众号向关注的ID发送信息步骤:

2020-12-25 13:13:16 1702 2

原创 2020年度总结——毕业一年多不算太认真,思想不算太深刻的小结

周一突然接到一个小任务,让写一份年终总结,当时下意识的想法就是这种任务哎呀小意思啦,到时候在网上随便找几份文章模板,随便改改然后完成任务。不想自己认真写,毕竟毕业一年多,上次写这种报告的时候还是写毕业论文的时候吧,手都生了。上网浏览了一两个网站,看了两三篇模板,那写的一看就是应付式的模板,全是套话空话。后来想起以前看到一篇文章《应届毕业生工作7个月小结》再看看那位博主最近的文章分享,有篇文章谈到了其职业近况,再联想我个人的状况,一样都差不多,那位同行也是去年毕业然后年底职业有所变动,看到别人...

2020-12-18 10:54:20 171 1

原创 常规服务器部署,java,maven,tomcat,git,jenkins的安装

在此之前推荐安装一个小工具wget,后期下载文件可以直接通过指令下载,无需下载到本地在上传到服务器1、查看是否安装:rpm -qa|grep "wget"如果已安装会显示wget相关信息2、安装wget:yum -y install wget一、安装JDK参考我之前的一篇博客https://blog.csdn.net/xibei19921101/article/details/103958459二、安装Tomcat1.到官网下载tomcat复制超链接,然后

2020-12-02 10:41:12 125

原创 SpringCloud简介及微服务Eureka服务注册发现

SpringCloudSpring Cloud是一系列框架的有序集合,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud微服务工具包为开发者提供了分布式系统中的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发工具包。它的各个项目基于Spring Boot,将Netflix的多个框架进行封装,并且通过自动配置的方式

2020-09-27 15:08:58 304

原创 Dockerfile的使用以及docker部署java项目

DockerFile定制一切docker可以利用简单的编写程序构建出任何你想要的环境,同时可以跟业务代码相结合,快速构建和生成所需要的应用。Dockerfile用来创建一个自定义的Image,包含了用户指定的软件依赖等。使用Docker的build命令可以直接构建新的Image。它简化了从头到尾的流程并极大地简化了部署工作。一、Dockerfile语法Dockerfile语法由两部分构成:注释和命令+参数简单示例:构建一个简单的镜像Dockerfile可以将文件名字设置为Docker

2020-09-03 16:09:42 19500 10

原创 maven项目打包部署到服务器上

创建一个maven项目,在本地工程依赖jar包启动完成后,是不够的,还需将项目文件使用maven编译打包然后部署到服务器上主流的springboot项目打包的时候需要在pom文件中指定主方法等配置解决打包部署的时候报错no main manifest attribute, in ..jar <build> <plugins> <plugin> <groupId>org.

2020-09-03 15:49:13 10109 2

原创 Docker的简介与使用(一):镜像、容器、仓库

一、镜像(Image) Docker Image是需要定制化Build的一个“安装包”,包括基础镜像+应用的二进制部署包。这是一个没有运行的容器,或者说是没有启动的应用。类似一个模板,基于这个模板,可以构建出我们需要的环境。比如我们需要一个Java的运行环境,那么这个镜像中就需要有基础操作系统、JDK的环境,如果是Web应用,就需要有Tomcat的支持,当然也可以直接运行SpringBoot,用它内嵌的Tomcat。 镜像是分层的,也就是说,我们可以按照需求向上叠加。1.搜索镜像,例...

2020-09-01 16:16:26 205

原创 CentOS下安装docker的两种方式

1.安装环境,查看CentOS的版本,在CentOS7安装docker要求系统为64位,且系统内核版本为3.10以上分别使用指令查看CentOS的版本及系统位数还有内核版本cat /etc/redhat-releaseuname -r安装docker一、使用yum安装1.查看是否已经使用yum安装过docker若有,卸载旧版本(...省略号为显示的文件名)yum -y remove …卸载后保留/var/lib/docker的内容(镜像、容器、存储卷和网络等)

2020-09-01 14:53:44 2755

原创 多线程将多个互不相关的服务串行优化为并行

前言问题:最近个人在做手机银行的资产负债项目的时候遇到了问题,就是,用户资产计算逻辑业务复杂繁多,各中心服务数据透传统计,有的服务不相关,使用串行的效果极为不理想,响应速度太慢,生产压测有的响应需要近一分钟问题简介:现在有一个计算业务,需要将A方法的返回值+B方法的返回值+C方法的返回值,然而ABC三个互不相关,传统的串行方式为执行A获取返回值,执行B获取返回值,再执行C获取返回值,最后再将A、B、C的返回值做计算得到结果。那如果,A服务平均耗时8秒,B服务平均耗时5秒,C服务平均耗时3秒,那样串行就是

2020-08-25 16:11:39 342

原创 SpringBoot整合RabbitMq实现生产者、消费者,RabbitMQ的简单介绍

安装RabbitMQ此处环境为windows下测试案例使用,故整体是在windows下搭建的环境1.首先下载安装Erlang下载路径https://www.erlang.org/downloads,双击下载文件选择安装路径为Erlang设置环境变量在环境变量path中添加D:\software\javamq\erl10.0.1\bin(路径为安装路径的bin)打开cmd指令,输入erl -versionerl此时,表示erlang安装成功2.下载

2020-08-21 10:16:39 13792 2

原创 springboot项目日志打印,日志文件保存logback-spring.xml相关配置

一、引入pom依赖<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>4.11</version></dependency>二、在项目的resource目录下创建logback-spring.xml文件在

2020-08-10 14:16:39 1326

原创 java读取properties文件将参数值配置到静态变量

将test.properties的文件读取赋值给静态变量创建一个final类可以两种方式读取test.properties配置文件第一种:此方法可以写配置文件的绝对路径InputStream is = new BufferedInputStream(new FileInputStream(new File("F:\\java\\idea-workspace\\javaDemoForTest\\src\\test.properties")));第二种:此时test.properti.

2020-07-14 17:19:29 2419

java语言学习知识点总结

java语言基础,按照顺序整理的一套word资源,没有可惜没有准备视频资源

2020-12-25

springbootCornTask.zip

springboot整合quartz实现数据库单表配置定时任务,利用反射以及依赖注入实现定时任务的调度

2020-03-21

通讯录管理系统

java 通讯录管理系统 含代码 课程设计报告

2013-01-07

java课程设计

java课程设计通讯录管理系统 代码 设计界面

2013-01-07

空空如也

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

TA关注的人

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