自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 随手记录第十五话 -- Spring Boot 3.2.3+Grafana+Prometheus+Loki实现一套轻量级监控加日志收集系统

在当今的软件开发中,监控和日志收集是至关重要的环节。它们帮助我们了解系统额运行状况、发现潜在问题,并及时进行优化和故障排除。本文将介绍如何使用结合来构建一套轻量级的监控和日志收集系统。

2024-08-28 11:55:23 1090

原创 随手记录第十四话 -- 在 Spring Boot 3.2.3 中使用 springdoc-openapi-starter-webmvc-ui

通过使用 springdoc-openapi-starter-webmvc-ui ,我们可以在 Spring Boot 3.2.3 中继续方便地生成和展示 API 文档,帮助我们更好地理解和管理项目中的接口。在实际应用中,可以根据需要进行更深入的定制和优化。希望这篇文章对你顺利过渡到新的 API 文档工具提供帮助,让你在开发过程中能够更好地与 API 进行交互和文档化。随手记录第十三话 – 关于Python自动化部署神器fabric的应用与差异随手记录第十五话 – xxxx。

2024-08-13 20:38:38 642

原创 面试宝典第四话 -- 如何设计一个支持10万QPS的会员系统

设计一个支持10万QPS的会员系统,需要从架构、技术选型、性能优化等多个方面综合考虑。通过微服务架构、分布式缓存、分库分表、负载均衡等技术手段,可以有效应对高并发的挑战,保证系统的高可用性和高性能。以上就是本文的全部内容了,希望这篇文章对你有所帮助!面试宝典第三话 – 如果系统QPS突然提升10倍该怎么处理?面试宝典第五话 – xxx非学无以广才,非志无以成学。

2024-08-13 19:24:57 571

原创 面试宝典第三话 -- 如果系统QPS突然提升10倍该怎么处理?

当系统QPS突然提升10倍时,通过性能监控、负载均衡、缓存策略、限流与降级等措施 ,可以有效的应对突发流量,保障系统的稳定性和高性能。本文介绍了这些措施的实现步骤,仅供大家参考。以上就是本文的全部内容了,希望这篇文章对你 有所帮助!面试宝典第一话 – 电商平台中订单未支付过期如何实现自动关单?面试宝典第四话 – 如何设计一个支持10万QPS的会员系统与君歌一曲,请君为我倾耳听。

2024-08-12 11:56:29 556

原创 面试宝典第二话 -- 如何设计一个秒杀系统

本文详细介绍了如何设计和实现一个秒杀系统,包括需求分析、设计思路和实现步骤。通过Redis缓存、RabbitMQ消息队列和Spring Boot框架的注解切面限流,可以实现一个高并发、高性能的秒杀系统。以上就是本章的全部内容了,希望这篇文章对你有所帮助!面试宝典第一话 – 电商平台中订单未支付过期如何实现自动关单?面试宝典第三话 – 如果系统QPS突然提升10倍该怎么处理?非学无以广才,非志无以成学。

2024-08-08 19:32:56 584

原创 面试宝典第一话 -- 电商平台中订单未支付过期如何实现自动关单?

本文介绍了三种实现订单未支付过期自动关闭的方法:定时任务、消息队列和RedisKey过期监听。定时任务简单易实现,但扫描频率和数据库压力需要权衡;消息队列灵活高效,但实现稍复杂。可以根据具体业务需求选择合适的方法。希望这篇文章对你有所帮助!以上就是本文的全部内容了!上一篇:[本篇是此系列的第一篇]面试宝典第二话 – 如何设计一个秒杀系统非学无以广才,非志无以成学。

2024-08-08 14:57:55 564

原创 随手记录第十三话 -- 关于Python自动化部署神器fabric的应用与差异

Python 的 Fabric 库在系统管理和自动化任务方面发挥着重要作用,随着其发展,出现了版本的迭代。

2024-08-02 17:15:13 365

原创 随手记录第十二话 -- JDK8-21版本的新增特性记录(Lambda,var,switch,instanceof,record,virtual虚拟线程等)

本文主要用于记录jdk8以来的新增特性及使用方法!

2024-08-01 15:25:21 312

原创 随机专享记录第一话 -- RustDesk的自我搭建和使用

