
系统架构
文章平均质量分 89
爱码少年 00fly.online
三无青年、理工男,追求代码可运行,理论可验证的穷编码猿!
展开
-
通用查询类接口数据更新的另类实现
我们在通用查询类接口开发的另类思路文件监听fill:#333;color:#333;color:#333;fill:none;监听目录解析变动文件写入结果文件2.定时任务fill:#333;color:#333;color:#333;fill:none;接口获取数据处理数据写入结果文件' > 1.txt。原创 2025-03-02 21:17:15 · 11600 阅读 · 0 评论 -
通用查询类接口开发的另类思路
通用查询类接口的需求,在开发过程中是比较常见的一类需求,一般具有以下的特点:数据更新频率较低无强制鉴权需求短时间内数据内容固定原创 2025-01-17 17:53:36 · 16985 阅读 · 0 评论 -
springboot中责任链模式之简单应用
在优快云博客自动阅读器-服务端推送技术SSE之简单应用一文中,我们实现了个人博客文章的后台推送功能。初始化推送数据通过接口来实现的,现在我们希望实现如下功能优化:1. 定义多种初始化数据来源,具体而已,有3种方式:①web 接口、②docker映射文件、③本地资源文件2. 支持初始化数据方式的优先级指定。3. 不排除未来会添加其原创 2024-12-22 13:39:36 · 18000 阅读 · 0 评论 -
guava 整合springboot 自定义注解实现接口鉴权调用保护
Guava Cache是一个全内存的本地缓存实现,它提供了线程安全的实现机制。我们借助过期时间设置和springboot的自定义注解、切面等技术来打造最简单的接口鉴权系统。原创 2024-12-09 19:51:39 · 18000 阅读 · 0 评论 -
springboot 项目自定义配置项数据库维护的实现
SpringBoot是一个基于Spring框架的快速开发应用程序的工具,它简化了Spring应用程序的创建和开发过程,使开发人员能够更快速地创建独立的、生产就绪的Spring应用程序。springboot 采用了约定大于配置的思路,同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。原创 2024-12-02 19:11:14 · 18000 阅读 · 0 评论 -
Ribbon客户端负载均衡策略测试及其改进
为了验证Ribbon客户端负载均衡策略在负载节点失效的情况下,是否具有故障转移的功能,进行了以下代码验证!原创 2024-10-20 16:19:29 · 22284 阅读 · 0 评论 -
API接口并发请求控制实现
某API接口,承载某重要业务,希望控制任意时间点的并发访问数在5以内,该如何实现?原创 2024-10-12 17:41:36 · 18000 阅读 · 1 评论 -
springboot工程中使用tcp协议
在上文JAVA TCP协议初体验中,我们使用java实现了tcp协议的一个雏形,实际中大部分项目都已采用springboot,那么,怎么在springboot中整合tcp协议呢?如何实现服务器controller通过tcp协议下发命令到tcp client执行,并且在controller中获取执行结果?原创 2024-10-06 20:55:26 · 17999 阅读 · 0 评论 -
JAVA TCP协议初体验
最近开发某数据采集系统,系统整体的数据流程图如下:fill:#333;color:#333;color:#333;fill:none;数据中心客户端1客户端2客户端3客户端4同时,数据中心又需要下发命令到某客户端执行,客户端执行完成后将结果通知到数据中心。原创 2024-09-29 12:32:17 · 18000 阅读 · 0 评论 -
客户端负载均衡Ribbon实例
一般来说,提到负载均衡,大家一般很容易想到浏览器 -> NGINX -> 反向代理多个Tomcat这样的架构图——业界管这种负载均衡模式叫“服务器端负载均衡”,因为此种模式下,负载均衡算法是NGINX提供的,而NGINX部署在服务器端。原创 2024-09-09 18:25:30 · 18000 阅读 · 0 评论 -
springcloud微服务牛刀小试开篇:示例概述
尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。使用Spring Cloud开发的应用程序非常适合在Docker或者PaaS(例如Cloud Foundry)上部署,所以又叫做云原生应用(Cloud Native Application)。下面以一个简单示例来介绍如何搭建一套微服务系统。原创 2024-05-16 17:59:47 · 18000 阅读 · 0 评论 -
基于缓存注解的时间戳令牌防重复提交设计
API接口由于需要供第三方服务调用,所以必须暴露到外网,并提供了具体请求地址和请求参数。为了防止重放攻击必须要保证请求仅一次有效比较成熟的做法有批量颁发时间戳令牌,每次请求消费一个令牌。/*** @version [版本号, 2019年12月18日]* @see [相关类/方法]* @since [产品/模块版本]原创 2024-04-30 12:03:24 · 18000 阅读 · 0 评论 -
基于自定义注解、切面实现的WebApi接口
某自研系统,已有完善的业务接口,现在需要开放一部分web接口做对外服务,需要加入鉴权、防重放、限流、防篡改等功能,请给出一个合理的设计方案。OpenApi/*** 开放API注解/*** 检查项/*** 开放API注解/*** 检查项/*** 开放API注解/*** 检查项Documented;/*** 开放API注解/*** 检查项/*** 开放API注解/*** 检查项/**原创 2024-04-27 11:49:08 · 17999 阅读 · 0 评论 -
springboot实现SSE之牛刀小试
SSE 全称Server Sent Event,直译一下就是服务器发送事件。其最大的特点,可以简单概况为两个:长连接,服务端可以向客户端推送信息。原创 2024-04-21 13:33:11 · 17999 阅读 · 0 评论 -
借助ThreadPoolExecutor、Future实现线程池带返回值异步任务结果获取
Future是java 1.5引入的一个interface,他代表的是异步执行的结果,意思是当异步执行结束之后,返回的结果将会保存在Future中。ExecutorService 是线程池的接口,执行时需要接受一个Callable参数,Callable需要实现一个call方法,并返回结果。原创 2024-04-11 17:47:41 · 17999 阅读 · 0 评论 -
Springboot工程依赖包与执行包分离打包与构建docker 镜像
某大数据项目,使用springboot常规打包方式,打出来的一体化执行包达几百兆, 分析jar 结构,其中的依赖包达几百个,占据99%以上的体积。考虑到在迭代开发小版本升级发布期间,依赖包几乎不会发生变化。迫切需要将依赖包和执行包分离,部署时在依赖包不变的情况下只更新执行包,可提升发布效率。下面我们以工程为例来说明操作过程。原创 2024-03-29 23:11:43 · 17999 阅读 · 0 评论 -
SpringBoot工程web模式与非web模式和谐共处运行
Spring Boot 是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程。Spring Boot 去除了大量的 XML 配置文件,简化了复杂的依赖管理。Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring Boot 也成了时下炙手可热的技术。原创 2024-01-31 20:38:43 · 18000 阅读 · 0 评论 -
springboot配置项动态刷新
springboot 配置文件一般以yaml方式保存,除了系统配置项如spring、server等外,还有我们自定义的配置项,方便系统启动时自动注入。自定义的配置项一般是动态配置项,在系统运行过程中,可能需要在线修改,来实现自定义的配置项不停服更新,也就是类似于spring-cloud-starter-config的动态刷新。由于系统不重启,无法通过自动注入的方式自动更新自定义配置, 这儿便需要我们手动加载yaml文件,转换为java对象,将变化赋值到spring管理的对象中采用最常见的snakeyaml、原创 2024-01-21 14:05:57 · 17999 阅读 · 1 评论 -
Spring Web工程最快转Spring Boot工程方法
删除web.xml导入springboot pom.xml添加springboot 启动代码(举例)import java.io.IOException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.CommandLineRunner;import ...原创 2018-10-11 09:04:50 · 18000 阅读 · 0 评论 -
【求教】老菜鸟遇到新问题,双bug欢迎有緣人答疑
俗话说:但行好事,莫问前程,心之所向,无问西东编程亦然,coding多了,就会遇到各种各样奇怪的问题,真是让人欢喜让人忧啊!这不,小C最近实现了一个使用mysql数据库来保存日志的功能,不幸的是,遇到两个难解的问题,现拿出来,希望各位见多识广的大佬能帮忙分析,小可不胜感激!原创 2023-10-26 17:25:12 · 17999 阅读 · 0 评论 -
SpringMVC工程之非web部分代码复用,并独立运行
springMVC是位于spring web端的一个框架,是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦。下面我们以如何复用此SpringMVC工程的非web部分代码,并脱离web环境使之独立运行。原创 2023-09-16 23:06:39 · 17999 阅读 · 0 评论 -
log4j2 日志保存至数据库
Apache Log4j 2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。是目前最优秀的Java日志框架,没有之一。官方Appenders提供了日志的多种输出方式实现。下面我们以 JDBCAppender 为例来说明如何在项目中实现系统日志保存到数据库。/*** 日志数据库数据源* @version [版本号, 2023年3月27日]* @see [相关类/方法]原创 2023-09-16 15:02:40 · 18000 阅读 · 0 评论 -
分布式锁实现二. memcached分布式锁
add和set的区别在于:如果多线程并发set,则每个set都会成功,但最后存储的值以最后的set的线程为准。而add的话则相反,add会添加第一个到达的值,并返回true,后续的添加则都会返回false。(1)memcached采用列入LRU置换策略,所以如果内存不够,可能导致缓存中的锁信息丢失。为方便起见,已经将memcached服务器端程序上传到下面的目录,使用时只需要双击运行就好!memcached带有add函数,利用add函数的特性即可实现分布式锁。利用该点即可很轻松地实现分布式锁。原创 2023-09-02 17:40:14 · 18000 阅读 · 0 评论 -
分布式锁实现一. 利用Mysql数据库update锁
分布式锁,即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题,而分布式锁,就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是,分布式系统中竞争共享资源的最小粒度从线程升级成了进程。原创 2023-08-31 22:56:25 · 18000 阅读 · 0 评论