自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勤于笔记,成于点滴。

JAVA程序猿一枚,擅长分布式微服务、高并发、多线程等常规架构。记录成为架构师之路的点滴,分享工作中的各种疑难杂症。

  • 博客(144)
  • 资源 (7)
  • 收藏
  • 关注

原创 【实战】Spring Cloud Stream3.0 整合RocketMq

使用Spring Cloud Stream来进行整合RocketMq。如果我们有在一个项目中需要引入多个MQ的需求,用Spring Cloud Stream简直不要太好。当然,我们是直接使用Spring Cloud Stream3.0,不再像之前低版本那样需要引入通道类进行指定,3.0版本可用直接字配置文件进行粘接绑定信道。

2024-07-23 16:07:17 1106 4

原创 飞书开放平台自建网页应用登录与免登录

最近接收到了一个系统接入飞书的需求,大概就是当前系统只有账户密码登录,需要接入飞书扫码登录,另外还可以在飞书里面点击应用直接实现系统用户免登录。解析一下这个需求就是在浏览器端使用飞书扫码授权完成登录验证,同时需要提供飞书内部应用直接免登功能。哈哈,我调研了一些时间后将飞书网页应用登录与免登录接入了我们系统。现在就主要的接入点分享备注,以备二次查阅。

2024-07-16 17:26:52 1021 2

原创 【实战】EasyExcel实现百万级数据导入导出

最近接到一个百万级excel数据导入导出的需求,大概就是我们在进行公众号API群发的时候,需要支持500w以上的openid进行群发,并且可以提供发送openid数据的导出功能。可能有的同学会说,这么大的数据量发送为啥不用标签发送呢。哈哈,标签发送需要提前打标签微信限制50个一批,我们开10个线程也是需要3个小时左右才能打完,这样肯定不能满足客户需求。如果用openid群发就不一样了,微信支持10000个每批,基本上我开5个线程同时发送差不多几分钟搞定。所以,问题就来到了百万级excel数据的导入与导出啦。

2024-07-02 15:25:22 1798 2

原创 2024年软考架构设计师终于PASS啦

比如2024年的CPU调度算法、储存管理、数据库、项目进度工期、设计模式、系统架构风格、架构权衡分析法、软件测试、架构分析、架构设计、UML视图、结构化视图、知识产权等等都是大纲需要掌握的。上面是官方对这个资格证书的描述,其实说直白点就是解决系统分析和系统设计之间的鸿沟的,我们有了系统架构后续的概要设计和详细设计才能有效的开展,有参照目标的开展,至少我们的大体方向和系统主要架构实在这个阶段产生的,所以说非常的重要。综合知识有一般的题目都是大纲里面的只是,当然另一半就是超纲的课外知识。

2024-06-25 19:09:01 857 1

原创 【实战】Spring Cloud Stream 3.1+整合Kafka

之前我们已经整合过Spring Cloud Stream 3.0版本与Kafka、RabbitMQ中间件,简直不要太好,直接让我们不用再关心底层MQ如何集与消息收发。但是从Spring Cloud 2020版本开始,Spring Cloud Stream的版本升级至3.1.0以上版本,自此版本开始@StreamListener上面就增加@Deprecated注解,不赞成使用,有可能接下来的版本会删除掉。传说是有利于使用Project Reactor提供的事件流抽象(如Flux和Mono),命令函数在每个单独

2024-06-19 16:04:19 1132 1

原创 Java高级技术探索:深入理解JVM内存分区与GC机制

掌握JVM内存模型与垃圾回收机制,是每一位Java开发者进阶的必经之路。通过深入理解这些核心概念,并在实践中不断优化,我们能够编写出更加高效、稳定的Java应用程序。随着技术的发展,JVM也在不断进化,持续关注最新进展,灵活运用新特性和最佳实践,将使我们的开发工作更加得心应手。

2024-06-13 17:39:42 807 3

