自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(273)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 推荐一款轻量级的kafka管理平台: kafka-console-ui

介绍kafka-console-ui 是一款轻量级的kafka可视化管理平台,安装、配置特别简单,一般来说只需要配置一个kafka集群地址启动即可。不是一个企业级的平台,目前看来只适合中、小型集群的管理。这个工具看起来是挺low的,但是对于刚接触kafka急需一个合适工具进行管理的同学来说,还是挺友好的,没有国际化支持,全是中文展示。github地址:https://github.com/xxd763795151/kafka-console-ui页面布局有点类似rocketmq-cons

2021-11-13 23:38:46 2547 1

原创 RocketMQ主机磁盘空间有限,无限期延长消息存储的一种解决方案

前言RocketMQ作为国人开源的一款消息引擎,相对kafka也更加适合在线的业务场景,在业内使用的也是非常广泛,很多同学也是非常熟悉它及它的存储机制,所以这里不再对它的原理性东西作太多说明。我们也知道,RocketMQ所有的数据如消息信息都是以文件形式保存到broker节点所在主机上指定的分区目录下,比如消息的数据都是保存在commitlog中,默认保存72小时(在磁盘使用率未达到阈值的情况下)会在指定时间清理过期数据,释放磁盘空间。当然,如果消息量不大且所在磁盘的分区够大,我们可以增加消息的

2021-07-07 00:01:57 1669 1

原创 双检锁为什么需要使用volatile关键字

前置说明这是一篇我自已关于双重检查锁存在的问题,以及volatile语义在其中的作用的理解。是一篇个人记录性文章,可能在语言描述上有些直白,不会引用太多官方专业术语解释或说明。有不正确的地方,也请留言指正。下面开始正文:一个单例实现假如现在有一个Earth(地球)类,需要提供一个它的懒汉式单例实现,一种常规写法如下:public class Earth { private static Earth earth = null; public static Earth getIn

2020-10-12 00:34:51 951

原创 Slf4j使用Logback时,Logback如何初始化

SLF4J,全称 Simple Logging Facade for Java,是一个用于Java编程语言的日志系统抽象层。它为多种现有日志框架(例如Log4j、java.util.logging等)提供了统一的接口, 但自身并不实现日志功能。SLF4J 允许用户在部署时选择适当的日志库(即日志框架),比如 Logback、Log4j 等。

2023-11-26 19:41:39 537

原创 CentOS8安装wireguard-dkms失败

centos8安装 wireguard-dkms失败解决方案

2023-08-08 22:23:59 738

原创 rocksdb减少空间放大

下面这几种方法只能尽量减少空间放大,不能完全减少。rocksdb leveled压缩文档:https://github.com/facebook/rocksdb/wiki/Leveled-Compaction。

2023-07-30 21:21:36 722

原创 spring boot security自定义权限检查

鉴权主要分为身份认证和权限控制两部分:身份认证:检查当前用户是否合法(比如已登录)权限控制:检查当前用户是否有访问该资源的权限

2023-07-15 21:14:41 675

原创 spring boot security使用jwt认证

本文提供一个完整的示例演示spring boot security自定义jwt认证实现

2023-07-04 22:18:57 437

原创 spring boot security验证码登录示例

/ 还有一些其它属性,可以进行源码自己看相关配置,比较清楚了,根据变量名也能猜出来什么意思了 properties . setProperty(Constants . KAPTCHA_IMAGE_WIDTH , "150");} }示例是作为spring 的bean注册到spring 容器了,当然也可以作为一个单例对象放到一个静态类里。这个接口在前面的文章里已经提到过了,这里只是完善验证码的部分.} try {

2023-07-02 19:03:10 623

原创 spring boot security自定义认证

}// 根据用户名从数据库查询用户信息 User user = userMapper . select(username);/*** 如果没查询到这个用户,考虑两种选择:* 1. 返回一个标记无效用户的常量对象* 2. 返回一个不可能认证通过的用户} /*** 这里返回的用户密码是否为库里保存的密码,是明文/密文,取决于认证时密码比对部分的实现,每个人的场景不一样,* 因为使用的是不加密的PasswordEncoder,所以可以返回明文} }

2023-07-02 12:26:01 1474

原创 spring boot security之前后端分离配置

/ 在这里自定义配置 } }如上示例代码,关键是重写这个方法,spring boot security的扩展方法不只这一种,化繁为简,尽量采用最简单直白的方式。

2023-06-28 22:16:05 1126

原创 spring boot security快速使用示例

很显然,这是最基础的示例,也没有任何的配置,在实际场景中,肯定是不会满足,后面会引入其它场景下的定制化配置和开发。当然了,每个人的场景可能都不一样,完全照抄不一定能满足,只能说,希望当你们遇到相关问题,可以提供一些解决思路。。

