【流式传输】使用Spring Boot实现ChatGpt流式传输
引言
在ChatGpt火了这么久,他的那种单字单字返回的格式可能让很多朋友感到好奇,在之前我用c#写了一个版本的,同时支持IAsyncEnumerable以及SSE,今天把之前写的Java版本的也发出来,和大家一起学习,有不对的地方,欢迎各位大佬指正。
Code
我这边用的是J...[2023/12/21]
ConcurrentModificationException日志关键字报警引发的思考
本文将记录和分析日志中的ConcurrentModificationException关键字报警,还有一些我的思考,希望对大家有帮助。
一、背景
近期,在日常的日志关键字报警分析时,发现我负责的一个电商核心系统在某时段存在较多ConcurrentModificationException异常日...[2023/12/11]
【实用+干货】如何使用Clickhouse搭建百亿级用户画像平台看这一篇就够了
背景
如果你是用户,当你使用抖音、小红书的时候,假如平台能根据你的属性、偏好、行为推荐给你感兴趣的内容,那就能够为你节省大量获取内容的时间。
如果你是商家,当你要进行广告投放的时候,假如平台推送的用户都是你潜在的买家,那你就可以花更少的钱,带来更大的收益。
这两者背后都有一项共同的技术支撑,...[2023/12/5]
用户注册这样玩,保你平安用户注册这样玩,保你平安
前言
基本上每个系统系统都包含用户注册、发送验证码等基本操作。在前些年,我还记得我在逛 csdn、贴吧、网易新闻等网站的时候是可以不登陆也能浏览完网页内容的,但是近几年这些网站已经改成了不登陆不让用,浏览网页时不时提醒你要进行登录,对于一些不喜欢注册的用户造成了相当大的困扰。
但是不知道大家有...[2023/12/1]
三个月写了个短信平台,开源出来!
1 初心
大家好,我是勇哥。花了三个月的时间,我手写了个短信平台服务 platform-sms,今天开源出来 Beta 版本。
写这个开源项目的初心其实很简单:"帮助初中级研发工程师入门架构设计,提升他们的技术认知"。
2018年,作为架构师,我参与一个短信平台的重构。发送短信的场景包括...[2023/11/29]
简单地聊一聊Spring Boot的构架
本文由葡萄城技术团队发布。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。
前言
本文小编将详细解析Spring Boot框架,并通过代码举例说明每个层的作用。我们将深入探讨Spring Boot的整体架构,包括展示层、业务逻辑层和数据访问层。通...[2023/11/15]
产品代码都给你看了,可别再说不会DDD(十):CQRS产品代码都给你看了,可别再说不会DDD(十):CQRS
这是一个讲解DDD落地的文章系列,作者是《实现领域驱动设计》的译者滕云。本文章系列以一个真实的并已成功上线的软件项目——码如云(https: www.mryqr.com)为例,系统性地讲解DDD在落地实施过程中的各种典型实践,以及在面临实际业务场景时的诸多取舍。
本系列包含以下文章:
D...[2023/11/6]
Prometheus+Grafana实现服务性能监控:windows主机监控、Spring Boot监控、Spring Cloud Alibaba Seata监控
1、Prometheus介绍
Prometheus使用Go语言开发,中文名称叫:普罗 米修斯。Prometheus是一个开源系统最初在SoundCloud构建的监控和警报工具包。自 2012 年成立以来,许多公司和组织已经采用了 Prometheus,它现在是一个独立的开源项目并独立于任何公司...[2023/11/3]
Isito 入门(九):安全认证
本教程已加入 Istio 系列:https: istio.whuanle.cn
目录7,认证Peer AuthenticationPeerAuthentication 的定义实验RequestAuthencationRequestAuthencation 的定义AuthorizationPol...[2023/11/1]
高性能日志脱敏组件:已支持 log4j2 和 logback 插件高性能日志脱敏组件:已支持 log4j2 和 logback 插件
项目介绍
日志脱敏是常见的安全需求。普通的基于工具类方法的方式,对代码的入侵性太强,编写起来又特别麻烦。
sensitive提供基于注解的方式,并且内置了常见的脱敏方式,便于开发。
同时支持 logback 和 log4j2 等常见的日志脱敏插件。
拓展阅读
金融用户敏感数据如何优雅地实现...[2023/10/19]
【译】为什么命名“它”为依赖属性(DependencyProperty)
当我们创建新的类和成员时,我们花费了大量的时间和精力是它们尽可能的好用,好理解,好发现。通常我们会遵循.Net框架设计指南,尤其是会不断地研究这个新类与其他类,未来计划等内容之间的关系。
当命名依赖属性(DependencyProperty)和依赖对象(DependencyObject)的时候...[2023/10/13]
若依(ruoyi)开源系统保姆级实践-完成第一个页面
一、案例描述
若依官网文档地址:http: doc.ruoyi.vip/ruoyi/document/hjbs.html
本教程主要内容,自定义数据库表,使用若依开源系统生成代码并配置权限。
若依环境配置
新建数据表t_user,利用若依代码生成工具生成服务端及页面代码。
菜单配置
权限配置...[2023/10/11]
Spring Boot虚拟线程与Webflux在JWT验证和MySQL查询上的性能比较
早上看到一篇关于Spring Boot虚拟线程和Webflux性能对比的文章,觉得还不错。内容较长,我就不翻译了,抓重点给大家介绍一下这篇文章的核心内容,方便大家快速阅读。
测试场景
作者采用了一个尽可能贴近现实操作的场景:
从授权头信息中提取JWT
验证JWT并从中提取用户的Email
使...[2023/9/20]
深入浅出:SPI机制在JDK与Spring Boot中的应用
本文分享自华为云社区《Spring高手之路14——深入浅出:SPI机制在JDK与Spring Boot中的应用》,作者:砖业洋__ 。
Spring Boot不仅是简化Spring应用开发的工具,它还融合了许多先进的机制。本文深入探讨了Spring Boot中与Java的标准SPI相似的机制,揭...[2023/9/15]
Node.js vs. Spring Boot:Hello World 性能对决,谁更快一点?
前言:
Spring Boot 在 Java 生态中备受欢迎,它是一款基于 Java 构建的轻量级服务端框架,主要用于 Web 服务。Spring Boot 的应用使得创建各类基于 Spring 的企业级应用变得异常简单。Node.js作为一种基于Chrome V8引擎的JavaScript运行...[2023/9/14]
分布式锁的3种实现!附代码
分布式锁是一种用于保证分布式系统中多个进程或线程同步访问共享资源的技术。同时它又是面试中的常见问题,所以我们本文就重点来看分布式锁的具体实现(含实现代码)。
在分布式系统中,由于各个节点之间的网络通信延迟、故障等原因,可能会导致数据不一致的问题。分布式锁通过协调多个节点的行为,保证在任何时刻只...[2023/9/13]
@Async注解详解 以及 可能遇到的各种问题
一、简介 1)在方法上使用该@Async注解,申明该方法是一个异步任务; 2)在类上面使用该@Async注解,申明该类中的所有方法都是异步任务; 3)方法上一旦标记了这个@Async注解,当其它线程调用这个方法时,就会开启一个新的子线程去异步处理该业务逻辑。 4)使用此注解的方法的类对象,必须是...[2023/9/13]
Spring Boot 中使用 Poi-tl 渲染数据并生成 Word 文档
本文 Demo 已收录到 demo-for-all-in-java 项目中,欢迎大家 star 支持!后续将持续更新!
前言
产品经理急冲冲地走了过来。「现在需要将按这些数据生成一个 Word 报告文档,你来安排下」
项目中有这么一个需求,需要将用户填写的数据填充到一个 Word 文...[2023/9/10]
小知识分享:控制层尽量别暴露这样的接口,避免横向越权。
前言
谈不上是多么厉害的知识,但可能确实有人不清楚或没见过。
我还是分享一下,就当一个小知识点。
如果知道的,就随便逛逛,不知道的,Get到了记得顺手点个赞哈。
正文
1、接口别随便暴露
当一个项目的维护周期拉长的时候,不断有新增的需求,如果经手的人也越来越多,接口是会肉眼可见增多的...[2023/9/9]
地表最帅缓存Caffeine地表最帅缓存Caffeine
简介
缓存是程序员们绕不开的话题,像是常用的本地缓存Guava,分布式缓存Redis等,是提供高性能服务的基础。今天敬姐带大家一起认识一个更高效的本地缓存——Caffeine。
Caffeine Cache使用了基于内存的存储策略,并且支持高并发、低延迟,同时还提供了缓存过期、定时刷新、缓...[2023/9/6]
paging组件的用法和意义
一.Paging组件的意义
分页加载是在应用程序开发过程中十分常见的需求,我们经常需要以列表的方式加载大量的数据,这些数据通常来自网络或本地数据库。然而,如果一次性将所有数据全部加载出来,必然会消耗大量的时间和数据流量,而且用户可能只是需要一部分数据就行。因此,Google便推出了pagi...[2023/8/29]
通过AOP拦截Spring Boot日志并将其存入数据库
本文分享自华为云社区《Spring Boot入门(23):【实战】通过AOP拦截Spring Boot日志并将其存入数据库》,作者:bug菌。
前言
在软件开发中,常常需要记录系统运行时的日志。日志记录有助于排查系统问题、优化系统性能、监控操作行为等。本文将介绍如何使用Spring Boot和...[2023/8/29]
quarkus数据库篇之四:本地缓存
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是《quarkus数据库篇》系列的第四篇,来实战一个非常有用的知识点:本地缓存
本地缓存可以省去远程查询数据库的操作,这就让查询性能...[2023/8/18]
微服务面试必读:拆分、事务、设计的综合解析与实践指南
谈谈你对微服务的理解,微服务有哪些优缺点?
首先,微服务是对传统单体架构的一种优化。当一个单体架构随着业务的增加而变得臃肿时,微服务通过将业务拆分成小的独立单元来进行优化。
微服务的优点有以下几点:
业务清晰:拆分微服务后,每个服务只负责一个独立的业务,没有与其他业务耦合,使新员工能够快速理...[2023/8/14]
quarkus依赖注入之十二:禁用类级别拦截器
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本篇是《quarkus依赖注入》系列的第十二篇,继续学习拦截器的另一个高级特性:禁用类级别拦截器
本篇由以下内容构成
编码验证类拦截...[2023/8/11]
SpringBoot3基础用法SpringBoot3基础用法
目录一、背景二、环境搭建1、工程结构2、框架依赖3、环境配置三、入门案例1、测试接口2、全局异常3、日志打印3.1 日志配置3.2 日志打印四、打包运行五、参考源码
技术和工具「!喜新厌旧」
一、背景
最近在一个轻量级的服务中,尝试了最新的技术和工具选型;
即SpringBoot3,...[2023/8/9]
Spring Boot 最佳实践
本文翻译自国外论坛 medium,原文地址:https: medium.com/@raviyasa pring-boot-best-practices-for-developers-3f3bdffa0090
Spring Boot 是一种广泛使用且非常流行的企业级高性能框架。以下是一些最佳实践...[2023/8/9]
quarkus依赖注入之十:学习和改变bean懒加载规则
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本篇是《quarkus依赖注入》系列的第十篇,来看一个容易被忽略的知识点:bean的懒加载,咱们先去了解quarkus框架下的懒加载规则...[2023/8/9]
SpringBoot3之Web编程
标签:Rest.拦截器.swagger.测试;
一、简介
基于web包的依赖,SpringBoot可以快速启动一个web容器,简化项目的开发;
在web开发中又涉及如下几个功能点:
拦截器:可以让接口被访问之前,将请求拦截到,通过对请求的识别和校验,判断请求是否允许通过;
页面交互:...[2023/8/9]
protoc-gen-doc 自定义模板规则详解protoc-gen-doc 自定义模板规则详解
protoc-gen-doc 自定义模板规则详解
配套演示工程
此项目中所用 proto 文件位于 ./proto 目录下,来源于 官方proto示例
此项目中所列所有模板case文件位于 ./tmpl 目录下
此教程均基于 markdown 文本演示
前言
最近有通过 proto 文件...[2023/8/4]
简述分布式链路追踪工具——Jaeger
1、简介
1.1 Jaeger是什么
Jaeger 是受到 ? ?Dapper??? 和 ? ?OpenZipkin??? 启发的由 ? ?Uber Technologies?? 作为开源发布的分布式跟踪系统,兼容 OpenTracing ...[2023/8/4]
quarkus依赖注入之六:发布和消费事件
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是《quarkus依赖注入》系列的第六篇,主要内容是学习事件的发布和接收
如果您用过Kafka、RabbitMQ等消息中间件,对消息...[2023/8/4]
【高并发】SimpleDateFormat类到底为啥不是线程安全的?(附六种解决方案,建议收藏)
大家好,我是冰河~~
首先问下大家:你使用的SimpleDateFormat类还安全吗?为什么说SimpleDateFormat类不是线程安全的?带着问题从本文中寻求答案。
提起SimpleDateFormat类,想必做过Java开发的童鞋都不会感到陌生。没错,它就是Java中提供的日期时间...[2023/8/2]
quarkus依赖注入之四:选择注入bean的高级手段
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
本文是《quarkus依赖注入》系列的第四篇,在应用中,一个接口有多个实现是很常见的,那么依赖注入时,如果类型是接口,如何准确选择实现呢...[2023/8/2]
是时候丢掉BeanUtils了
前言
为了更好的进行开发和维护,我们都会对程序进行分层设计,例如常见的三层,四层,每层各司其职,相互配合。也随着分层,出现了VO,BO,PO,DTO,每层都会处理自己的数据对象,然后向上传递,这就避免不了经常要将一个对象的属性拷贝给另一个对象。
例如我有一个User对象和一个UserVO对象,...[2023/7/31]
记一次线上问题 → Deadlock 的分析与优化
开心一刻
今天女朋友很生气
女朋友:我发现你们男的,都挺单纯的
我:这话怎么说
女朋友:脑袋里就只想三件事,搞钱,跟谁喝点,还有这娘们真好看
我:你错了,其实我们男人吧,每天只合计一件事
女朋友:啥事呀?
我:这娘们真好看,得搞钱跟她喝点
问题复现
...[2023/7/31]
体验IntelliJ IDEA的远程开发(Remote Development)
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
本篇概览
IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发操作即可,官...[2023/7/31]
SpringBoot 启动流程分析(寻找扩展点) - M-Anonymous
1、SpringBoot maven 依赖版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http: maven.apache.org/POM/4.0.0"
xmlns:xsi="http:...[2023/7/31]
quarkus依赖注入之二:bean的作用域
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https: github.com/zq2599/blog_demos
关于bean的作用域(scope)
官方资料:https: lordofthejars.github.io/quarkus-cheat-she...[2023/7/31]
我开源了团队内部基于SpringBoot Web快速开发的API脚手架v1.6.0更新
什么是 rest-api-spring-boot-starter
rest-api-spring-boot-starter 适用于SpringBoot Web API 快速构建让开发人员快速构建统一规范的业务RestFull API 不在去关心一些繁琐。重复工作,而是把重点聚焦到业务。
动机
...[2023/7/26]
我开源了团队内部基于SpringBoot Web快速开发的API脚手架stater我开源了团队内部基于SpringBoot Web快速开发的API脚手架stater
我们现在使用SpringBoot 做Web 开发已经比之前SprngMvc 那一套强大很多了。
但是 用SpringBoot Web 做API 开发还是不够简洁有一些。
每次Web API常用功能都需要重新写一遍。或者复制之前项目代码。于是我封装了这么一个
抽出SpringBoot W...[2023/7/21]
SpringBoot 使用 Sa-Token 实现账号封禁、分类封禁、阶梯封禁
一、需求分析
之前的章节中,我们学习了 踢人下线 和 强制注销 功能,用于清退违规账号。在部分场景下,我们还需要将其 账号封禁,以防止其再次登录。
Sa-Token 是一个轻量级 java 权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权 等一系列权限相关问题...[2023/7/19]
面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)
你好呀,我是歪歪。
这篇文章带大家盘一个读者遇到的面试题哈。
根据读者转述,面试官的原问题就是:一个 SpringBoot 项目能同时处理多少请求?
不知道你听到这个问题之后的第一反应是什么。
我大概知道他要问的是哪个方向,但是对于这种只有一句话的面试题,我的第一反应是:会不会有坑?
...[2023/7/19]
我开源了团队内部基于SpringBoot Web快速开发的API脚手架stater
我们现在使用SpringBoot 做Web 开发已经比之前SprngMvc 那一套强大很多了。
但是 用SpringBoot Web 做API 开发还是不够简洁有一些。
每次Web API常用功能都需要重新写一遍。或者复制之前项目代码。于是我封装了这么一个
抽出SpringBoot W...[2023/7/14]
通用权限系统-Spring-Boot-Starter通用权限系统-Spring-Boot-Starter
Spring-Boot-Starter
自定义Starter
案例一:读取application.yml中的参数
1、创建
1、创建maven工程hello-spring-boot-starter
2、pom中添加依赖
<?xml version="1.0" encoding="...[2023/7/10]
k8s部署springboot
综述
首先介绍发布步骤。
1.从代码仓库下载代码,比如GitLab;
2.接着是进行打包,比如使用Maven;
3.编写Dockerfile文件,把步骤2产生的包制作成镜像;
4.上传步骤3的镜像到远程仓库,比如Harhor;
5.编写Deployment文件;
6.提交Deploy...[2023/7/5]
SpringBoot 如何优雅的进行全局异常处理?
在SpringBoot的开发中,为了提高程序运行的鲁棒性,我们经常需要对各种程序异常进行处理,但是如果在每个出异常的地方进行单独处理的话,这会引入大量业务不相关的异常处理代码,增加了程序的耦合,同时未来想改变异常的处理逻辑,也变得比较困难。这篇文章带大家了解一下如何优雅的进行全局异常处理。
...[2023/7/3]
springboot中自定义JavaBean返回的json对象属性名称大写变小写问题
目录一、继承类二、手动添加Get方法三、@JsonProperty四、spring-boot json(jackson)属性命名策略
开发过程中发现查询返回的数据出现自定义的JavaBean的属性值大小写格式出现问题,导致前端无法接受到数据,目前有四种解决方法,根据大佬的经验之谈,前两种是最...[2023/6/26]
Jenkins部署前后端不分离springboot项目
背景
写这篇博客的时候我还是大学生,学校期末课程设计时要求使用Jenkins部署项目,所以使用windows,但是企业中都是使用linux,往往还会搭建一个gitlab。下面我介绍的是在window环境下使用jenkins部署项目,这阵子搞这个期末作业时感觉收获还是挺大的,专门记录下。
持续集成...[2023/6/21]
SpringBoot之MVC配置(WebMvcConfigurer详解)
一:基本介绍
Spring MVC是一种常用的Java Web框架,它提供了一种基于MVC模式的开发方式,可以方便地实现Web应用程序。在Spring MVC中,WebMvcConfigurer是一种常用的配置方式,可以允许我们自定义Spring MVC的行为,比如添加拦截器、消息转换器等...[2023/6/21]