自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Springboot全局配置实现BigDecimal返回前端去除小数点后多余的0

【代码】Springboot全局配置实现BigDecimal返回前端去除小数点后多余的0。

2024-03-12 16:50:48 313

原创 Redis 发布订阅详解

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。Redis 有两种发布订阅模式关键词:订阅、SUBSCRIBE、PSUBSCRIBE、PUBLISH、观察者模式。

2024-02-27 14:08:03 411

原创 Redis 管道详解

Redis 是一种基于 C/S 模型以及请求/响应协议的 TCP 服务。客户端向服务端发送一个查询请求,并监听 Socket 返回(通常是以阻塞模式,等待服务端响应)。服务端处理命令,并将结果返回给客户端。显然,如果每个 Redis 命令都发起一次请求、响应,会很低效。因此,Redis 客户端提供了一种批量处理技术,即管道技术(Pipeline)。Pipeline 的工作原理就是:将多个 Redis 命令一次性发送给服务端,服务端处理后,统一返回给客户端。由于减少了通信次数,自然提升了处理效率。

2024-02-26 15:33:00 842

原创 Mysql 的高可用详解

复制是解决系统高可用的常见手段。其思路就是:不要把鸡蛋都放在一个篮子里。复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被配置成另外一台服务器的主库。主库和备库之 间可以有多种不同的组合方式。MySQL 支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录 bin log、在备库重放日志的方式来实现异步的数据复制。这意味着:复制过程存在时延,这段时间内,主从数据可能不一致。

2024-02-26 15:26:22 1317

原创 JPS-Java进程状态工具

【代码】JPS-Java进程状态工具。

2024-02-06 11:07:40 168 1

原创 Linux和Windows文件共享实现方式

Windows文件夹下直接访问 \ip\file。Windows 共享给 Linux。然后输入 Windows 密码即可。Linux下执行命令。

2024-02-06 10:45:27 630

转载 Spring Boot 使用SSH 远程连接 MySql

/</</</

2023-09-13 17:03:55 273

转载 使用域名的方式远程连接Elasticsearch

【代码】使用域名的方式远程连接Elasticsearch。

2023-09-13 16:50:00 231 1

转载 Spring Boot 通过SSH 远程连接 Mongo DB

/</</</

2023-09-12 18:26:15 178

原创 node-media-server摄像头环境搭建

1.下载安装包:https://npmmirror.com/mirrors/node/v18.16.1/node-v18.16.1-x64.msi。4.将node配置在环境变量中。2.验证node,npm版本。3.更改npm全局路径。

2023-07-07 10:20:15 785

原创 Linux详细命令大全

Linux命令总结一下, 以便后续查看基本操作Linux关机,重启# 关机shutdown -h now# 重启shutdown -r now查看系统,CPU信息# 查看系统内核信息uname -a# 查看系统内核版本cat /proc/version# 查看当前用户环境变量envcat /proc/cpuinfo# 查看有几个逻辑cpu, 包括cpu型号cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c# 查看有几

2021-12-02 14:43:33 583 1

原创 RabbitMQ 集群

RabbitMQ 集群clustering使用集群的原因最开始我们介绍了如何安装及运行 RabbitMQ 服务,不过这些是单机版的,无法满足目前真实应用的要求。如果 RabbitMQ 服务器遇到内存崩溃、机器掉电或者主板故障等情况,该怎么办?单台 RabbitMQ服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 RabbitMQ 集群才是解决实际问题的关

2021-07-22 18:14:54 223

原创 RabbitMQ 其他知识点

RabbitMQ 其他知识点幂等性概念用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。举个最简单的例子,那就是支付,用户购买商品后支付,支付扣款成功,但是返回结果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额发现多扣钱了,流水记录也变成了两条。在以前的单应用系统中,我们只需要把数据操作放入事务中即可,发生错误立即回滚,但是再响应客户端的时候也有可能出现网络中断或者异常等等消息重复消费消费者在消费 MQ 中