原创 【实战】kafka3.X kraft模式集群搭建

相信很多同学都用过Kafka2.0吧,其中需要zookepper集群来做元数据管理和集群选举,大大增加了运维成本,而且也很是影响Kafka性能。言归正传今天我们就分享一期Kafka3.x Kraft模式集群搭建,简直不要太爽。

2024-06-06 18:12:12 942 1

原创 使用高性能NIO框架netty实现IM集群对聊方案

netty支持websocket通讯协议,那么我们就可以用它来实现websoket,实现后端服务主动向前端推送消息的功能。比如AB用户分别注册到websoket后台,A用户向B用户发送消息,后端接收到A用户消息后判断消息接收者是B用户,然后后端逻辑直接调用B用户websoket连接进行推送即可。

2024-05-27 17:00:07 959 2

原创 【实战】SpringBoot整合Websocket、Redis实现Websocket集群负载均衡

因为有websocket的存在,使得前后的主动交互变得容易和低成本。其实在JAVA领域用SpringBoot框架集成Websoket还是很简单的,今天我们重点不是集成而是通过Redis的发布订阅实现Websocket集群通信,当然有条件的也可以用MQ代替。

2024-05-18 12:46:14 1499 4

原创 【实战】采用jenkins pipeline实现自动构建并部署至k8s

在前面的kubernetes系列博文中我们分享了从创建kubernetes集群到各种中间件的安装,以及从springboot项目的容器化部署到kubernetes外网映射,基本上包含了从0到1的K8S基础实战的整个过程。今天我们再分享一期采用jenkins pipeline实现自动构建并部署至k8s的实战演示,各位大大敬请鉴赏。本文中采用jenkins pipeline执行整个jenkins的构建过程,在pipeline中使用docker执行maven构建。构建后通过dockerfile将jar包构建为

2024-05-08 15:23:05 1453 9

原创 Spring Boot框架强大的事件驱动模型(ApplicationEvent)

SpringBoot框架提供了强大的事件驱动模型(ApplicationEvent),允许应用程序组件之间通过发布和监听事件来进行松耦合的通信。在实际的生产场景中,我们可以使用事件进行缓存、邮件、日志解耦,从而提高系统性能。

2024-04-25 17:29:56 1126 5

原创 Java编程JDK动态代理概述与实战演示

Java JDK动态代理实例,展示了如何利用JDK提供的动态代理机制为已有接口实现添加额外行为(如日志记录、权限检查、缓存等)。在这个例子中,LogInvocationHandler添加了方法调用的前后日志记录功能。当通过代理对象调用add()方法时,实际上会触发invoke()方法,在执行目标方法之前打印方法调用信息,执行之后记录方法执行耗时。

2024-04-19 16:12:24 718 2

原创 微信公众号第三方平台-公众号扫码授权接入代运营

根据公众号第三方平台开发流程可开发出一套可管理公众号/小程序的服务,服务可以直接部署在微信生态作为服务商。只要公众号/小程序理员用个人微信扫码进行授权,我们则可以拿到相关的业务接口权限,从而帮助商家实现代运营。

2024-04-11 18:17:34 1554 5

原创 Java编程使用CGLIB动态代理介绍与实战演示

以上就是一个完整的Java CGLIB动态代理实例。通过这个例子,可以看到我们成功地对ActionUserDataServiceImpl 类进行了代理,代理过程中插入了额外的前后置处理逻辑,而无需修改原有类的代码。在实际使用时,我们应根据项目需求和目标类特性选择合适的代理方案,不仅仅限制于CGLIB,如果有实现接口的类用JDK也可,这样才能达到事半功倍的效果。

2024-04-03 17:08:33 1270 3

原创 【实战】springboot整合swagger及knife4j

