自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(215)
  • 资源 (5)
  • 收藏
  • 关注

原创 2020JAVA面试题附答案(长期更新)

最新更新日志2018年12月28日:更新了springboot相关面试题, spring更多的内容(类别:开源框架)2019年11月14日:更新redis缓存雪崩,击穿,穿透相关面试题,更新了tomcat调优相关问题,更新了TCP三次握手四次握手问题JAVA基础JAVA中的几种基本类型,各占用多少字节?下图单位是bit,非字节 1B=8bitString能被继承吗?...

2018-05-17 22:53:57 119195 34

原创 CountDownLatch的使用

1. 他是什么?A synchronization aid that allows one or more threads to wait untila set of operations being performed in other threads completes.

2021-06-17 15:45:32 1

原创 MYSQL扣除余额,扣除库存的SQL

1. 需求:扣除余额,或者库存(一般先扣缓存,再扣库存, 库存扣除失败,回滚缓存,redis的incr语句),满足高并发需求2. 设计SQL示例sql, 这边以扣除余额为例(无缓存),mysql会根据id进行行锁处理,高并发下没有问题 update xxx_account set balance = balance - #{chargeCost} , day_balance = day_balance - #{ch

2021-05-19 16:10:55 42

原创 Java记录一次百万级别数据扫表统计的任务

一. 需求:统计近200万商家数据, 每日通过查询计费系统更新其余额二. 技术栈:抛开分布式定时任务系统Elastic-Job之外, 我们先优先把单系统极限优化挖掘出来, 由于博主接手的是14年的老项目, 本地甚至都无法启动,所以不尝试用高级玩法(数据分片, 消息中间件).1. Java1.72. Mysql数据库5.7三. 思路分析:流程如下1: 扫表几百万数据表的扫表面临的问题很简单, 当我们分页查询到百万级别以上(甚至几十万)的时候limit 800000, 1

2020-11-24 10:53:47 612

原创 Mysql百万数据扫表优化

一、大数据量分页查询方法:1、直接使用数据库提供的SQL语句  语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N  适应场景: 适用于数据量较少的情况(元组百/千级)  原因/缺点: 全表扫描,速度会很慢,且有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3),Limit限制的是从结果集的M位置处取出N条输出,其余抛弃。//是用limit函数//取前5条数据select * from table_nam.

2020-11-24 10:11:49 425

原创 Java生成导出Word

先给出官网链接,方便各位博友深入了解http://deepoove.com/poi-tl/里面有demo和详解,我这边就不说了

2020-11-06 18:35:31 598

原创 Java下载工具类

1. 本工具类包括预览, 打包下载, 下载 package com.zjrc.epidemic.util;import com.zjrc.epidemic.fastdfs.FileInfo;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.util.CollectionUtils;import org.springframework.web.context.request.

2020-11-06 14:56:39 280

原创 AES加密工具类AESUtil

本文工具类针对的是Java环境下, AES对称加密的工具类, 包括加密和解密package com.alicom.flow.util;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64;/** * * @author zhouzhou * 2020-9-29 15:27:42 * */public clas

2020-10-15 14:32:45 892 1

原创 史上最全的日期工具类DataUtil(长期更新)

直接放代码了,里面的方法都有注释package com.zjrc.epidemic.utils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.context.i18n.LocaleContextHolder;import java.math.BigDecimal;import java.sql.Time;impor

2020-10-15 10:59:41 336

原创 Elasticsearch(十三) ElasticSearch搜索附近的人

需求: 通过指定点搜索附近的人 , 要求可以过滤年龄, 结果按照距离进行排序, 并且展示她/他距离你多远本文参考:es官网文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/sorting-by-distance.htmlSpring官网文档:https://docs.spring.io/spring-data/elasticsearch/docs/4.0.3.RELEASE/reference/html/#new-f..

2020-08-21 10:23:06 617 3

原创 Elasticsearch(二) Elasticsearch中的Mapping映射, 更新mapping和添加mapping

一. 核心简单字段类型Elasticsearch 支持如下简单域类型:字符串:string 整数 :byte,short,integer,long 浮点数:float,double 布尔型:boolean 日期:date二. 复杂类型:多值字段很有可能,我们希望tag域包含多个标签。我们可以以数组(List)的形式索引标签:{ "tag": [ "search", "nosql" ]}Java表示 List<String> tag...

2020-08-20 16:55:04 320

原创 Elasticsearch(二) Elasticsearch简介及核心概念倒排索引

