![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
架构技术栈
文章平均质量分 93
小码农叔叔
这个作者很懒,什么都没留下…
展开
-
【微服务】springboot整合对象映射工具MapStruct使用详解
springboot 整合 MapStruct 使用详解原创 2024-08-25 20:44:47 · 1548 阅读 · 73 评论 -
【微服务】springcloud整合dubbo3使用nacos作为注册中心
springcloud整合dubbo3使用nacos作为注册中心原创 2024-05-05 18:01:08 · 1494 阅读 · 76 评论 -
【微服务】API治理发展历史与未来趋势
API治理发展历史与未来趋势原创 2023-11-09 18:33:49 · 7716 阅读 · 194 评论 -
【Elasticsearch】es脚本编程使用详解
es脚本编程使用详解原创 2023-10-25 21:08:42 · 5360 阅读 · 224 评论 -
PostgreSQL自增主键的用法以及在mybatis中的使用
PostgreSQL自增主键的用法以及在mybatis中的使用原创 2022-10-16 09:56:17 · 12375 阅读 · 101 评论 -
谷歌 grpc 常用的几种通信模式
grpc 4种常用通信模式详细使用原创 2022-08-23 21:54:28 · 2868 阅读 · 86 评论 -
mycat 常用分片规则使用详解
mycat 常用分片规则使用原创 2022-08-14 08:28:20 · 4529 阅读 · 64 评论 -
datax实现mysql数据同步
datax 同步数据使用详解原创 2022-02-04 21:49:38 · 63287 阅读 · 3 评论 -
centos7安装promethus(普罗米修斯)
centos7安装promethus(普罗米修斯)原创 2022-02-03 17:26:18 · 14737 阅读 · 0 评论 -
java解决限制访问指定url
前言在web项目交付阶段,很多交付的小伙伴们会面临的一个问题就是安全漏洞扫描,关于安全漏洞问题,可以分为很多种,但从扫描者的角度,一旦他们认为你的后端服务接口暴露的太多,或过于明显,或没有前置的安全措施(通过登录的方式)就能拿到后台的数据,这样显然是不合理的,一旦扫出这样的接口,那么面临的一个问题就是,解决接口暴露的问题关于这个问题,其实说起来,还是跟系统在一开始的规划设计阶段的安全考虑不够完备,比如你的后台项目是否需要做必要的鉴权,是否集成了第三方安全框架等,如果在项目框架搭建之初,就能考虑到这些问题原创 2021-04-24 18:20:53 · 7873 阅读 · 4 评论 -
Java会话技术之 —— Spring Session
前言在上一篇我们聊到了会话技术的基础原理中session和cookie的使用,基于cookie和session可以实现客户端(浏览器)和服务端的会话存储,从请求的无状态变为一定程度的有状态,在文章最后,通过一个简单的演示,看到这样一种现象,即在分布式环境下,假如客户端第一次携带着JSESSINID访问了A服务器的某个接口,再次访问B服务器相同服务的相同接口时,却发现获取到的JSESSINID值为null很明显,在分布式环境下,基于单机模式下的session和cookie的值是无法跨进程互通,于是我们想,原创 2021-01-30 19:49:28 · 907 阅读 · 0 评论 -
Java会话技术之 —— cookie与session
前言说到cookie与session,想必大家都不陌生,写过单机模式下的登录业务逻辑的应该多少都会接触到cookie与session,对于cookie和session,很多同学第一反应就是cookie是存储再客户端浏览器的,而session是放在服务端的对于网上一大堆的关于对比cookie与session技术的,对于面试来讲,临时突击加以记忆还是可以的,但说到具体的使用以及原理,还是有必要对其做一些深入的理解和探讨首先我们通过一个具体的小案例来看看cookie与session的由来业务场景假如在单原创 2021-01-25 22:24:30 · 611 阅读 · 0 评论 -
activity任意节点动态加签
前言在之前的章节中,我们聊到了activity可以解决动态的任意加签节点的问题,但那时候我们的加签节点是临时存储的,而在现实的业务中,往往需要通过创建自身的业务表与activity的表建立一定的业务关系,从而实现数据持久化,即我们加签的节点不能因为加签完毕后就找不到历史数据了activity和mybatis实现了较好了的整合,如果采用spring的xml方式进行配置的话,我们只需要导入mybatis的依赖并进行简单的配置即可下面我们先通过一个简单的例子,体验一下如何将自建的业务表数据存储进去1、建表原创 2021-01-04 18:01:21 · 68803 阅读 · 14 评论 -
jvm常用监控命令总结
前言在生产环境中,为了保证Java应用的健康运行,需要动态检测应用运转过程中的各种指标,比较常见的像CPU利用率,内存使用,堆栈是否正常等另一方面,生产环境中出现的各种问题,包括异常信息等,都可以通过一些监控指标进行呈现,通过这些指标指导运维和开发人员快速排查问题定位问题与解决问题但说到底,监控的本身离不开原始数据的采集,而JVM本身可以通过相关的命令得出许多有助于分析,排查和定位问题的源信息,本篇将介绍开发过程中常用的一些JVM监控命令,方便工作中快速查阅命令说明常用形式jp原创 2021-01-03 15:40:05 · 1110 阅读 · 0 评论 -
JVM基础总结
前言作为一名Java开发人员,有必要对JVM有一个全面系统的认识,从而更好的指导在开发过程中指导我们更高效的开发,以及解决生产中的问题1、什么是JVMJVM全称Java虚拟机,即Java应用运行的环境(Java二进制字节码的运行环境)Java虚拟机是一台执行Java字节码得虚拟计算机,拥有独立得运行机制,但是其运行的Java字节码文件未必由Java语言编译而成,可以理解为一套标准定义的规范JVM平台支持的各种语言可以共享Java虚拟机带来的跨平台性、优秀的垃圾回收器,以及可靠的即时编译器Jav原创 2021-01-02 22:52:17 · 5234 阅读 · 0 评论 -
tomcat请求处理过程源码分析
前言在之前的篇章中,基本上了解了tomcat的整体架构,并通过源码调试的方式分析了tomcat初始化过程中各个组件主要做的事情,我们知道,tomcat作为一款企业应用级的容器,其最重要的功能就是发布应用,接收客户端的请求并响应,但是从tomcat底层其究竟是怎么从接收一个请求到最后响应给客户端,这个过程是怎么执行的呢?本篇通过源码的方式简单分析一下环境准备编写一个简单的web工程,使用本地的tomcat部署起来并运行,由于这个过程比较简单,相信做过web应用开发并使用tomcat部署过项目的同学都知道原创 2020-12-19 13:56:00 · 1674 阅读 · 3 评论 -
mybatis使用总结
前言mybatis作为一门市面上使用比较多的持久层框架,熟练掌握其使用是每一个开发人员必备的技能,下面就mybatis在开发使用中常用的技术点做一下汇总,以便后续使用中迅速查阅1、参数输入类型mybatis支持多种参数类型,对应的标签即为parameterType,参数类型支持:简单类型,POJO类型,Map类型,List类型(数组),其中Map类型和POJO相似,数组类型的在动态sql中使用较多简单类型根据用户ID查询一个用户,这里parameterType为int类型 <select原创 2020-11-29 22:51:20 · 843 阅读 · 0 评论 -
mybatis源码学习篇之——执行流程分析
前言在正式学习mybatis框架源码之前,需要先弄懂几个问题?myabtis框架是什么?为什么需要mybatis框架?使用mybatis框架带来的好处是什么?回答这几个问题之前,我们先来看一下,之前在没有框架的时候,假如使用jdbc的方式进行开发,会怎样呢?下面来看一段使用jdbc的方式查询数据库的代码吧public class TestJdbc { public static void main(String[] args) { Connection connection原创 2020-11-29 13:18:12 · 756 阅读 · 2 评论 -
mybatis源码环境搭建
前言mybatis在众多的数据持久化框架中应该说是目前使用最多的,其优秀的设计和底层封装,值得很多开发人员进行学习,下面让我们先来构建一下mybatis的源码阅读环境吧准备1、github下载mybatis源码https://github.com/mybatis/parent/tree/mybatis-parent-302、导入idea将下载好的源码,通过idea导入,在开始编译之前,需要修改pom文件中的几处配置,避免构建过程中报错找到ognl坐标依赖将true标签的true修改为fals原创 2020-11-29 10:25:36 · 1054 阅读 · 0 评论 -
tomcat启动流程分析
前言tomcat究竟在启动的时候做了哪些事情呢?从直观上讲,当tomcat启动完毕后,部署在tomcat里的项目,就可以通过外部的http形式进行访问了,但有个疑问是,为什么可以访问呢?其内部都做了哪些准备工作呢?本篇通过源码来了解一下tomcat启动的过程吧通过上一篇的分析,我们初步了解了tomcat内部的基本构成,包括的基本组件,这些组件的配合构成了tomcat的逻辑上的架构从大的方面划分,tomcat在启动过程中,主要完成了2件事情,第一初始化容器组件,第二启动相关的线程等待读写事件的接入to原创 2020-11-25 23:29:12 · 1145 阅读 · 0 评论 -
tomcat基础架构剖析
前言关于tomcat,可以从很多个维度去分析,作为一款优秀的JavaEE容器,从架构设计,线程模型,设计模式等诸多方面可以成为我们日产工作的借鉴,打算通过几个小节的深入研究探讨一下tomcat中的核心内容本篇从tomcat的总体架构出发,了解一下其优秀的架构设计一次请求的完整过程不管是使用springmvc,springboot还是servlet,一个请求从客户端发起到最终收到响应,大致经历的过程如下:容器接收到请求解析请求参数,并包装为容器的请求,根据请求路径匹配映射的servlet容器原创 2020-11-23 23:18:16 · 818 阅读 · 0 评论 -
skywalking搭建与使用
前言在分布式环境中,对于服务的监控与链路追踪变得越来越重要,简单来说,相比单体应用,分布式环境下的服务链路变得更长,问题定位、排查与解决也更加复杂,因此使用一款好的服务监控工具可以为Java开发人员和运维人员大大提升工作效率目前,对于微服务应用的监控体现在多个维度上,比如应用层的监控,大家熟知的各自restFul接口,数据库层面的监控,比如sql执行,慢查询sql检测,服务链路追踪,比如A服务通过feign调用B服务,B再调C服务等,服务器性能上的监控,比如JVM等相关参数等以上大概罗列了实际应用中比原创 2020-11-15 13:17:20 · 6851 阅读 · 0 评论 -
tomcat源码环境构建
前言tomcat作为Java项目运行的容器,基本上算是目前使用最多的容器了吧,因此对tomcat的容器的研究很有必要,不仅是学习容器本身的设计思想,更能通过源码的调试和阅读对于其深层的原理进行较好的研究,对再学习其他框架很有帮助,因此构建起tomcat的源码阅读环境很有必要,下面小编就来演示下如何基于tomcat8版本构建源码的阅读环境吧1、官网下载tomcat的源码包进入官网:https://tomcat.apache.org/download-80.cgi,点击这里下载到本地下载之后直接解压就原创 2020-11-12 20:16:48 · 717 阅读 · 0 评论 -
quartz监听器使用
前言和许多框架类似,quartz也提供了监听器即listener的功能,通过监听器可以达到在被调度的任务之前,之后,或者任务执行过程中,得到人为的干预的效果,举例来说,我们希望在某个job执行前过滤一部分数据,或者在job完成时给系统管理员发一封邮件,甚至我们希望调度任务跳过节假日的执行等,在类似的业务场景下,我们就可以考虑使用quartz提供的监听器功能Quartz监听器类型Quartz主要提供了3种类型的监听器,分别是:JobListener、TriggerListener、SchedulerL原创 2020-11-11 19:08:43 · 2081 阅读 · 0 评论 -
quartz基本使用
前言众所周知,Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,在众多的中小项目中有着广泛的使用(本人所在的项目也有部分使用),Quartz的一个特点就是,引用简单,能和既有的框架做快速的整合,不管是基于spring的项目还是springboot的项目,甚至是简单的web项目,都可以快速的引入,加上学习成本低,对于大多数小伙伴来说,是个不错的选择Quartz基本概念Quartz 是一个完全由 Java 编写的开源作业调度框架,为在 Java 应用程序中进原创 2020-11-08 11:15:09 · 1202 阅读 · 0 评论 -
elastic-job控制台部署与使用
前言elastic-job官方提供了对于后台应用中的job管控台,可以比较方便的对正在运行的分布式job做一些基本的管理,比如修改job配置参数,启停,废除任务等,下面让我们将控制台部署起来看看效果如何1、git下载elasticjob源码git地址:https://github.com/apache/shardingsphere-elasticjob通过git命令将项目下载到服务器或者本地,2、进入项目根目录,执行编译打包命令mvn clean install -Dmaven.test.sk原创 2020-11-07 13:46:46 · 4730 阅读 · 3 评论 -
基于zookeeper实现分布式锁
前言在分布式锁的实现中,zookeeper也是一种不错的选择,了解zookeeper的同学应该知道,zookeeper不仅可以作为集群的部署的中间件的服务协调器,器本身也是具有一定的数据存储结构的,有点类似于文件的分层结构,但是它们本身是有序的基于它的存储数据的文件结构特性,可以利用zookeeper实现分布式锁,具体来说,其实现原理如下:利用zookeeper的临时有序节点的特性【zookeeper的节点类型】多线程并发创建临时节点时,得到的节点序列是有序的序号最小的那个线程获得锁其他线程则原创 2020-09-29 08:48:33 · 967 阅读 · 1 评论