一个好的API文档不仅仅能够提供给测试人员编写测试用例,也能够直接给前端使用查阅,可以避免很多在系统集成过程中的问题。这不,最近在整合架构的时候留意到了swagger和knife4j。本身swagger提供的web界面可以很好的调试和查阅,现在加上knife4j的API文档自动生成功能,简直不要太好。那么,今天就分享一期springboot整合swagger及knife4j吧!各位大大敬请鉴赏。

2024-03-28 17:05:22 1680 6

原创 从0到1:Java构建高并发、高可用分布式系统的实战经验分享

在面对复杂的分布式系统构建时,不仅需要掌握扎实的技术栈,更要在实践中不断探索与优化,以满足日益增长的业务需求,同时保持对新技术的关注与学习,从而为团队带来更高效、稳定的系统解决方案。

2024-03-21 17:02:41 702 5

原创 【实战】VMware17虚拟机以及Centos7详细安装教程

很早之前就想分享一期关于虚拟机的博文,苦恼的是一直没有找到机会。这不最近我个人的阿里云服务器到期了,自己又不想续费,主要是太贵了。那么,现在就在本地电脑上安装个VMware17虚拟机吧,然后再安装一个Centos7系统,这不又可以愉快的玩耍了。打开VMware虚拟机,「文件 → 新建虚拟机 → 自定义 → 下一步」。自定义硬件 → 移除 「USB控制器、声卡」(这样可以让虚拟器启动的快一点)。至此,虚拟机中的硬件已经搭建完成。

2024-03-15 15:36:31 6872 1

原创 【实战】K8S集群部署nacos并接入Springcloud项目容器化运维

在k8s中部署nacos还是使用helm比较简单,直接下载安装包修改配置文件安装即可。我们在Springcloud、Springboot项目中集成nacos需要注意需要使用集群内部地址,当我们将项目部署在k8s集群中可以直接使用nacos配置和查询服务集群。

2024-03-07 15:53:12 1944 3

原创 设计并实现一个并发安全的LRU(Least Recently Used,最近最少使用)缓存结构

使用了LinkedHashMap作为基础数据结构,并通过重写removeEldestEntry方法实现了缓存满时自动淘汰最久未使用的元素。同时,为了保证在多线程环境下的线程安全性,我们在get和put方法上加了synchronized关键字或者使用了ReentrantLock来确保同一时间只有一个线程能执行修改缓存的操作

2024-02-26 14:47:25 527 5

原创 【JAVA高级面试题】运用锁机制实现一个自定义的阻塞队列

实现一个自定义的阻塞队列,它应该支持以下功能:添加元素到队列末尾(如果队列已满,则阻塞添加线程直到有空间)从队列头部移除元素(如果队列为空,则阻塞获取元素的线程直到有元素可消费)查询队列是否为空查询队列是否已满要求使用Java的ReentrantLock和Condition类来实现线程间的同步。

2024-02-21 17:19:12 467 4

原创 【实战】阿里智能编码助手通义灵码

阿里智能编码助手通义灵码提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力。在实际的开发过程中对我们代码质量和异常排查也有着良好的支持,可以大大节省编码时间。

2024-02-04 16:35:16 3712 4

原创 【实战】使用Helm在K8S集群安装MySQL主从

K8S对于云原生部署有着至关重要的作用,几乎所有的应用和中间件都可以部署在K8S,让其帮助我们进行管理。一般情况下我们推荐数据库不使用容器化部署,但是在某些场合为了方便管理也可以采用该种方式。今天我们就用在K8S集群部署MySQL,仅当作学习学习,在生产环境谨慎使用。Helm是K8S中包管理工具,包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的yum一样,能快速查找、下载和安装软件包, 能够将一组K8S资源打包统一管理, 是查找、共享和使用为Kubernetes构建的软件的最佳方式。

2024-01-31 15:03:55 2327 2

原创 【实战】SpringBoot自定义 starter及使用

Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。使用者只需要依赖相应功能的Starter,无需做过多的配置和依赖,Spring Boot就能自动扫描并加载相应的模块。