一. 我到底能够使用 Elasticsearch 做什么?通过 Elasticsearch,您能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标),搜索方式随心而变。先从一个简单的问题出发,试试看能够从中发现些什么。 作为一个分布式搜索服务1. 它可以进行快速进行全文搜索2. 可扩展性: 支持PB级别数据的存储,以及成百上千的集群3. 大数据处理, 数十亿行日志的聚合处理4. 通过相关度(_score)对所有内容搜索基于各项元素(从词频或新近度到热门度等)对搜索.

2020-08-20 16:37:22 209

原创 ElasticSearch(七)高级排序(多级排序, 多值字段排序)

排序为了按照相关性来排序,需要将相关性表示为一个数值。在 Elasticsearch 中,相关性得分(_score)由一个浮点数进行表示,并在搜索结果中通过_score参数返回, 默认排序是_score降序。注: filter不参与评分.1. 按照字段排序(评分机制取消)只有字段排序会使评分机制取消.GET /_search{ "query" : { "bool" : { "filter" : { "term" : { "use...

2020-08-17 16:44:31 7683

原创 ElasticSearch(六)组合多查询(must, should, must_not, bool, filter)

组合多查询现实的查询需求从来都没有那么简单;它们需要在多个字段上查询多种多样的文本,并且根据一系列的标准来过滤。为了构建类似的高级查询,你需要一种能够将多查询组合成单一查询的查询方法。你可以用bool查询来实现你的需求。这种查询将多查询组合在一起,成为用户自己想要的布尔查询(Bool)。它接收以下参数:1.must文档必须匹配这些条件才能被包含进来。相当于sql中的 and2.must_not文档必须不匹配这些条件才能被包含进来。相当于sql中的 not3...

2020-08-17 16:17:52 4454 1

原创 ElasticSearch(五)常用查询关键字解读(match, term, range,terms)

本博文参考了官方文档:https://www.elastic.co/guide/cn/index.html虽然 Elasticsearch 自带了很多的查询,但经常用到的也就那么几个。1. match 查询无论你在任何字段上进行的是全文搜索还是精确查询,match查询是你可用的标准查询。如果你在一个全文字段上使用match查询,在执行查询前,它将用正确的分析器去分析查询字符串:{ "match": { "tweet": "About Search" }}Java代码...

2020-08-14 14:42:21 2863

原创 SpringBoot集成RocketMQ(附带集成工具类)

1. pom文件引入rocketmq的client端依赖 <!--rocketmq--> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.3.0</ver

2020-08-11 10:05:56 1153

转载 Docker安装RocketMQ

https://blog.csdn.net/W_317/article/details/104556265

2020-08-11 09:58:47 1272

原创 ElasticSearch(八)ElasticSearch与Mysql同步数据解决方案

ES数据和数据库数据如何同步整合?1. canel的通道是利用mysql的bin_log同步2. 通过消息队列同步,优势失败重试机制保证100%同步成功本文介绍通过RocketMq消息队列同步:首先是架构思路图:CRUD操作与我们的平时一样,但是在CRUD操作后我们会向RocketMq服务器事先定义好的Topic发送消息, 注意:Topic是同一个, 根据不同Tag来判断是什么类型的操作(新增, 删除, 更新), 废话不多说直接看代码github地址:1. 准备RocketM

2020-08-10 18:13:57 1211 3

原创 ElasticSearch(三)ElasticSearch7.8.0集成Springboot

本文ES版本为7.8.0 兼容很多新版本,代码都经过测试, 无坑, 大家放心食用1. 准备环境工作安装ES环境, 安装IK分词器,见博文:https://rourou.blog.csdn.net/article/details/1010614082.MAVEN依赖由于es各个版本变化很大,所以在选择依赖的时候要尤为注意!!!我们可以通过spring的官方网站来进行查询版本对应的信息https://docs.spring.io/spring-data/elasticsearch/d..

2020-08-03 18:20:46 3050 3

原创 ElasticSearch(四)spring-data-elasticsearch @Field注解无效,最完美解决方案

前言我看了一大堆博客和资料大多是说这个spring的bug, 然后通过一个.json的配置文件去加载,我也是真的笑了, 本来注解就是方便开发,取消配置文件的功能, 结果解决方案却是本末倒置, 这里我奉献出最正确的解决方案一. 准备实例代码这是实体类代码,及其注解package com.gupao.springbootdemo.bean;import lombok.Data;import org.springframework.data.annotation.Id;import org

2020-07-31 11:13:53 7486 8

原创 ElasticSearch(二)Docker安装ElasticSearch中的IK分词器

docker 安装ElasticSearch传送门1. 确认ES版本,去github上下载正确版本的IK分词器github地址:https://github.com/medcl/elasticsearch-analysis-ik然后通过下载页.下载zip包https://github.com/medcl/elasticsearch-analysis-ik/releases2. 通过docker命令将zip包复制到ES容器指定位置docker cp /tmp/elast...

2020-07-28 10:09:47 335

原创 SpringBoot整合Docker一键部署

1.准备工作一个springboot工程 拥有docker环境的linux服务器2.编写DockerFileFROM openjdk:8-jre-alpineENV SERVICE_NAME springboot-demoENV OPS " -server -Xms256m -Xmx256m -Xss256k"COPY ${SERVICE_NAME}-0.0.1-SNAPSHOT.jar /${SERVICE_NAME}.jarENTRYPOINT java -jar ${OP.

2020-07-24 14:17:52 527

原创 Springboot整合Alibaba Cloud Toolkit一键远程部署

1. 开发环境,IDEA,安装Alibaba Cloud Toolkit在Plugins中搜索Alibaba Cloud Toolkit, 下载并且安装2. 远程服务器准备一台远程服务器, 这台服务器必须安装java环境.3.配置工具配置部署方式 如图配置好你的配置信息其中ip就是我们目标部署的服务器, 可以设置多台Target Directory 是将打好的jar包上传到服务器那个位置After Deploy: 则是上传jar包后, 服务器执行的命令点击保存,即

2020-07-24 11:28:24 436

原创 最新React使用 http-proxy-middleware解决多跨域问题(完美篇)

1. 安装 http-proxy-middlewarenpm install http-proxy-middleware#顺便安装一下 axios ,不用也可以,用fetch也一样。npm install axios2. src目录下创建一个 setupProxy.js文件里面的'api'代表target的域名url代理后的urlconst { createProxyMiddleware } = require('http-proxy-middleware');module.exp

2020-07-10 18:00:25 4288 3

原创 ThreadLocal(三) 线程上下文实战

场景: 某个复杂长链路请求, 例如下单, 需要多组件方法参与,但是对于各种参数聚合, 耦合度很高对于二次开发不方便解决思路: 利用 ThreadLocal 线程变量来完成, 以后每次改造只需要改造,或者向 ThreadLocal 中增加自己的参数即可,注意:禁止参与多线程!!!否则会导致参数丢失!!!!! 注意每个线程必须执行 destroy 操作!!! 建议在入口处进行线程变量初始化和销毁1. 创建业务上下文类package net.xinhuamm.converge.model.

2020-06-16 21:57:19 303

原创 使用 AOP 进行切面编程(打印日志)

场景 : 针对 controller 层 使用 AOP 进行日志打印思路: 使用 aop 进行切面编程, 针对 controller 层所有的类,进行方法切面, 打印日志1. 先在 pom.xml 文件中引入 aop 的依赖 <!-- aop --> <dependency> <groupId>org.springframework.boot</groupId> .

2020-06-16 21:09:26 564

原创 解决Jenkins 安装插件重启后, 部分项目或 Job丢失

1. 定位你安装的插件2. 进入/root/.jenkins 目录下的 plugins 目录 删除你安装的插件3. 重启问题解决

2020-05-30 11:44:24 3289

转载 mysql面试题《六》覆盖索引与回表

前言:select id,name where name='shenjian'select id,name,sexwhere name='shenjian'多查询了一个属性,为何检索过程完全不同?什么是回表查询? 什么是索引覆盖? 如何实现索引覆盖? 哪些场景,可以利用索引覆盖来优化SQL?这些,这是今天要分享的内容。画外音:本文试验基于MySQL5.6-InnoDB...

2020-05-03 22:10:27 482

转载 ElasticSearch(九) ElasticSearch使用教程之_score(评分)介绍

https://blog.csdn.net/paditang/article/details/79098830个人强烈推荐这篇文章, 讲的特别好

2020-04-08 19:39:06 617

原创 ElasticSearch(十)SpringBoot集成ElasticSearch 复杂分页查询以及高亮显示,
原力计划

一、帮助文档ES 官方文档https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-highlighting.htmlsample:https://es.xiaoleilu.com/010_Intro/30_Tutorial_Search.html二、业务流程:...

2020-04-08 19:34:14 1830

原创 ElasticSearch(十一)Java用ElasticSearch 利用搜索词分词搜索

需求:搜索词进行分词搜索例如: 搜索词为"意大利医生", 那么拆分匹配内容包含"意大利医生"或"意大利"或"医生"逻辑:首先我们采用ES中的BOOL搜索bool: must:所有分句都必须匹配,与 AND 相同。 must_not:所有分句都必须不匹配,与 NOT 相同。 should: 至少有一个分句匹配,与 OR 相同。我们使用should...

2020-03-25 16:59:51 2136 4

原创 Elasticsearch(十二)ik分词器中ik_max_word和 ik_smart的区别

学习过Solr或Elasticsearch的同学都知道IK分词器,它是一个针对中文的分词器。IK分词器地址:https://github.com/medcl/elasticsearch-analysis-ikIK分词器有两种分词模式:ik_max_word和ik_smart模式。1、ik_max_word会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共...

2020-03-25 16:47:30 3251 2

原创 Postman最新版本+ Postman Interceptor实现高效请求

https://www.postman.com/官网谷歌插件安装:https://www.crx4chrome.com/crx/560/

2020-03-20 19:15:25 1517

原创 Redis生成分布式环境下自增ID

相信大家在分布式系统一定会遇到如何生成唯一Id;uuid可以但是,作为数据库主键很浪费性能(索引相关),雪花算法可以,但是很依赖于环境.这里推荐大家使用redis生成;1.需求明确我们生成的Id组成为,时间戳+自增Id,补0例如:今天是2020.2.28 , 补6个0 ,那么生成的id范围是20200228000001-2020022899999...

2020-02-28 14:11:18 4215

原创 Docker(十四)Docker 开放 2375 TCP端口

1.编辑docker.service文件vim /usr/lib/systemd/system/docker.service在ExecStart=/usr/bin/dockerd 后插入 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock2.重启虚拟机、重启dockersystemctl daemon-reload //重启...

2020-01-17 11:19:38 1373 1

原创 Mysql获取最大自增Id

select max(id) from table_xxx;

2020-01-13 12:40:39 950

原创 SpringCloud(四) 搭建SpringbootAdmin监控平台(2.2.0)

功能简介显示健康状况显示详细信息,例如JVM和内存指标micrometer.io指标数据源指标缓存指标显示构建信息编号关注并下载日志文件查看jvm系统和环境属性查看Spring Boot配置属性支持Spring Cloud的postable / env-和/ refresh-endpoint轻松的日志级管理与JMX-beans交互查看线程转储查看http跟踪查看...

2020-01-09 14:44:43 1364

原创 SpringCloud(三) eureka的常用参数以及配置

配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server.EurekaServerConfigBean eureka.server.enable-self-prese...

2020-01-09 09:24:59 201

原创 深入理解JVM(六) GC优化(垃圾处理器优化)

优化内存被使用了之后,难免会有不够用或者达到设定值的时候,就需要对内存空间进行垃圾回收。1.垃圾收集发生的时机GC是由JVM自动完成的,根据JVM系统环境而定,所以时机是不确定的。 当然,我们可以手动进行垃圾回收,比如调用System.gc()方法通知JVM进行一次垃圾回收,但是具体什么时刻运行也无法控制。也就是说System.gc()只是通知要回收,什么时候回收由JVM决定。 ...

2019-12-27 10:36:57 488

原创 深入理解JVM(五) JVM常用工具(jconsole, jvisualvm,Arthas,MAT)

1.jconsole在命令行中,输入jconsole命令,即可直接打开jconsole.如图所示:里面有两块内容,一个是从本地进程中选择java进程进行监控,第二个就是远程监控.我就以本地的一个死锁的test进程来讲解,点击你所需要监控的进程,便可以进入监控页面:首页是概况其他页面都有其详细信息,大家可以自行研究内存中可以看堆和非堆内存的详细信息,...

2019-12-26 17:01:23 871

MySQL 5.5.49(免费)

MySql 5.5.49免费版, 包含安装图解, 以及一些sql语句, 希望能帮助到各位

2018-08-10

pandoc-2.9.2.1-macOS.pkg.zip

Pandoc,它可以将文档在 Markdown、LaTeX、reStructuredText、HTML、Word docx 等多种标记格式之间相互转换. 现在直接贡献给大家

2020-05-26

java根证书

java根证书

2018-08-29

长途电话区号映射sql

中国标准的长途电话区号映射sql,中国标准的长途电话区号映射sql.

2018-09-18

maintain.zip

升级维护H5页面用于Ngnix (二) ngnix根据url配置不同的错误维护页面博文地址.

2019-09-02

空空如也

空空如也

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

TA关注的人 TA的粉丝

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