2023-06-17 22:16:23 1037

原创 Netty服务如何使用Nginx代理转发请求并获得原始IP

示例,代理远端8080的netty服务。这一行配置。如果不配置,在netty服务端是无法获得原始客户端ip,但是配置上之后,netty需要调整代码。

2023-05-25 20:45:16 2824

原创 如何用Jmeter压测Netty的Echo服务之自定义Jmeter的Java Sampler

如果想要压测一些三方组件,比如MQ,redis什么的,jmeter本身是不支持的。本文以开发一个压测netty的echo示例,说明如何自定义jmeter的sampler。

2023-05-05 21:37:20 1006

原创 Netty的SO_LINGER不要随便用

SO_LINGER是一个Socket选项,它决定一个Socket关闭时的行为,因此配在server端配置的时候使用childOption配置,该选项针对每个连接配置生效,而不是全局性的配置。该配置主要在阻塞IO的关闭场景下用的更多,当然,对于非阻塞式IO这个也是同样可以使用的,毕竟是针对socket的关闭行为,但是实际意义有限。该参数指定了关闭时的超时时间,当SO_LINGER设置为0时,表示禁用SO_LINGER,关闭Socket后立即返回,内核丢弃套接字发送队列中的数据,并发送TCP RST。

2023-04-16 20:51:36 919

原创 如何替换spring boot中spring框架的版本

我开源的一个项目中,有朋友提到存在。

2023-04-11 20:33:54 5625 2

原创 使用Netty,当然也要了解它的连接闲置处理

非写闲置判定的时候,是以数据发送出去为准,还是有写的动作为准,默认该值是false,数据发送判定为写闲置,而设置为true就是写动作发生时,比如写入缓存但是还没发送就是非闲置。writerIdleTimeSeconds:写空闲时间,即当服务器指定时间没有数据发送(或写入动作,参数不同阶段不一样),会触发一个写闲置事件。写闲置我一般用在客户端,比如达到闲置时间关闭与服务端的连接或者发送心跳给服务端以保持长连接。或者也可以不关闭,发送一个心跳包,但是要注意,这种情况,客户端的闲置时间要少于服务端的。

2023-03-28 13:30:00 1191

原创 RocksDB, 大数据量的去重实践记录

RocksDB是 Facebook 开源的一个高性能、持久化、 KV 存储。数据存储采用的是一种叫做LSM-Tree(The Log-Structured Merge-Tree)的数据结果。

2023-03-19 12:46:46 732

原创 kafka-console-ui v1.0.6发布

kafka-console-ui 是一款web版的kafka管理平台,从第一次发布到现在已经两年了,断断续续也更新了7个版本了(v1.0.0~v1.0.6)。

2023-02-26 22:53:01 592

原创 kafka的客户端限流(资源配额)

本文说明的是Kafka的客户端(生产者、消费者)与broker之前的限流,不是kafka的broker间topic副本同步的限流。

2022-12-19 22:03:00 3052

原创 适配不同场景的RestTemplate

不同的场景,如何创建一个适合的RestTemplate:基本实现、超时配置、连接池、负载均衡,非200状态码响应处理。。。

2022-11-19 22:27:46 802

原创 spring boot 自定义druid数据源,如何注入配置

spring:druid:这种配置是没有问题,相信这种写法在网上一搜都有很多,我们可以验证下,druid的配置是生效的。如下,启动的时候打印druid相关配置信息:和我们配置文件中是一样,属性配置是成功注入生效的。使用druid的时候,我们可以自定义处理某些配置项,比如对数据库连接进行加密等操作。

2022-11-08 22:04:35 3803 3

原创 快速理清Paxos、Zab、Raft协议

在raft之前,paxos使用的比较多。基本的paxos,对于一次数据更新请求,集群各个节点可能要进行多轮消息交换,而raft因为必须要选择一个leader,通过leader只需要一轮消息交换。raft论文描述了一个基于raft复制状态机的完整方案,paxos论文只给了一个一致性算法。目前业内使用比较广泛的是raft。zab协议是为zookeeper专门设计的支持崩溃恢复的原子广播协议,目前主要了解到的也是在zookeeper上的应用和实现。

2022-09-18 14:04:33 2428

原创 idea配置RocketMQ本地开发环境

rocketmq在idea中开发的配置方式,早期的版本与现在版本配置参数是否完全一样,我也记不太清了,下文以4.9.5版本进行说明。idea用的也是最新版本,可能与2021之前的版本在环境变量配置的界面也有点不太一样。下载代码:默认拉取下来是master分支,可以切换到develop分支。如果需要提交pr,请再从develop拉取自己的本地分支。用idea打开代码。 主要需要在idea启动中运行namesrv和broker两个模块,这两个模块下有相关的启动函数。启动类路径:启动前设置相关环境变量

