自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

55555的博客

让学习成为一种习惯

  • 博客(280)
  • 资源 (1)
  • 收藏
  • 关注

原创 好用的IDEA插件推荐,提升你的开发效率

0. 引言不同类型的开发插件具备不同的作用,有能够直接提升我们开发效率的,也有能够规范我们代码的。在茫茫的插件海中,结合我这些年的使用总结,给大家推荐几款IDEA插件1. 代码规范类1.1 Alibaba Java Coding Guidelines介绍首当其冲的必定是阿里的代码规范插件Alibaba Java Coding Guidelines,从我还是小白时到现在这款插件已经陪伴了我几年光阴。我愿称它为你最少最少要遵守的代码规范。安装后,当你书写的代码不符合阿里规范时,会将代码标黄,鼠标移动

2022-04-16 18:13:09 11491 11

原创 springcloud:什么是分布式微服务,如何学习微服务(一)

0. 引言随着网络建设的丰富和技术发展的增强,传统的单机架构已经不能满足日益递增的用户需求。学习微服务开发也成了当今java后端开发必须掌握的技术。接下来的日子我们一起来学习微服务开发。在真正开始学习之前,我们要先理解几个基础概念1. 基础概念1.1 分布式想象一下,如果一台单机的服务最多只能支持400的访问量,但是因为用户量但,同时有600的访问量打进来那么,服务肯定支撑不住。但是如果我们的服务拓展到3个,那么600的访问量均匀的拓展到3个服务中,那么每个服务只用承担200访问量,对于一个服务来

2022-04-01 01:37:09 3617

原创 mac pro M1/M2/M3(ARM)安装:VMWare Fusion及linux(centos7/ubuntu)(一)