2024-01-20 17:05:07 1490 2

原创 【实战】K8S部署Redis集群代理Predixy

K8S部署Redis集群代理Predixy还是比较简单,只需要编译Predixy源码并构建镜像然后部署在K8S集群即可。最后的效果也是比较nice,直接可以负载均衡到任意的redis节点,让redis集群管理和K8S外部环境任意访问都轻而易举。

2024-01-17 17:33:19 1180 6

原创 【福利】百度内容审核平台实战

百度内容审核平台主要针对图像、文本、音视频、直播等多媒体内容,提供全方位的审核能力,覆盖涉黄、违禁、广告、恶心不适等丰富的审核维度,为业务健康发展保驾护航。相比于阿里、腾讯的内容审核接口百度的接口可以免费试用365天,而且提供完整的SDK,调用简单快捷。

2024-01-11 17:07:45 1287 7

原创 基于人工智能的数据库工具Chat2DB使用

Chat2DB 是一款有开源免费的多数据库客户端工具,集成了AIGC 生成式人工智能。其主要功能包括自然语言转sql、优化sql、转化sql、解释sql等功能,是一个真正意义上减轻劳动和提高效率的一款大模型数据库客户端工具。

2024-01-03 11:59:25 2185 2

原创 Mysql主从同步原理

Mysql主从同步的原理就是基于binlog进行数据同步的,说直白点就是从库按照一定的规则重新执行主库的binlog。当然在实际的开发中只要我们按照官方命令搭建好了主从集群,基本上就没有太大的问题。

2023-12-28 11:35:25 921 3

原创 Redis数据一致解决方案

在高并发的业务场景下redis与mysql数据库非常容易产生数据不一致的情况,我们可以采用redis缓存延迟双删除策略达到数据的最终一致性,也可以采用一部缓存更新自定义监听mysql binblog和采用canal开源中间件实现缓存的实时一致性方案。总的来说,都是比较简单的,而且都能够达到良好的效果。

2023-12-23 12:06:26 1200 2

原创 【神器】wakatime代码时间追踪工具

wakatime就是一个IDE插件,一个代码时间追踪工具。可自动获取码编码时长和度量指标,以产生很多的coding图形报表。这些指标图形可以为开发者统计coding信息,比如项目coding时长,修改了哪些文件,使用了什么语言等等。

2023-12-19 09:34:11 1974 8

原创 软考架构案例之大数据架构

软考大纲的大数据架构分为Lambda、Kappa两种架构,Lambda架构采用Hadoop、Spark实现批量处理数据,而Kappa架构则是采用Flink流式处理实现实时数据处理。在我们实际的开发实战场景中一般还是偏实时数据处理较多,比如广告平台、证券交易等等。

2023-12-13 15:08:34 1576 8

原创 snakeyaml编辑yaml文件并覆盖注释

snakeyaml编辑yaml文件并覆盖注释还是比较简单,大致就是在操作yaml文件之前对注释进行缓存,操作文件时先将yaml转为map,然后配置数据写入并转换成yaml文件,最后再将注释覆盖在yaml上即可。

2023-12-08 17:43:13 1711 6

原创 解决dom4j新增xml节点自动加上xmlns=““的问题

dom4j操作xml还是比较简单,有很多的api可用,需要注意在进行pom.xml操作需要保证父子的xmlns一致。

2023-12-02 10:55:01 819 5

原创 【实战】K8S Helm部署Redis Cluster & Redisinsight

运用helm部署Redes集群较为简单,相比于普通的文件部署省去了编写文件的过程,可直接使用charts完成部署。

2023-11-25 13:02:42 2349 5

原创 Kubernetes包管理工具Helm简介及使用

Kubernetes包管理工具Helm简介及使用还是比较简单,通过本博文我们可以知道Helm就是一个包管理工具如同centos中yum一样,是查找、分享和使用软件构建 Kubernetes 的最优方式。

2023-11-01 11:31:17 273 5