RustDesk是继TeamView、向日葵等远程桌面软件后的新起之秀,最主要的是开源的可自己搭建中继服务。相比于公共服务器,连接一次等待的时间要多久,用过TeamView的都知道,而且还是免费的,不像某些远程搞各种个人证书,各种登录设备限制!先看看软件图,这是待连接界面。如果不是自己的中继服务器,左下角还会都显示一行我电脑是英文版,翻译过来。远程连接的画面。

2023-10-18 20:05:51 1366

原创 随手记录第十一话 -- PHP + yii2 初体验

啥也不想说了,项目是半路接过来,帮接入我们服务的。

2023-10-18 17:14:34 392

原创 随手记录第十话 -- 升级SpringBoot3.0 + JDK17的踩坑记录

随着有些jar包的升级,JDK1.8已经不是最稳定的版本了。前段时间接触到Web3相关,jar包的编译最低要JDK13了,碰巧另一个使用Kotlin写的jar包依赖需要17了,那就直接上17吧,同时Springboot也上到3.0。

2023-10-18 15:54:59 829

原创 随手记录第九话 -- Java框架整合篇

实例:Mybatis/*** 实现自定义bean并注册到BeanDefinitionRegistry//TestAction 无任何加载的标识 可以用这种方法向容器注册 mybatis里面用到 BeanDefinitionBuilder builder = BeanDefinitionBuilder . genericBeanDefinition(TestAction . class);

2023-03-29 16:11:38 1143 1

原创 随手记录第八话 -- Java基础整合篇

Java安装好后会包含JDK和JRE两个目录。JDK(Java Development Kit Java开发工具包),JDK是提供给java开发人员使用的,其中包含了java的开发工具,也包括了jre,其中的开发工具:编译工具(javac.exe) 打包工具(java.exe)等等。

2023-03-24 17:44:04 403

原创 随手记录第七话 -- Charles的使用大全(https、地址替换、重写参数、断点)

在windows上面用的fiddler确实在开发调试上有很大的帮助,换成mac后没有fiddler只有charles。要不然还真用不下去了的换回去。既然有同类型的工具,趁着有时间就学习一下。

2022-09-07 18:53:07 1630

原创 随手记录第六话 -- 在Mac上搭建整个开发环境记录(Java、Python、Vue、Docker、idea)

最近公司新买了一批Mac,冲着Mac的性能我也来体验了一波。结果可想而知,各种问题都随之而来,有时也搞得措手不及,在这里记录一下。

2022-09-07 17:30:09 916

原创 随手记录第五话 -- SpringCache搭配Redis的实现以及设置每个key的过期时间

Spring 从3.1 开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager 接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;Cache 接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache 接口下Spring 提供了各种xxxCache 的实现;如RedisCache , EhCacheCache , ConcurrentMapCache 等;...

2022-08-18 18:59:11 1943

原创 随手记录第四话 -- elasticsearch基于docker安装以及SpringBoot集成使用

Elasticsearch 是一个分布式的开源搜索和分析引擎,适用于所有类型的数据,包括文本、数字、地理空间、结构化和非结构化。Elasticsearch 是一个基于 Lucene 库的搜索引擎。它提供了一个分布式、支持多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。Elasticsearch 是用 Java 开发的,并在 Apache 许可证下作为开源软件发布。...

2022-08-17 17:06:05 862

原创 随手记录第三话 --你见过哪些神乎其乎的存储方式?

作为一个后端开发,那必要的存储肯定是要的。随着业务的不同,数据类型也是各种各样,接口需要也是各种各样,存储的方式也就慢慢的多了起来。本文主要记录工作中不同的业务场景下,不同的存储方式。...

2022-08-17 15:11:48 169

原创 随手记录第二话 -- 高并发情况下秒杀、抢红包都有哪些实现方式?

前面说了那么多,这里总结一下前端页面控制,点击按钮控制服务端缓存控制分布式处理订单主动、惰性、定期过期这里还记录一个骚操作,例如抢红包或者抽奖算法为避免每次请求都去走计算,可以提前生成号每个位置的概率或者金额,通过redislist的随机或者顺序取,然后位置空了,则重新计算后缓存如果还有其他的方式实现的,欢迎评论区留言哦以上就是本章的全部内容了。随手记录第一话–Java中的单点登录都有哪些实现方式?随手记录第三话–学习中?旧书不厌百回读,熟读精思子自知https。.........

2022-07-21 17:29:53 851

原创 随手记录第一话 -- Java中的单点登录都有哪些实现方式?

在早期开发中,一家公司可能只有一个Server,什么业务都写在一起,也就是早期的Servlet。随着业务的发展,逐渐的新增了很多的业务Server,这时候每个Server都要进行注册登录的话,那对用户来说简直是奔溃级的体验。一次注册、一次登录并不困难,但如果每次都登录,应该没什么用户会选择这个系列的产品了吧!单点登录实现的难点,其实就是任意服务怎么实现根据token串获取用户信息共享,这里记录一下之前用到过的实现方式redis缓存,毫无疑问肯定是最常见的mongo、mysql等db存储,公共库。......

2022-07-20 17:54:45 1631

原创 SpringSecurity第一话 -- 一文来吃透SpringSecurity+Jwt权限控制

SpringSecurity是一个能够为基于Spring的应用系统提供声明式的安全访问控制的安全框架,底层实现了一条一条过滤链路,用户请求进来,先判断用户的请求权限,再继续往下走,如果无权限的则抛出异常。为系统提供了声明式的安全访问控制功能,极大的减少了为系统安全控制编写的重复代码。SpringSecurity对Web安全的支持大量的依赖于Servlet过滤器。这些过滤器拦截进入请求,并在应用程序处理之前进行某些安全处理。...

2022-07-12 14:33:03 364

原创 Swagger第一话 -- Springboot集成Swagger及使用

需求变化快,api文档写到吐?字段漏掉或者更新不及时?集成这东西后,那就都不是问题,这就是Swagger基于,引入依赖2.代码初始化3.代码中使用两个接口,一个实体类4.对应的截图首页截图get接口详细截图post接口详细截图返回值如果为实体类,也可以在swagger上体现。既能显示还能调用接口,巴适。注意:上传文件且带参时,不支持在这里调用以上就是本章的全部内容了。上一篇:Jpa第一话 – Springboot集成Jpa以及Jpa的最全使用下一篇:SpringSecurity

2022-07-12 11:31:29 456

原创 Jpa第二话 -- Jpa多数据源集成

前面记录过Mybatis的多数据源,最近有定时清除各种记录需要用到多数据源,这里决定采用Jpa本文主要记录Jpa多数据源的配置与使用基于,引入依赖2.yaml配置3.连接代码其他数据源复制即可,但需要注意标签必须有且只能有一个,加上此注解的表示对应对象的默认值正常注解使用,在一个事务中如果同时操作两个库更新,取决于注解的事务类,默认的使用的是加了注解的数据源事务管理器,也可选择传参来指定使用某个数据源事务管理如果需要事务合并的需要使用到第三方事务管理包,在mybatis第二话 - mybatis

2022-07-12 10:56:36 405

原创 Jpa第一话 -- Springboot集成Jpa和Mybatis以及Jpa的最全使用

本文主要记录的详细使用。在做一些小型无并发的项目时,说实话第一个想到的就是Jpa,一个Entity走天下。基于1.2 yaml配置1.3 BaseEntity通用通用Entity要注意类上的注解,数据库自增策略要注意1.5 Repository接口1.6 插入&&更新数据jpa插入或者更新更新与插入唯一的区别就是更新多了个主键的字段需要注意字段一定要一一对应,分页和排序均可单独使用插入、更新、删除如果使用注解必须加mysql中的判空可以用if,list判空可以用coalesce(:

2022-07-12 10:35:10 1795

原创 SpringCloud第五话 -- Gateway实现负载均衡、熔断、限流

本文主要记录gateway实现路由转发,负载均衡,熔断和限流环境准备parent包gateway依赖springcloud版本管理2.yaml配置3.路由转发和负载均衡测试启动不同端口的user服务,然后通过gateway调用3.2 返回结果输出可以正常路由转发和负载均衡,默认策略是轮询熔断:就是通过在转发过程中失败的,从而采取的降级策略。良好的返回提示给前端。本来是想通过直接配置重定向的,奈何已经不更新了,没法兼容。直接采用一刀切算了。开启gateway和user服务访问后,然后停掉u

2022-07-08 17:02:17 4836 2

原创 SpringCloud第四话 -- OpenFeign实现模板化远程通信

本文主要记录Springboot集成OpenFeign实现模板化远程通信。对本文中内容有不了解的,建议先看前面的文章,底部有导航基于,一个order服务一个user服务1.2 yaml配置order调用端,配置的超时设置注释掉了,后面文章分享熔断限流用user服务仅需要注册远程调用依赖于注册中心,这里用的是nacos,其他的eureka也可以的客户端代码1.4.服务端暴露接口1.5.测试日志以上就是本章的全部内容了。上一篇:SpringCloud第三话 – 基于Nacos实现注册

2022-07-07 18:09:04 390

原创 SpringCloud第三话 -- 基于Nacos实现注册中心以及远程服务调用

本文主要记录基于Nacos实现服务注册中心和远程服务调用基于,order服务和user服务1.2 yaml配置order服务application.ymluser服务application.yml1.4 添加启动注解,需要注册到Nacos的服务都需要添加1.3 启动服务,查看控制台控制台地址,账号密码都是,查看服务列表服务详情图如果未配置,ip则显示外网ip,也会用于服务调用2.2 客户端调用代码2.3 服务端暴露接口2.4 服务调用测试访问客户端调用接口,截图

2022-07-07 16:29:22 699

原创 SpringCloud第二话 -- 基于Nacos实现配置中心

如果不满足上篇文章的eureka注册中心,那么本文记录的Nacos是不二之选。本文主要记录Springboot基于Nacos实现配置中心官网说明:Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。基于liunx centos7,镜像nacos/nacos-server:v2.1.0如果需要配置本地数据库的可以参考这篇文章访问,账号密码都是添加一个orderservice-dev.yaml配置,内容如下。

2022-07-07 15:59:34 959 5

原创 SpringCloud第一话 -- Eureka服务注册中心

如果在某个分布式系统中想要解决上述问题,那么这篇文章就是精华之处。回顾一下以前的常用手段:那么服务注册与发现就油然而生。Eureka是什么?Eureka是springcloud的核心模块之一,它是一个基于RestFul的服务,用于实现中间层服务发现和故障转移,Eureka对于微服务来说是非常重要的。有了Eureka后,在服务中通信只需要使用对应的服务表示,不再需要再配置文件中配一堆地址了,功能类似于dubbo的注册中心zookeeper。Eureka原理Eureka采用C/S的架构设计,所有的客户端都

2022-07-06 17:43:11 721

原创 JVM第三话 -- JVM性能调优实战和高频面试题记录

基本参数-XX参数调优使用,例如设置堆内存大小1.1 打印JVM中的参数列表添加JVM参数也可以直接在Java中获取获取到上述的使用情况上面是即时的,现在需要是发生OOM的时候保存2.JVM堆内存分析工具2.1 java bin目录下的jconsole 查看java进程的信息jvisualvm 比jconsole显示更全面,在工具-插件中安装Visual GC,上篇文章有详细使用,本文不做介绍jmc 和上述差不多日志内容分析分析日志工具三个调优角度:堆常用JVM常用参数调优官网.......

2022-07-04 18:12:29 285

原创 JVM第二话 -- JVM内存模型以及垃圾回收

从图中可以分为Metaspace元数据(非堆)、Old区老年代、Eden(Survivor0、Survivor1)区新生代也简称Young区因为新生代绝大多数对象生命周期比较短,经过回收会导致Young区空间不连续,造成空间碎片的问题。当给需要多个内存格的对象进行分配时无法分配,则会造成GC回收导致和CPU抢时间片。于是将Young区在分成Eden区和Survivor区上一篇:JVM第一话 – JVM入门详解以及运行时数据区分析下一篇:JVM第三话 – JVM性能调优实战和高频面试题记录......

2022-06-30 18:14:43 617

原创 JVM第一话 -- JVM入门详解以及运行时数据区分析

JVM(Java Virtual Machine) 是Jvm虚拟机的一种规范。当安装了JDK以后,可以看到默认是已安装HotSpot虚拟机的,Java程序需要运行在虚拟机上,所以Java语言是跨平台语言。Java语言的特点: 一处编译,多处执行,跨平台,安全性(1.摒弃指针 2、GC垃圾回收机制:(自动释放回收长时间不使用对象的内存))结构:JDK & JRE & JVM上一篇:MongoDB第二话 – MongoDB高可用集群实现下一篇:JVM第二话 – JVM内存模型以及垃圾回收.........

2022-06-29 17:20:56 389

原创 MongoDB第二话 -- MongoDB高可用集群实现

本文主要记录MongoDB集群的搭建坏境准备:liunx centos7,docker-compose,镜像mongo:4.2.21。一主一从一仲裁,在一台机实现了2.启动容器3.初始化集群_id:对应的replSet 名称host:如果需要程序连接,需要填宿主机IParbiterOnly:true 表示该节点为仲裁节点5.模拟master节点挂掉停掉master节点,进入slave节点容器中查看状态可以看到原来的slave节点已经变成了PRIMARY主节点集群未初始化......

2022-06-29 11:07:12 568

原创 MongoDB第一话 -- Docker安装MongoDB以及Springboot集成MongoDB

本文主要记录MongoDB的安装及使用MongoDB是一个基于分布式文件存储的数据库,是非关系型数据库,是面向集合存储。易使用,易部署,存储非常方便。因为是面向集合存储,结构完全自定义,不需要维护关系,可以通过字段来检索。基于liunx centos7,docker-compsoe,镜像mongo.4.2.212.2 启动容器2.3 控制台界面访问ip:8081进入控制台,数据忽略基于springboot2.6.83.2 yml配置3.3 基于集合方式的存储和mysql一样,只不过不支持

2022-06-28 18:07:32 585

原创 MQTT第二话 -- emqx高可用集群实现

本文主要记录mqtt-emqx的高可用集群搭建基于liunx centos7,docker-comspoe,emqx:4.4.4。设置固定内网ip时,可以先通过获取指定网络的网段1.3 集群控制台界面集成代码在上篇文章MQTT第一话 – Docker安装emqx以及Springboot集成emqx有了,这里就不贴了。mqtt client连接是单地址连接的,所以集群可由nginx转发,需要注意加心跳检测,转发地址填内网IP,不需要对外开放。以上就是本章的全部内容了。上一篇:MQTT第一话 – Doc

2022-06-28 10:57:54 1774

原创 MQTT第一话 -- Docker安装emqx以及Springboot集成emqx

本文主要记录mqtt消息件emqx的安装及使用。

2022-06-28 10:32:16 1911

原创 RocketMQ第三话 -- RocketMQ高可用集群搭建

本文主要记录RocketMQ两主两从的集群搭建liunx centos7,docker-compose,镜像apache/rocketmq:4.9.3master2和salve2复制上面内容,需要主要的是:brokerName、brokerId、brokerRole、listenPort这几个参数的不同2.3 启动2.4 java中连接测试只有配置不一样,其他无需修改2.5 控制台节点都启动的情况下,消费了一些消息,是分布消费的1.特别注意配置文件的不同和相同处2.内存大小控制,虚拟机测试

2022-06-27 17:42:18 415

原创 RocketMQ第二话 -- RocketMQ事务消息、延时消息实现

RocketMQ第二话 -- RocketMQ事务消息、延时消息实现本文主要记录Springboot集成RocketMQ来实现延时消息和事务消息基于springboot2.6.8,客户端RocketMQ4.9.31.定时延时消息,2.事务消息上一篇:RocketMQ第一话 – Docker安装以及Springboot集成RocketMQ下一篇:RocketMQ第三话 – RocketMQ高可用集群搭建...

2022-06-24 16:10:12 891

原创 RocketMQ第一话 -- Docker安装以及Springboot集成RocketMQ

RocketMQ第一话 -- Docker安装以及Springboot集成RocketMQRocketMQ是一个分布式队列模型的消息中间件,现支持事务消息、顺序消息、批量消息。定时消息RocketMQ由mqnamesrv和mqbroker组成,内部由group、topic、queue共同工作。全局顺序:一个Topic内所有的消息都发布到到同一个Queue按先进先出的顺序进行消费上一篇:RabbitMQ第三话 – RabbitMQ高可用集群搭建下一篇:RocketMQ第二话 – RocketMQ事务消息

2022-06-24 11:13:03 573

原创 RabbitMQ第三话 -- RabbitMQ高可用集群搭建

本文主要记录RabbitMQ的高可用集群搭建。liunx centos7,docker-compose,镜像rabbitmq:3.9-management,两个节点5672和56733.初始化集群进入容易内部执行,指定某一台机器为master,master不需要执行该操作也可以使用shell脚本4.web管理控制台访问15672或者15673均为以下界面,则搭建成功RabbitMQ第二话 – Springboot基于四种Exchange......

2022-06-23 16:31:31 394

空空如也

空空如也

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

TA关注的人

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