0.引言最近正好在mac M1上安装centos虚拟机以及开发环境,特记录下,以供后续有需要的同学参考1.下载1.1 安装VMware Fusion我选择在VMware上运行虚拟机,所以需要下载VMware Fusion下载地址:VMware Fusion for M1选择ARM版本下载,目前是官方推出的针对M1的试用版本,无需激活,后续是否收费还未可知下载后双击安装即可1.2 下载centoscentos for m1下载地址:centos for m1北京外国语大学镜像地址(推荐下

2022-01-16 00:52:31 84836 250

原创 ELK搭建(一):实现分布式微服务日志监控

1、目标本次我们搭建的目标是通过ELK来收集微服务中的日志。本期主要以实操、快速搭建为主进行讲解,部分基础概念不做过多描述,后续会再单独出几期博客说明2、思路首先我们要部署的架构如下图所示,需要收集两个微服务的日志,并且最终在kibana中可视化呈现出来。可以看出日志的传输路线是:微服务产生日志,并将日志数据保存到磁盘中的.log文件中,filebeat监听log文件,将其数据收集并结构化后传输到logstash上,logstash将日志进行过滤收集,再传输到elasticsearch上,elast

2022-01-04 00:56:42 8660 11

原创 初级java工程师学习路线

掌握IDEA软件的安装、使用,能够使用IDEA创建并运行java代码B站马士兵教育:https://www.bilibili.com/video/BV1cX4y1w7q3java基础逻辑、语法、基本的类库https://www.bilibili.com/video/BV1FZ4y1H7rh推荐理由:java入门学习网站,我入门java的学习网站。java基础的一系列课程都有。推荐以观看马士兵教育的java基础视频为主,以查看这个网站学习为辅推荐理由:我的java入门学习书籍,掌握基础语法,理解java面

2021-12-30 22:35:56 3013

原创 RocketMQ快速入门:事务消息原理及实现(十)

最后一句话总结一下,rocketmq的事务消息,是通过half消息(即二阶段提交)+回查机制来实现的。

2024-06-28 22:00:00 900

原创 RocketMQ快速入门:如何保证消息不丢失|保证消息可靠性(九)

在金融、电商等对数据完整性要求极高的行业,消息的丢失可能会导致数据不一致,严重影响业务逻辑和数据统计,也影响客户体验,所以在很多业务场景下,我们都要求数据不能丢失。而rocketmq中,如何对消息防丢失进行处理的呢?

2024-06-20 19:00:00 1372

原创 RocketMQ快速入门:如何保证消息顺序消费,附带源码分析(八)

顺序消息在金融、电商等场景中被广泛应用,只要业务需求对流程顺序性有严格要求,就有顺序消息的应用之地。因此理解顺序消息的原理和实现路径,是我们学习rocketmq的必经之路。

2024-06-20 18:45:00 1167

原创 RocketMQ快速入门:集成springboot实现各类消息发送|异步、同步、顺序、单向、延迟、事务消息(六)附带源码

上一节针对spring或其他框架集成rocketmq实现消息发送进行了讲解,而作为当前更加流行的springboot框架,实现rocketmq的集成则更加简单,本节我们就重点针对springboot集成rocketmq,实现异步、同步、单向、顺序、延迟、事务消息发送进行讲解,文末附上源码。

2024-06-18 08:15:00 819

原创 RocketMQ快速入门:集成spring, springboot实现各类消息消费(七)附带源码

rocketmq支持两种消费模式:pull和push,在实际开发中这两种模式分别是如何实现的呢,在spring框架和springboot框架中集成有什么差异?今天我们一起来探究这两个问题。

2024-06-18 08:15:00 1602

原创 RocketMQ快速入门:集成java客户端实现各类消息发送|异步、同步、顺序、单向、延迟、事务(五)附带源码

至此我们针对java client实现各类消息发送的方法就梳理完成了,但实际工作中,我们现在更加常用的是基于springboot框架,而rocektmq也有专门针对springboot框架进行集成,实现起来更加简单,下一期我们重点讲解springboot集成实现消息发送。

2024-06-17 18:45:00 1201

原创 软考又考了,数据库范式这次一定要弄懂!

1NF: 属性值都是不可分的原子值2NF: 消除主属性对候选键的部分依赖3NF: 消除非主属性对候选键的传递依赖BCNF: 消除主属性对候选键的部分和传递依赖。

2024-06-17 18:15:00 894

原创 利用cherry pick巧妙地将某次提交单独合并到其他分支

cherry-pick 其作用就是将其他分支的单个提交合并到当前分支,其名字也很贴合——“摘樱桃”,从分支树上摘下来指定的几颗。其应用场景包括:合并单个提交:当我们只想将某个分支上的某一次提交合并到当前分支时,可以使用cherry-pick命令,而不需要合并整个分支修复bug:当我们在一个分支上修复了一个bug,并希望将这个修复同步应用到其他分支时共性功能:当我们在一个分支上开发了一个新功能,这个功能可能属于基础性通用功能,也希望应用到其他版本时。

2024-05-28 22:00:00 909

原创 后端常用技能:基于easy-poi实现excel一对多、多对多导入导出【附带源码】

easy-poi是一个基于Apache POI的Java端Excel 操作工具库,目的是为了简化java程序对excel文件的操作。该库提供了简单的API接口,支持excel的读写、格式化等,以及excel数据导出到pdf、word等文件。easypoi-base 是 easypoi的核心模块,提供了基本的 Excel 处理功能,如读取、写入、转换等。它不依赖于 Spring Boot,可以在任何 Java 项目中使用。

2024-05-08 18:01:50 2201 1

原创 后端常用技能:解决java项目前后端传输数据中文出现乱码、问号问题

思路1:后端响应体及前端blob对象声明编码格式为utf8思路2:application.properties中设置全局编码格式思路3:重新编码传输数据思路4:jvm启动脚本中添加-Dfile.encoding=utf-8

2024-05-08 18:01:34 1985

原创 RocketMQ快速入门:group、topic、queue、tag等基本概念(四)

上一节,我们说明了rocketmq中的4个核心组成以及他们之间的工作关系。但其中穿插的topic, queue等概念,如果未接触过mq的同学可能会有些迷糊,所以本节,我们重点针对rocketmq中的基本概念进行讲解,之前学习过其他mq的同学也能够形成对比。

2024-04-23 20:31:16 1357

原创 RocketMQ快速入门:namesrv、broker、dashboard的作用及消息发送、消费流程(三)

接触rocketmq之后,大家首当其冲的就会发现需要安装3个组件:namesrv, broker, dashboard,其中dashboard也叫console,为选装。而这几个组件之前的关系是什么呢,消息发送和接收的过程是如何传递的呢,这是我们要详细了解的。

2024-04-23 20:30:48 1253 2

原创 RocketMQ快速入门. rocketmq 的应用场景、与其他mq的差异(二)

从上文可以看到rocketmq中实际上是有namesrv , broker两个组件的,除此之外rocketmq还有一个管理端,而这三个组件之前的关系是什么,如何协同合作的?我们将在下一节讲解。

2024-03-08 18:06:56 1117

原创 Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard

最近本地启动以前docker安装的rocketmq发现报错了,因为是从老mac迁移过来的,发现支持的芯片还是amd的,于是重新在docker下安装rocketmq,并记录下步骤,方便大家后续参考。

2024-03-08 18:05:30 2616 3

原创 Linux:安装minio并设置开机自启

最近在处理测试服务器的minio安装,发现之前并没有单独记录minio安装的详细过程,特此记录,供大家后续参考。

2024-02-22 09:53:54 1820 1

原创 RocketMQ快速入门: linux安装RocketMQ并配置开机自启(一)

针对rocketMQ的学习,首当其冲的就是正确安装服务,所以我们今天来看linux下如何安装rocketmq及其控制台服务,并设置各个服务的开机自启。

2024-02-17 20:53:50 2617

原创 Nginx快速入门:worker、master进程的作用和热部署原理(十)

master进程为nginx主进程,worker为工作进程,worker进程可以为多个,worker进程数一般是服务器CPU核数,不然过多的worker数,会导致进程相互竞争CPU,反而导致更多的上下文切换,降低效率。master主进程会作为监控进程,主要负责启动和监控其他worker进程,同时也会负责将请求进行分发给worker进程,master进程会管理这些worker进程的全生命周期,比如启动、停止、平滑升级等。也负责系统资源调配给worker进程,整理来看master是个管理者。

2024-01-07 01:36:02 1956

原创 Nginx快速入门:Nginx实现高可用|结合keepalived实现主备节点(九)

keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件,它主要用于高可用性(HA)环境中的服务监控和冗余,其核心含义就是“保活”。keepalived 最初是为 Linux Virtual Server(LVS)设计的,但随着时间的推移,它已经发展成为一个更为通用的工具,可以用于各种类型的服务监控和负载均衡任务。keepalived 的工作原理是通过所谓的“虚拟路由冗余协议”(VRRP)来实现的。

2024-01-07 01:34:37 1405

原创 maven、springboot项目编译打包本地jar、第三方jar包

一般我们在maven项目中都是通过引入pom坐标的形式来引入第三方jar包,但某些场景下,第三方是直接提供的jar包文件,这就需要我们从本地引入第三方包并进行打包。所以我们今天来看下如何进行本地引入第三方包操作

2024-01-02 21:33:08 1428

原创 Nginx快速入门:nginx实现正向代理|反向代理和正向代理的区别(八)

正向代理与反向代理相反,目的是为了隐藏客户端,也就是请求的发起者,让服务提供者感知到的是一个代理服务器,这样可以保护客户端的安全。一些对安全性要求较高的企业,可以基于正向代理实现安全隔离环境。同时正向代理,也可以帮我们实现一种特殊的主备机制,这也是我们后续主要演示的。一句话:服务器不知道实际请求自己的到底是谁

2023-12-30 01:21:41 2513

原创 Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)