2021-07-22 18:13:41 182

原创 RabbitMQ 发布确认高级

发布确认高级在生产环境中由于一些不明原因,导致 rabbitmq 重启,在 RabbitMQ 重启期间生产者消息投递失败,导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投呢?特别是在这样比较极端的情况,RabbitMQ 集群不可用的时候,无法投递的消息该如何处理呢:应 用 [xxx] 在 [08-1516:36:04] 发 生 [ 错误日志异常 ] , alertId=[xxx] 。 由[org.springframework.amqp.rabbit.

2021-07-22 18:12:46 215 1

原创 RabbitMQ 死信队列 延迟队列

死信队列死信的概念先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理解,一般来说,producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。应用场景:为了保证订单业务的消息数据不丢失,需要使用到 RabbitMQ 的死信队列机制,当消息消费发生异常时,将消息投入死信

2021-07-22 18:11:32 344 2

原创 RabbitMQ 交换机

交换机在上一节中,我们创建了一个工作队列。我们假设的是工作队列背后,每个任务都恰好交付给一个消费者(工作进程)。在这一部分中,我们将做一些完全不同的事情-我们将消息传达给多个消费者。这种模式称为 ”发布/订阅”.为了说明这种模式,我们将构建一个简单的日志系统。它将由两个程序组成:第一个程序将发出日志消息,第二个程序是消费者。其中我们会启动两个消费者,其中一个消费者接收到消息后把日志存储在磁盘,另外一个消费者接收到消息后把消息打印在屏幕上,事实上第一个程序发出的日志消息将广播给所有消费者者Exchang

2021-07-22 18:09:33 261 1

原创 RabbitMQ 发布确认

发布确认发布确认原理生产者将信道设置成 confirm 模式,一旦信道进入 confirm 模式,所有在该信道上面发布的消息都将会被指派一个唯一的 ID(从 1 开始),一旦消息被投递到所有匹配的队列之后,broker就会发送一个确认给生产者(包含消息的唯一 ID),这就使得生产者知道消息已经正确到达目的队列了,如果消息和队列是可持久化的,那么确认消息会在将消息写入磁盘之后发出,broker 回传给生产者的确认消息中 delivery-tag 域包含了确认消息的序列号,此外 broker 也可以设置ba

2021-07-22 18:08:29 128

原创 RabbitMQ 持久化

RabbitMQ 持久化概念刚刚我们已经看到了如何处理任务不丢失的情况,但是如何保障当 RabbitMQ 服务停掉以后消息生产者发送过来的消息不丢失。默认情况下 RabbitMQ 退出或由于某种原因崩溃时,它忽视队列和消息,除非告知它不要这样做。确保消息不会丢失需要做两件事:我们需要将队列和消息都标记为持久化。队列如何实现持久化之前我们创建的队列都是非持久化的,rabbitmq 如果重启的化,该队列就会被删除掉,如果要队列实现持久化 需要在声明队列的时候把 durable 参数设置为持久化但是需

2021-07-22 18:07:36 202

原创 RabbitMQ 消息应答

消息应答概念消费者完成一个任务可能需要一段时间,如果其中一个消费者处理一个长的任务并仅只完成了部分突然它挂掉了,会发生什么情况。RabbitMQ 一旦向消费者传递了一条消息,便立即将该消息标记为删除。在这种情况下,突然有个消费者挂掉了,我们将丢失正在处理的消息。以及后续发送给该消费这的消息,因为它无法接收到。为了保证消息在发送过程中不丢失,rabbitmq 引入消息应答机制,消息应答就是:消费者在接收到消息并且处理该消息之后,告诉 rabbitmq 它已经处理了,rabbitmq 可以把该消息删除了。

2021-07-22 18:06:38 208 1

原创 RabbitMQ消息队列 集成java Work Queues

RabbitMQ消息队列RabbitMQ 的概念RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。四大核心概念生产者产生数据发送消息的程序是生产者交换机交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消

2021-07-22 18:04:51 139 1

原创 RabbitMQ 从入门到精通 消息应答 持久化 交换机 队列 发布确认 集群 等

RabbitMQ消息队列RabbitMQ 的概念RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。四大核心概念生产者产生数据发送消息的程序是生产者交换机交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消

2021-07-22 18:03:18 488 1

原创 Elasticsearch 优化 相关面试题

Elasticsearch 优化硬件选择Elasticsearch 的基础是 Lucene,所有的索引和文档数据是存储在本地的磁盘中,具体的路径可在 ES 的配置文件…/config/elasticsearch.yml 中配置,如下:#----------------------------------- Paths------------------------------------## Path to directory where to store the data (separate

2021-07-20 16:10:01 290

原创 Elasticsearch 集成

Elasticsearch 集成Spring Data 框架集成Spring Data 框架介绍Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。 Spring Data 可以极大的简化 JPA(Elasticsearch„)的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。除了 CRUD 外,还包括如分页、排序等一些常用的功能。Spring Da

2021-07-20 16:09:02 214

原创 Elasticsearch 进阶

Elasticsearch 进阶核心概念索引(Index)一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。能搜索的数据必须索引,这样的好处是可以提高查询速度,比如:新华字典前面的目录就是索引的意思,目录可以提高查询速度。Elasticsearch 索引的

2021-07-20 16:08:03 261

原创 Elasticsearch 环境

Elasticsearch 环境相关概念单机 & 集群单台 Elasticsearch 服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。除了负载能力,单点服务器也存在其他问题:单台机器存储容量有限单服务器容易出现单点故障,无法实现高可用单服务的并发处理能力有限配置服务器集群时,集群中节点数量没有限制,大于等于 2 个节点就可以看做是集群了。一般出于高性能及高可用方面来考虑集群中节点数量都是 3

2021-07-20 16:06:55 96 3

原创 Elasticsearch 入门

Elasticsearch 入门Elasticsearch 安装下载软件Elasticsearch 的官方地址:https://www.elastic.co/cn/Elasticsearch 最新的版本是 7.11.2(截止 2021.3.10),我们选择 7.8.0 版本(最新版本半年前的版本)下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearchElasticsearch 的官方地址:https://www.

2021-07-20 16:05:43 132

原创 Elasticsearch从入门到精通 理论 集群 优化 框架集成

Elasticsearch 概述Elasticsearch 是什么The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服

2021-07-20 15:58:36 339

原创 Spark 数据倾斜

Spark中的数据倾斜问题主要指shuffle过程中出现的数据倾斜问题,是由于不同的key对应的数据量不同导致的不同task所处理的数据量不同的问题。例如,reduce点一共要处理100万条数据,第一个和第二个task分别被分配到了1万条数据,计算5分钟内完成,第三个task分配到了98万数据,此时第三个task可能需要10个小时完成,这使得整个Spark作业需要10个小时才能运行完成,这就是数...

2021-07-07 11:19:53 82

原创 Spark 性能调优之JVM调优

对于JVM调优,首先应该明确,(major)full gc/minor gc,都会导致JVM的工作线程停止工作,即stop the world。JVM调优一:降低cache操作的内存占比静态内存管理机制根据Spark静态内存管理机制,堆内存被划分为了两块,Storage和Execution。Storage主要用于缓存RDD数据和broadcast数据,Execution主要用于缓存在shuf...

2021-07-07 11:19:29 423

原创 Spark 性能调优之Shuffle调优

Shuffle调优一:调节map端缓冲区大小在Spark任务运行过程中,如果shuffle的map端处理的数据量比较大,但是map端缓冲的大小是固定的,可能会出现map端缓冲数据频繁spill溢写到磁盘文件中的情况,使得性能非常低下,通过调节map端缓冲的大小,可以避免频繁的磁盘IO操作,进而提升Spark任务的整体性能。map端缓冲的默认配置是32KB,如果每个task处理640KB的数据,...

2021-07-07 11:19:10 873

原创 Spark 性能调优之算子调优

算子调优一:mapPartitions普通的map算子对RDD中的每一个元素进行操作,而mapPartitions算子对RDD中每一个分区进行操作。如果是普通的map算子,假设一个partition有1万条数据,那么map算子中的function要执行1万次,也就是对每个元素进行操作如果是mapPartition算子,由于一个task处理一个RDD的partition,那么一个task只会执...

2021-07-07 11:18:41 221 2

原创 Spark 性能调优之常规性能调优

常规性能调优一:最优资源配置Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。资源的分配在使用脚本提交Spark任务时进行指定,标准的Spark任务提交脚本如代码所示:/usr/opt/modules/spark/bin/spark-submit \--class c...

2021-07-07 11:18:05 107 2

原创 Windows端口PID查询与杀死

打开cmd控制台输入命令netstat -aon|findstr "8848"杀死 PIDtaskkill -PID 17540 -F

2021-07-01 18:49:41 257

原创 Maven的标准settings.xml文件

配置目标默认jdk采用java8配置阿里云镜像和私服镜像, 并且先从阿里云下载, 下载不到的再去私服下载<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001...

2021-07-01 13:47:46 222

原创 Ubuntu18.04 网络图标不见了

1、删除NetworkManager缓存文件service NetworkManager stopsudo rm /var/lib/NetworkManager/NetworkManager.stateservice NetworkManager start2、修改/etc/NetworkManager/NetworkManager.confmanaged=true3、重启NetworkManagersudo service network-manager restart...

2021-07-01 10:01:59 187

原创 trc20部署event-plugin

编译源代码创建代码目录mkdir -p /project/eventplugin/下载eventplugin源码cd /project/eventplugin/git clone https://github.com/tronprotocol/event-plugin.git编译eventplugin项目cd eventplugin./gradlew build查看编译好的jar包cd /build/libs部署MongoDB配置event.subscr

2021-07-01 09:59:42 977 2

原创 同步TRC20节点

挂载新增加的硬盘输入fdisk -l 可以查看新增加的硬盘![新硬盘](https://img-blog.csdnimg.cn/20201120174752652.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTIzODcxNDE=,size_16,color_FFFFFF,t_70#pic_center)创建分区输入fdis

2021-07-01 09:58:35 2771

原创 Docker安装使用启动nginx

安装dockerwget https://download.docker.com/linux/centos/docker-ce.repo mv docker-ce.repo /etc/yum.repos.d/ ls /etc/yum.repos.d/ yum install docker-ce -y systemctl start docker systemctl enable docker docker version 安装docker-compose参考文章:https://doc

2021-07-01 09:55:21 62

原创 MySQL5.7版本sql_mode=only_full_group_by问题详细解决办法

查看sql_modeSELECT @@sql_mode;查询出来的值为:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION去掉ONLY_FULL_GROUP_BY,重新设置值。SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZE

2021-04-21 08:52:45 472

原创 Spark 核心组件详细解析

BlockManager数据存储与管理机制BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由对应的BlockManager进行管理。Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护好元数据的变更。每个节...

2020-10-19 11:19:28 850 1

settings.xml

默认jdk采用java8 配置阿里云镜像和私服镜像, 并且先从阿里云下载, 下载不到的再去私服下载 简书:[https://www.jianshu.com/u/0278602aea1d](https://www.jianshu.com/u/0278602aea1d) CSDN:[https://blog.csdn.net/u012387141](https://blog.csdn.net/u012387141)

2020-04-29

一个 Java 验证 的工具类

一个 Java 验证 的工具类 支持各种类型的验证 在项目中大量使用

2017-11-14

Java 无限极 树结构

Java 无限极 树结构 简单 一看就懂 值得你们借鉴

2017-11-14

Yii2中文手册 CHM版

Yii2中文手册CHM版

2016-01-08

移除URL中的指定GET变量

移除URL中的指定GET变量.

2015-12-13

空空如也

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

TA关注的人

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