2022-07-14 15:31:05 1016

原创 kafka开启ACL,请求慢出现超时的解决办法

正常情况下,使用某个kafka管理平台(或者是使用kafka提供的admin client)调用kafka的接口查询相关信息,比如查询topic列表,请求是很快的,如下:正常情况(网络也没问题),请求一般是很快的,如果通过一些管理平台,页面显示也是很流畅的。目前有几次遇到请求特别慢,接近10秒甚至数十秒的情况,一些管理平台就可能出现超时现象或者查询的特别慢。我目前遇到2次,说明如下:环境信息如下:当时在公司的时候是没有问题的,回家的时候因为要开启VPN就会出现这个问题,管理平台页面特别慢,甚至查询不出来。环

2022-07-07 08:40:18 1254

原创 win10安装virtualbox及部署kafka踩坑记录

因为目前手里只有一台win10操作系统的笔记本,需要部署一套kafka环境进行调试,所以考虑使用virtualbox安装centos来部署kafka。windows下载安装virtualbox很简单,不清楚的可以从网上查询相关资料。centos是前两年下载的一个mini版本,考虑部署一个轻量级的服务器,所以用这个mini版本装一个虚拟机。virtualbox装centos虚拟机网络上有很多相关资料,也比较容易检索到,有需要的自行查询,不再重点说明。注意,我装的是一个mini版本默认是没有提供一个可视化界面的

2022-06-26 22:49:21 710

原创 Git在Windows下的安装

git提供了详细的中文官方文档,地址:Git - Bookgit在各种操作系统下进行安装的官方文档地址:Git - 安装 Git如果需要在Linux或Mac OS上进行安装,移步查看上面的官方介绍。windows下安装方法,官网上主要提供了3种:下面进行个说明:Chocolatey是一款windows下的软件包管理器,类似Linux的yum、apt等。国内网不好的同学不建议采用这个方案。如果有条件可以试一下,Chocolatey的安装也很简单:Chocolatey Software | Installing

2022-06-16 13:38:43 6894 1

原创 Uncaught ReferenceError: Vue is not defined

最近开发的一个项目,前段时间开发过程中还好好的,最近一次打包部署后,浏览器访问一直是打不开:打开控制台,看到的一个报错如下: 作为一个前端不太熟练的后端研发,我在网上根据关键字:Vue is not defined,搜到的一些场景和解决方案,与我的都不一样。如果有类似情况的,可以看下我的场景是否与你问题一样。看下完整报错:猜测是这个CDN突然不能用了,在vue.config.js文件中修改cdn: 更换一个可以正常访问的CDN,问题解决。...

2022-06-05 16:44:27 422 1

原创 Ant Design Vue 1.x配合Spring Boot文件上传基本示例

前言本文针对vue新手用户提供一个快速使用示例,大佬请忽略。Ant Design Vue最新版本到目前为止已经3.x了,1.x的可能是维护的一些老项目,如使用更高版本的Ant Design Vue,建议查看最新官方文档:https://www.antdv.com/components/upload-cn/,不用再继续看下去浪费时间了。查看版本查看项目中使用的Ant Design Vue版本,可查看package.json(初次接手前端的后端研发同学,可能不知道这个文件,请查阅相关资料)

2022-05-17 09:59:52 3068

原创 Ubuntu快速安装或更新chrome

前言Ubuntu使用deb包安装的chrome,后来chrome更新,不支持自动更新,每次打开谷歌浏览器,右上角就提示要Reinstall。我下面提供一个脚本,快速更新,如果是第一次安装也可以执行这个脚本。操作1. 新建一个脚本,如名字叫:update_chrome.sh,然后复制下面的代码:#!/bin/bash# 如果当前目录下已经存在安装包,删除[[ -f google-chrome-stable_current_amd64.deb ]] && sudo r

2022-04-16 18:35:50 3744 2

原创 Ubuntu安装WebStorm

前言安装过程类似我之前写的:Ubuntu安装idea下载方法1:下载地址:Download WebStorm: The Smartest JavaScript IDE by JetBrains,选择Linux版本,点击Download. 方法2:点击https://download.jetbrains.com.cn/webstorm/WebStorm-2022.1.tar.gz直接下载,或者执行命令(下载固定版本,不是最新版本): wget https://download.jetbra.

2022-04-16 11:50:48 3150 1

原创 参与开源,从给RocketMQ提ISSUE开始