首先我们要知道http有什么问题,为什么要用https请求,http协议使用明文传输参数,这就导致参数传递过程中有被第三方截取到数据信息的风险(https用参数加密来解决),同时传输过程数据被截取,还可能被篡改(https用签名来保证数据完整性),下游也不知道收到的数据是不是原始数据,也就是不知道数据到底是谁发送的,有没有被改过(https用密钥对、非对称验签解决)。基于以上的情况,在企业生产系统中,我们都建议使用https协议进行接口请求、数据传输。

2023-12-24 23:51:27 1212

原创 Nginx快速入门:return、rewrite重定向、重写详解(六)

本章,我们重点讲解了重定向和重写的区别,并且讲解了return,rewrite的用法,用实际的案例进行了演示,下一节我们将展示nginx如何实现企业安全防护。

2023-12-24 23:50:29 3428

原创 Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)

上述案例我们讲解到了需要重定向跳转的问题,上述案例中可以看到我们重定向后地址栏的地址也发生了变化,这实际上也暴露了一些后台服务的地址信息,如果我们想地址不变化,内容进行转发即可,要怎么实现呢?这就需要详细学习nginx 重定向的内容,下一章我们将针对这块内容继续攻克。

2023-12-21 23:27:58 9800 5

原创 Nginx快速入门:负载均衡upstream配置详解(四)

今天我们学习了nginx的负载均衡模块upstream,包括nginx支持的负载均衡策略以及容灾策略,通过案例实际演示了我们如何实现负载均衡配置和主备节点搭建,要真正掌握知识,还需要大家一起根据文章实际演练。除了多节点的负载均衡转发,我们还有单节点的不同业务转发,根据域名的转发,各种各样的转发、代理配置,下一节,我们将继续讲解nginx的各种转发配置。

2023-12-21 23:27:24 3215 1

原创 Nginx快速入门:访问日志access.log参数详解 |访问日志记录自定义请求头(三)

首先我们在默认的nginx.conf文件中可以看到,对访问日志是有默认定义的,其中包含了定义日志格式,定义日志文件位置。如下所示,其中main为定义的日志格式别名,你可以定义成其他的名称。默认日志输出示例name: 定义的格式名称,自定义,后续在access_log参数中引用escape: 设置日志格式,默认为default,即默认输出,或者支持json, 按照json格式输出string: 要定义的日志格式的内容,可以在里面设置要记录的日志参数参数说明客户端IP地址客户端用户名。

