- 博客(289)
- 资源 (1)
- 收藏
- 关注
原创 好用的IDEA插件推荐,提升你的开发效率
0. 引言不同类型的开发插件具备不同的作用,有能够直接提升我们开发效率的,也有能够规范我们代码的。在茫茫的插件海中,结合我这些年的使用总结,给大家推荐几款IDEA插件1. 代码规范类1.1 Alibaba Java Coding Guidelines介绍首当其冲的必定是阿里的代码规范插件Alibaba Java Coding Guidelines,从我还是小白时到现在这款插件已经陪伴了我几年光阴。我愿称它为你最少最少要遵守的代码规范。安装后,当你书写的代码不符合阿里规范时,会将代码标黄,鼠标移动
2022-04-16 18:13:09 11631 11
原创 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 93141 256
原创 ELK搭建(一):实现分布式微服务日志监控
1、目标本次我们搭建的目标是通过ELK来收集微服务中的日志。本期主要以实操、快速搭建为主进行讲解,部分基础概念不做过多描述,后续会再单独出几期博客说明2、思路首先我们要部署的架构如下图所示,需要收集两个微服务的日志,并且最终在kibana中可视化呈现出来。可以看出日志的传输路线是:微服务产生日志,并将日志数据保存到磁盘中的.log文件中,filebeat监听log文件,将其数据收集并结构化后传输到logstash上,logstash将日志进行过滤收集,再传输到elasticsearch上,elast
2022-01-04 00:56:42 9714 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 3470 1
原创 java进阶:利用trueLicense实现项目离线证书授权
我们要实现的离线校验,实际上就是通过公私钥+证书的形式来实现的,首先生成公私钥,然后利用私钥生成证书,比如x509证书格式,x509证书由用户公共密钥和用户标识符组成。此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息我们的核心目的就是要生成的证书中包含有效期,即可实现授权有效期,然后通过接口拦截器,每次访问接口时利用公钥对证书进行校验,查看证书是否合法、是否在有效期内,即可实现我们进行离线控制的目的。
2024-11-18 20:30:00 864
原创 flink:java集成flink实现流数据处理(一)
2、引入依赖对应flink相关的依赖需要单独说明下,其jar版本需要根据flink版本来定,flink 1.11之前版本使用的是scala2.11, 之后加入了对scala2.12的支持,不同的版本引入的jar名称不同,比如包有3个,对应不同的scala版本,则为对多个版本的兼容版一般我们根据scala版本来定,比如我这里使用flink1.13, 则对应scala2.12
2024-09-27 19:00:00 2439
原创 dubbo:巧用dubbo的SPI机制实现各类定制功能(六)
SPI(Service Provider Interface),是一种服务发现机制,它允许服务提供者在运行时动态地为某个接口提供实现,而不需要在程序编译时进行硬编码。这种机制的核心思想是将装配的控制权移到程序之外,通过在模块化设计中实现接口与服务实现的解耦,从而提供一种插件化的扩展机制。SPI机制主要应用于框架和库的开发中,以支持服务的动态加载和替换。
2024-08-30 19:00:00 1875
原创 Java进阶:常常听到的热插拔插件功能原来这么简单
SPI是java提供的一直接口提供服务,或者说接口动态定制机制,之前我们介绍过java SPI实现接口扩展,而热插拔插件实际上也是基于SPI来实现的。SPI有3个核心步骤:(1)对接口类实现扩展的实现类(2)在资源目录中声明实现类路径(3)通过加载扩展的实现类,从而实现调用到这里我们针对java热插拔插件的实现就完成了,跟着操作下来你会发现神秘的热插拔功能或许没有那么难以实现。
2024-08-29 19:00:00 1977
原创 Java进阶:利用SPI机制不侵入源码而实现定制功能【附带源码】
首先我们要了解什么是SPI, (服务提供者接口 Service Provider Interface)是一种动态加载实现扩展点的机制,它允许服务提供者在运行时动态地为某个接口提供实现,而不需要在程序编译时进行硬编码。这种机制的核心思想是将装配的控制权移到程序之外,通过在模块化设计中实现接口与服务实现的解耦,从而提供一种插件化的扩展机制。SPI机制主要应用于框架和库的开发中,以支持服务的动态加载和替换在Java中,SPI机制的实现依赖于类,它负责查找和加载实现了特定接口的服务提供者。
2024-08-29 07:30:00 831
原创 dubbo:dubbo服务负载均衡、集群容错、服务降级、服务直连配置详解(五)
之前我们讲解了dubbo的基本使用,但在dubbo服务调用过程中,为了保证高可用dubbo提供者一般不是一个节点,当多个节点部署时,节点间的负载均衡问题随之而来,今天我们针对dubbo提供者服务的各类相关配置进行讲解
2024-08-27 19:00:00 1468
原创 dubbo:dubbo+zookeeper整合nginx实现网关(四)
首先针对nginx的学习我们早在nginx专栏就已经从零说明过,如果对于该组件的基础使用还未掌握的,建议大家可以先学习下nginx专栏Nginx快速上手专栏在本期文章中重点涉及其中如下几篇内容Nginx应用场景、安装、部署及设置开机自启(一)负载均衡upstream配置详解(四)nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)
2024-08-22 19:00:00 1187
原创 dubbo:dubbo+nacos整合springcloud gateway实现网关(三)
上次我们讲到使用zookeeper作为注册中心搭建dubbo微服务框架,但是我们还缺少一个服务总入口,也就是我们的网关服务。所以今天我们的目标就是给dubbo框架搭建一个网关。dubbo框架体系一般是结合nginx来作为网关的,但有时我们需要在网关拓展集成更多的功能,nginx可能无法满足,这是就可以结合springcloud gateway来实现
2024-08-21 18:45:00 1566
原创 dubbo:dubbo整合nacos实现服务注册中心、配置中心(二)
之前我们讲解的是dubbo+zookeeper体系来实现微服务框架,但相对zookeeper很多企业在使用nacos, 并且nacos和dubbo都是阿里出品,所以具备一些天生的契合性,所以今天我们来讲解dubbo如何整合nacos实现服务注册、配置
2024-08-20 19:00:00 2493
原创 RocketMQ快速入门:主从、集群模式原理及搭建实操(十一)
在学习完rocketmq的基础知识后,我们进入rocketmq高可用保障的章节,即从服务部署架构角度,探索其支持的多节点部署模式。
2024-07-09 09:47:11 1354
原创 RocketMQ快速入门:事务消息原理及实现(十)
最后一句话总结一下,rocketmq的事务消息,是通过half消息(即二阶段提交)+回查机制来实现的。
2024-06-28 22:00:00 1243
原创 RocketMQ快速入门:如何保证消息不丢失|保证消息可靠性(九)
在金融、电商等对数据完整性要求极高的行业,消息的丢失可能会导致数据不一致,严重影响业务逻辑和数据统计,也影响客户体验,所以在很多业务场景下,我们都要求数据不能丢失。而rocketmq中,如何对消息防丢失进行处理的呢?
2024-06-20 19:00:00 1934
原创 RocketMQ快速入门:如何保证消息顺序消费,附带源码分析(八)
顺序消息在金融、电商等场景中被广泛应用,只要业务需求对流程顺序性有严格要求,就有顺序消息的应用之地。因此理解顺序消息的原理和实现路径,是我们学习rocketmq的必经之路。
2024-06-20 18:45:00 3256
原创 RocketMQ快速入门:集成springboot实现各类消息发送|异步、同步、顺序、单向、延迟、事务消息(六)附带源码
上一节针对spring或其他框架集成rocketmq实现消息发送进行了讲解,而作为当前更加流行的springboot框架,实现rocketmq的集成则更加简单,本节我们就重点针对springboot集成rocketmq,实现异步、同步、单向、顺序、延迟、事务消息发送进行讲解,文末附上源码。
2024-06-18 08:15:00 1310
原创 RocketMQ快速入门:集成spring, springboot实现各类消息消费(七)附带源码
rocketmq支持两种消费模式:pull和push,在实际开发中这两种模式分别是如何实现的呢,在spring框架和springboot框架中集成有什么差异?今天我们一起来探究这两个问题。
2024-06-18 08:15:00 1989
原创 RocketMQ快速入门:集成java客户端实现各类消息发送|异步、同步、顺序、单向、延迟、事务(五)附带源码
至此我们针对java client实现各类消息发送的方法就梳理完成了,但实际工作中,我们现在更加常用的是基于springboot框架,而rocektmq也有专门针对springboot框架进行集成,实现起来更加简单,下一期我们重点讲解springboot集成实现消息发送。
2024-06-17 18:45:00 2287
原创 软考又考了,数据库范式这次一定要弄懂!
1NF: 属性值都是不可分的原子值2NF: 消除主属性对候选键的部分依赖3NF: 消除非主属性对候选键的传递依赖BCNF: 消除主属性对候选键的部分和传递依赖。
2024-06-17 18:15:00 1084
原创 利用cherry pick巧妙地将某次提交单独合并到其他分支
cherry-pick 其作用就是将其他分支的单个提交合并到当前分支,其名字也很贴合——“摘樱桃”,从分支树上摘下来指定的几颗。其应用场景包括:合并单个提交:当我们只想将某个分支上的某一次提交合并到当前分支时,可以使用cherry-pick命令,而不需要合并整个分支修复bug:当我们在一个分支上修复了一个bug,并希望将这个修复同步应用到其他分支时共性功能:当我们在一个分支上开发了一个新功能,这个功能可能属于基础性通用功能,也希望应用到其他版本时。
2024-05-28 22:00:00 1241
原创 后端常用技能:基于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 4978 1
原创 后端常用技能:解决java项目前后端传输数据中文出现乱码、问号问题
思路1:后端响应体及前端blob对象声明编码格式为utf8思路2:application.properties中设置全局编码格式思路3:重新编码传输数据思路4:jvm启动脚本中添加-Dfile.encoding=utf-8
2024-05-08 18:01:34 3995
原创 RocketMQ快速入门:group、topic、queue、tag等基本概念(四)
上一节,我们说明了rocketmq中的4个核心组成以及他们之间的工作关系。但其中穿插的topic, queue等概念,如果未接触过mq的同学可能会有些迷糊,所以本节,我们重点针对rocketmq中的基本概念进行讲解,之前学习过其他mq的同学也能够形成对比。
2024-04-23 20:31:16 3949
原创 RocketMQ快速入门:namesrv、broker、dashboard的作用及消息发送、消费流程(三)
接触rocketmq之后,大家首当其冲的就会发现需要安装3个组件:namesrv, broker, dashboard,其中dashboard也叫console,为选装。而这几个组件之前的关系是什么呢,消息发送和接收的过程是如何传递的呢,这是我们要详细了解的。
2024-04-23 20:30:48 1727 2
原创 RocketMQ快速入门:rocketmq 的应用场景、与其他mq的差异(二)
从上文可以看到rocketmq中实际上是有namesrv , broker两个组件的,除此之外rocketmq还有一个管理端,而这三个组件之前的关系是什么,如何协同合作的?我们将在下一节讲解。
2024-03-08 18:06:56 1351
原创 Mac M1:通过docker安装RocketMQ、RocketMQ-Dashboard
最近本地启动以前docker安装的rocketmq发现报错了,因为是从老mac迁移过来的,发现支持的芯片还是amd的,于是重新在docker下安装rocketmq,并记录下步骤,方便大家后续参考。
2024-03-08 18:05:30 4598 6
原创 Linux:安装minio并设置开机自启
最近在处理测试服务器的minio安装,发现之前并没有单独记录minio安装的详细过程,特此记录,供大家后续参考。
2024-02-22 09:53:54 3856 6
原创 RocketMQ快速入门: linux安装RocketMQ并配置开机自启(一)
针对rocketMQ的学习,首当其冲的就是正确安装服务,所以我们今天来看linux下如何安装rocketmq及其控制台服务,并设置各个服务的开机自启。
2024-02-17 20:53:50 4729
原创 Nginx快速入门:worker、master进程的作用和热部署原理(十)
master进程为nginx主进程,worker为工作进程,worker进程可以为多个,worker进程数一般是服务器CPU核数,不然过多的worker数,会导致进程相互竞争CPU,反而导致更多的上下文切换,降低效率。master主进程会作为监控进程,主要负责启动和监控其他worker进程,同时也会负责将请求进行分发给worker进程,master进程会管理这些worker进程的全生命周期,比如启动、停止、平滑升级等。也负责系统资源调配给worker进程,整理来看master是个管理者。
2024-01-07 01:36:02 2538
原创 Nginx快速入门:Nginx实现高可用|结合keepalived实现主备节点(九)
keepalived 是一个LINUX系统中开源的负载均衡和故障转移软件,它主要用于高可用性(HA)环境中的服务监控和冗余,其核心含义就是“保活”。keepalived 最初是为 Linux Virtual Server(LVS)设计的,但随着时间的推移,它已经发展成为一个更为通用的工具,可以用于各种类型的服务监控和负载均衡任务。keepalived 的工作原理是通过所谓的“虚拟路由冗余协议”(VRRP)来实现的。
2024-01-07 01:34:37 1620
原创 maven、springboot项目编译打包本地jar、第三方jar包
一般我们在maven项目中都是通过引入pom坐标的形式来引入第三方jar包,但某些场景下,第三方是直接提供的jar包文件,这就需要我们从本地引入第三方包并进行打包。所以我们今天来看下如何进行本地引入第三方包操作
2024-01-02 21:33:08 2572
原创 Nginx快速入门:nginx实现正向代理|反向代理和正向代理的区别(八)
正向代理与反向代理相反,目的是为了隐藏客户端,也就是请求的发起者,让服务提供者感知到的是一个代理服务器,这样可以保护客户端的安全。一些对安全性要求较高的企业,可以基于正向代理实现安全隔离环境。同时正向代理,也可以帮我们实现一种特殊的主备机制,这也是我们后续主要演示的。一句话:服务器不知道实际请求自己的到底是谁
2023-12-30 01:21:41 3573
原创 Nginx快速入门:实现企业安全防护|nginx部署https,ssl证书(七)
首先我们要知道http有什么问题,为什么要用https请求,http协议使用明文传输参数,这就导致参数传递过程中有被第三方截取到数据信息的风险(https用参数加密来解决),同时传输过程数据被截取,还可能被篡改(https用签名来保证数据完整性),下游也不知道收到的数据是不是原始数据,也就是不知道数据到底是谁发送的,有没有被改过(https用密钥对、非对称验签解决)。基于以上的情况,在企业生产系统中,我们都建议使用https协议进行接口请求、数据传输。
2023-12-24 23:51:27 1344
原创 Nginx快速入门:return、rewrite重定向、重写详解(六)
本章,我们重点讲解了重定向和重写的区别,并且讲解了return,rewrite的用法,用实际的案例进行了演示,下一节我们将展示nginx如何实现企业安全防护。
2023-12-24 23:50:29 5390
原创 Nginx快速入门:nginx各类转发、代理配置详解|location、proxy_pass参数详解(五)
上述案例我们讲解到了需要重定向跳转的问题,上述案例中可以看到我们重定向后地址栏的地址也发生了变化,这实际上也暴露了一些后台服务的地址信息,如果我们想地址不变化,内容进行转发即可,要怎么实现呢?这就需要详细学习nginx 重定向的内容,下一章我们将针对这块内容继续攻克。
2023-12-21 23:27:58 12061 5
原创 Nginx快速入门:负载均衡upstream配置详解(四)
今天我们学习了nginx的负载均衡模块upstream,包括nginx支持的负载均衡策略以及容灾策略,通过案例实际演示了我们如何实现负载均衡配置和主备节点搭建,要真正掌握知识,还需要大家一起根据文章实际演练。除了多节点的负载均衡转发,我们还有单节点的不同业务转发,根据域名的转发,各种各样的转发、代理配置,下一节,我们将继续讲解nginx的各种转发配置。
2023-12-21 23:27:24 7164 1
原创 Nginx快速入门:访问日志access.log参数详解 |访问日志记录自定义请求头(三)
首先我们在默认的nginx.conf文件中可以看到,对访问日志是有默认定义的,其中包含了定义日志格式,定义日志文件位置。如下所示,其中main为定义的日志格式别名,你可以定义成其他的名称。默认日志输出示例name: 定义的格式名称,自定义,后续在access_log参数中引用escape: 设置日志格式,默认为default,即默认输出,或者支持json, 按照json格式输出string: 要定义的日志格式的内容,可以在里面设置要记录的日志参数参数说明客户端IP地址客户端用户名。
2023-12-19 23:29:33 4595
原创 Nginx快速入门:安装目录结构详解及核心配置解读(二)
如上,我们通过upstream定义了要转发的后台tomcat服务的列表,如果不做特殊定义,默认的负载均衡算法就是轮询算法,后续我们会单独开一章来详细说明nginx的负载均衡配置。然后在server中定义了监听的端口是80端口,这样当我们通过80端口进来的访问就会进入到这个转发配置中因为这里没有什么特殊的域名,所以server_name就定义了一个localhostlocation后指定了。
2023-12-19 23:28:49 3749
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人