原创 Mybatis @MapKey注解返回指定Map源码解析与用例

Mybatis框架是Java后端常用的持久层框架,其中的@MapKey注解可以直接返回指定类型的Map。其核心原理就是对数据集合循环处理将指定字段作为key,数据作为value直接返回一个Map让我们直接使用以完成特定的业务功能。

2023-10-27 10:57:34 4492 7

原创 【实战】Kubernetes安装持久化工具NFS-StorageClass

前面的博文我们介绍了如何用kuberadmin的架构概述与简单执行流程,以及部署K8S集群的详细步骤。今天我们继续介绍如何安装持久化工具NFS-StorageClass。

2023-10-24 10:45:04 752 8

原创 小程序canvas层级过高真机遮挡组件的解决办法

使用cover-view组件,cover-view组件是覆盖在原生组件之上的文本视图,虽然有一定的使用限制但是我们的按钮button刚刚好在范围之内。

2023-10-18 10:29:01 2349 7

原创 【实战】kubeadmin安装kubernetes集群

kubeadmin安装kubernetes集群

2023-10-11 11:37:45 386 7

原创 Kubernetes概述架构与工作流程简述

Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。

2023-10-07 10:52:21 591 6

原创 【分布式云储存】Springboot微服务接入MinIO实现文件服务

Springboot微服务接入MinIO实现文件服务较为简单,我们只要按照官方文档引入依赖调用即可。值得注意的是我们根据需求选择接入ssl兼容方案和静态资源预览功能。当然,minio的private\custom\public可以完全实现我们各种需求,可以完全替代市场上付费和笨重的分布式服务。

2023-09-27 10:41:02 2306 5

2020.03版本idea ,big data tools 插件

2020.03版本idea ,big data tools 插件

2023-08-08

grafana.ini

grafana配置文件,搭建grafana容器使用

2023-08-01

sentinel-dashboard1.8.0控制台

sentinel-dashboard是一个单独的springboot项目,可以实现与sentinel连接实现轻量级的控制台。 包括功能有: 查看机器列表以及健康情况:收集 Sentinel 客户端发送的心跳包,用于判断服务是否在线。 监控 (单机和集群聚合):通过 Sentinel 客户端暴露的监控 API,定期拉取并且聚合应用监控信息,最终可以实现秒级的实时监控。 规则管理和推送:统一管理推送规则。 鉴权:生产环境中鉴权非常重要。这里每个开发者需要根据自己的实际情况进行定制。

2023-07-11

FastDFSf服务器安装包,包含java客户端包,整合nginx包.rar

FastDFSf服务器安装包FastDFS_v5.08.tar.gz,包含java客户端包fastdfs_client_java_v1.10.tar.gz,整合nginx包fastdfs-nginx-module_v1.16.tar.gz;

2020-07-30

fastdfs.rar

fastdfs服务器安装包下载即用,目前最新版本 FastDFS_v5.08.tar.gz,直接上传到服务器即可进行

2020-07-30

fastdfs-java-client.rar

服务器安装fastdfs并用java操作的客户端jar fastdfs-java-client.rar

2020-07-30

fastdfs-nginx.rar

linux搭建fastdfs整合nginx包-fastdfs-nginx-module_v1.16.tar.gz

2020-07-30

linux 安装 teamviewer qt5-qtwebkit-5.9.1-1.el7.x86_64.rar

linux 安装 teamviewer qt5-qtwebkit-5.9.1-1.el7.x86_64.rar

2020-04-30

2019版本财务科目级联sql.rar

财务科目级联数据,包含上下级关系,科目名称及编码等。包含国标财务科目,主要是sql 文件直接可以导入数据库。

2020-04-02

解压引入,亲测有效,内附操作说明.rar

Java mybatis工具,free-idea-mybatis 直接实现xml mapper跳转,操作简单,便于开发

2020-02-04

空空如也

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

TA关注的人

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