2023-12-19 23:29:33 3563

原创 Nginx快速入门:安装目录结构详解及核心配置解读(二)

如上,我们通过upstream定义了要转发的后台tomcat服务的列表,如果不做特殊定义,默认的负载均衡算法就是轮询算法,后续我们会单独开一章来详细说明nginx的负载均衡配置。然后在server中定义了监听的端口是80端口,这样当我们通过80端口进来的访问就会进入到这个转发配置中因为这里没有什么特殊的域名,所以server_name就定义了一个localhostlocation后指定了。

2023-12-19 23:28:49 2424

原创 Nginx快速入门:Nginx应用场景、安装、部署及设置开机自启(一)

Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个非常流行的开源 Web 服务器软件。它是由俄罗斯程序员 Igor Sysoev 开发的,最初是为了解决在高并发场景下的C10k 问题(即一个服务器进程只能处理 10,000 个并发连接)的限制。Nginx 以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。

2023-12-18 23:33:44 2772

原创 elastic:nested实现对满足条件的数组元素聚合查询

某些业务场景下,我们要对数组元素进行聚合查询,就需要用到nested数据类型,但部分场景是针对数组中指定的元素进行聚合,于是就需要对数组元素进行限定,今天来看看这种场景如何实现。

2023-12-18 21:24:23 794

原创 redis: 记录一次线上redis内存占用过大问题解决过程

记录一次线上redis占用过大的排查过程,供后续参考。

2023-11-07 20:23:39 2790

原创 spring:实现初始化动态bean|获取对象型数组配置文件

近期因为要完成实现中间件的工具包组件,其中涉及要读取对象型的数组配置文件,并且还要将其加载为bean,因为使用了版本,很多springboot的相关特性无法支持,因此特此记录,以方便后续同学有相同情况可以参考。

2023-09-19 09:02:24 3297

原创 solr快速上手:聚合分组查询|嵌套分组指南(十二)

group用于实现简单的聚合分组查询、数值计算等facet与group有些相近,都是做分组查询的,但是facet允许用户再对结果集进行二次处理,也就是支持嵌套聚合,也可以对分组数量进行排序、过滤等,group会返回每个分组详细的数据列表docs,而facet并不会返回每个分组的docs,只是返回一个统计指标。facet与group可以结合使用。facet分组查询支持4大类型:facet.query: 自定义查询分组facet.field:按字段分组facet.range: 范围查询分组。

2023-08-19 22:09:39 4129

原创 Elastic:linux设置elasticsearch、kibana开机自启

每次启动服务器都要手动启动es服务,相当之不方便,为此,书写一个脚本,实现es、kibana的开机自启。

2023-08-08 08:00:00 2593

原创 Elastic:像mybatis-plus一样优雅的书写es客户端代码——Easy-Es

Easy-Es是以elasticsearch官方提供的为基础,而开发的一款针对es的ORM框架,类似于es版的mybatis-plus,可以让开发者无需掌握es复杂的DSL语句,只要会mysql语法即可使用es,快速实现es客户端语法条件构造器上述演示,我们构造查询条件时,使用了EsWrapperseasy-es 条件构造器介绍索引托管如果想要自动根据创建的es实体类来创建对应的索引,那么只需要调整索引的托管模式为非手动模式即可,因为这里我不需要自动同步数据,所以选择非平滑模式。

2023-08-06 16:45:52 1465

原创 springcloud:对象存储组件MinIO(十六)

MinIO是一个使用go语言开发的,开源的对象存储组件,能够提供高性能、高可用的数据存储能力,支持分布式部署,提供数据加密、访问控制、版本控制、生命周期管理和事件通知等功能。它还支持高级特性,如分片上传和分片下载,以提高大文件的处理效率。Object Browser: 对象管理页面,minio中所有的桶和桶中的文件都可以在这个页面查看,这里的桶 bucket,大家可以简单的理解为文件夹- Buckets: 桶管理页面,用于管理桶相关的配置,比如桶的访问权限、桶的生命周期(桶中文件保留几天)

2023-08-05 23:26:00 724

原创 solr快速上手:搭建solr集群并创建核心,设置数据同步(十一)

自此,我们针对solr集群的搭建,核心创建,数据同步都讲解完了,同时还需要改变的呢,是我们客户端连接时的代码,要调整为集群模式,这个我们在下一章继续讲解。

2023-07-10 23:08:52 3089

MSMQJAVA.rar

java远程向MSMQ队列发送消息,接收MSMQ消息所用jar包、dll文件等

2019-09-03

空空如也

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

TA关注的人

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