2020年9月份的一天,当时人在郑州的一个公寓的出租屋里。因为晚上约了北京某知名的互联网公司(公司可能不够大,但很多人都听过)的远程面试,所以尽管我当时的工作是997,那天晚上我还是早早就下班回到公寓准备面试。在面试的过程中,面试官提了一个问题:以往的工作经历中,遇到的一个比较难忘的问题。大概是这个意思,因为原话,我也记不太清了。

2022-03-24 20:11:18 3288 2

原创 对SkyWalking进行改造的相关实践记录

SkyWalkingApache SkyWalking是一款分布式系统的性能监控工具,在分布式架构下,系统多层,服务各种关联,一款好的可视化全栈监控工具,无疑可以大大降低我们的运维和排障成本。有兴趣点开链接,看到这篇文章的朋友,可能多少对其都有一些了解,也就不再过多说明了。如果之前没有听说过,但是感兴趣的,可以看一下Apache SkyWalking的官方文档。下面说明下我过去在我们的实践过程中,对其进行的一些功能上的增强或者优化,或许对正在使用的一些朋友能作一个参考或者帮助。说明这些改

2022-03-03 23:08:14 859

原创 Grafana系列:在grafana7.x中配置一个如同Node Exporter中的table

前言用过node exporter的同学,可能用过这个监控面板:Node Exporter for Prometheus Dashboard CN 20201010资源总览下有个服务器资源总览表的面板:这是个table类型的面板。如果我想在自己的监控盘上也配置一个类似的table,比如监控rocketmq的消费端信息:我用的grafana版本是7.x,默认是没这个类型的,自带的table不是这个,这个是"table-old",如下:右下角,没有任何一个类型被选中。下.

2022-03-02 00:30:00 1647 2

原创 Grafana系列:如何去定义并配置更适合自己监控使用的变量

背景在Grafana配置监控面板的时候,支持配置变量应用在查询或者面板的title中,通过选择不同的变量,显示不同的查询结果。如下,便是定义的一些变量:

2022-02-26 21:49:00 7022

原创 Grafana系列:Gauge下面的Legend怎么不显示了

背景Grafana的Gauge像是车辆的仪表盘:官方介绍:Gauge | Grafana LabsGauge的Legend不显示正常情况下Gauge的legend会显示在仪表盘下面,如下:但是当我表配置好的dashboard导入其它监控里,发现下面的legend不显示了:我本来以为是与版本有关,换了其它版本后,发现还是这样,最终找到问题原因,不是大问题,如果该指标查询出来的数据只有一条就是这样,多于一条就正常显示了。尴尬,花了不少时间找原因。...

2022-02-25 23:30:00 2163 1

原创 Grafana系列:增加一个行面板

背景最近几天在优化一版监控面板,也总结不少经验,后续几篇会对其整理、分享。Grafana我自己也用了一年多,在博客里也分享了一些我自己配置的一些监控面板,但是配置上的细节,因为自己经验有限,还从没整理过,趁此机会,分享一些细节。关于Grafana的安装,建议参考官方:Installation | Grafana Labs一个可以折叠的行面板在一些监控面板上,可以看到这些:可以支一些面板进行分类,有一个title,然后展开或者折叠。如果面板比较多,这样还是挺有好处,可以把当前不

2022-02-24 23:45:00 4924

原创 一套拿来即用的RocketMQ监控面板和告警规则

背景在基于官方提供的rocketmq-exporter搭建监控的时候,官方有提供一个面板,地址:Rocketmq_dashboard dashboard for Grafana | Grafana Labs类似下面这个截图:但是看起来有点类似大盘的感觉,有时候指标太多,反而是没有指标。我重新整理了一个,提交到了github,地址:https://github.com/xxd763795151/rocketmq-monitor下面是监控和告警相关的配置说明。这套监控和告警的配.

2022-02-11 23:45:00 2381 1

原创 以rocketmq监控为例,在mac上安装prometheus及grafana

前言本文以在mac os上搭建一个rocketmq监控为例,说明如何安装及配置prometheus和grafana。其它类型的操作系统如Linux,可以参考相关安装步骤。监控拓扑以rocketmq的监控为例,部署的拓扑可能是这个样子:部署RocketMQrocketmq的部署不是重点,我本地启动了一个单节点,地址:localhost:9876。关于rocketmq的部署可以查看官方部署步骤:Quick Start - Apache RocketMQ部署rocketmq-e

2022-02-09 00:45:00 1169

原创 二分查找在RocketMQ和Kafka中的应用

二分查找二分查找是在有序元素中找到目标元素或最终未找到返回。算法模板如下:

2022-01-25 23:30:00 2466

C++写的2048小游戏

C++写的一个2048的小游戏的源代码,可直接运行

2016-11-23

图书管理系统

VS2013写的一个图书管理系统,控制台的,语言是C++

2016-07-14

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

TA关注的人

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