项目
文章平均质量分 84
快乐是你的与我无关了
这个作者很懒,什么都没留下…
展开
-
基于k8s实现算法训练系统(架构思路+落地方案)
算法训练是本系统的核心功能之一,为用户提供深度学习算法训练平台,内置多种常用数据集,同时支持代码编程及图形化编程,其中代码支持python、scala、r 三种语言,图像化编程通过拖拽组件并选择参数完成建模无需编写代码即可开始算法训练,这种编程方式极大降低了开发者的门槛,提升了开发效率。原创 2022-10-14 19:53:55 · 3160 阅读 · 4 评论 -
k8s使用nfs配置StorageClass,配置完成后,创建pvc一直为pending的状态。
k8s使用nfs配置StorageClass,配置完成后,创建pvc一直为pending的状态。出现报错provision "default/exampleforstorageclass" class "managed-nfs-storage": unexpected error getting claim reference: selfLink was empty, can't make reference原创 2022-06-23 20:23:55 · 1979 阅读 · 0 评论 -
Websocket 心跳包重连实现
WebSocketWebSocket 类似于标准的TCP连接,它是IETF(RFC 6455)定义的通过TCP进行实时全双工通信一种通信方式,这意味这它的功能更强大,常用于如股票报价器,聊天应用。相比于SSE,它不仅可以双向通信,而且甚至还能处理音频/视频等二进制内容。原理:WebSocket协议是借用HTTP协议的101 switchprotocol(服务器根据客户端的指定,将协议转换成为 Upgrade首部所列的协议)来达到协议转换的,从HTTP协议切换成WebSocket通信协议。优点:它原创 2022-04-25 11:38:54 · 2812 阅读 · 0 评论 -
射击项目的架构设计与实现
射击项目的架构设计与实现用户模块的详细设计与实现登录与注册的详细设计与实现本系统为了方便用户的使用,采用登录注册一键化的方案,当用户输入手机号在系统总不存在时即为注册,如果手机号存在则为登录。本系统使用手机号发送验证码进行登录注册。具体实现:在用户填写填写好手机号后,前端向后端发送请求获取手机验证码,后端调用阿里云SMS服务,向用户发送验证码,并将验证码存入redis,并设置过期时间为一分钟。 设置过期时间的目的是防止用户短时间内多次发送验证码,导致资源浪费,过期时间未到则不会发送新的验证码,当用原创 2022-04-19 20:03:24 · 819 阅读 · 0 评论 -
软件架构的发展及研究现状
软件架构研究现状软件架构的发展经历了单体架构、分布式架构、SOA架构、微服务架构四个阶段。1.3.1 单体架构Web应用程序发展的早期,大部分web工程师将所有的功能集成在一个项目工程中,所有功能打在一个war包中部署到服务器,通过部署应用集群和数据库集群来提高系统的性能。这种模式下,项目架构简单,前期开发成本低、周期短,开发效率高,模块之间交互采用本地方法调用、容易部署、容易测试。但缺点也很明显:全部功能集成在一个工程中,大于大型项目不易开发、扩展和维护。版本迭代速度逐渐变慢,修改一个地方就要将整个原创 2022-04-11 11:07:41 · 4762 阅读 · 0 评论 -
订单超时实现方案总结
订单超时实现方案总结订单超时是一个经典的业务场景,在商城系统中很常见。常见的实现方案有以下几种定时轮询被动取消redis 过期回调延时消息一、 定时轮询实现方法: 开启一个定时任务,过一段时间轮询下数据库,将超时的订单关闭。优点:实现方法简单缺点:1. 时效性差,跟轮询时间差有关,轮询时间差越大,订单取消时间误差越大。2. 效率低。3. 对数据库压力大。如果设置的轮询间隔时间小,需要频繁读写数据库。二、被动取消实现方法: 当用户查询信息时,我们再去判断是否超时。优原创 2022-03-06 19:48:54 · 2751 阅读 · 0 评论 -
Stream流详解及差用用法介绍
转载:https://blog.csdn.net/weixin_38294999/article/details/892776971. Stream初体验我们先来看看Java里面是怎么定义Stream的:A sequence of elements supporting sequential and parallel aggregate operations.我们来解读一下上面的那句话:Stream是元素的集合,这点让Stream看起来用些类似Iterator;可以支持顺序和并行的对原Str转载 2022-02-14 21:14:46 · 495 阅读 · 0 评论 -
自定义注解实现接口被访问时增加对应模块浏览量
一、什么是注解?注解的定义:Java文件叫做Annotation,用@interface表示,注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。元注解:包括@Retention、@Target、@Document、@Inherited四种。 @Documented – 注解是否将包含在JavaDoc中 @Retention – 什么时候使用该注解 @Target – 注解用于什么地方 @Inherite原创 2022-01-24 10:12:33 · 274 阅读 · 0 评论 -
前端传的参数自动转换为枚举的方式——spring convert转换
前端传的字符串自动转换为对应枚举的方式背景在项目中我们通常会使用枚举来接收一些值固定的参数,例如此次项目中我们需要传递一个语言参数,这个参数在系统中有三个值:中文 、英文、和繁体中文,在数据库存的是相对应的Integer值(别问我为啥还要整个小写,前端规范是小写,后段枚举规范用大写,没发用spring自带的枚举转换器。) @Getter@RequiredArgsConstructorpublic enum LanguageType { /** * 中文 */原创 2021-11-28 21:13:15 · 3865 阅读 · 0 评论 -
那些你不知道的MapStruct用法——Mapstruct自定义映射
那些你不知道的MapStruct用法——Mapstruct自定义映射前言mapStruct是一个很好用的字段映射工具,可以帮你自动生成代码完成字段映射。但有时需要在某些映射方法之前或之后应用自定义逻辑。比如我们从数据库查出来的sex字段是一个数字 0,1,我们需要将其转换为男,女 放入Dto传给前端。我之前的做法是,mapstruct做完映射之后再进行字段转换。但这样会让service层增加很多set get 代码,如果是集合之间进行转换,我们还需遍历一次。MapStruct 提供了两种方法:装饰器原创 2021-11-21 19:49:22 · 5636 阅读 · 1 评论 -
JAVA之枚举
JAVA之枚举煮黑豆什么是枚举?我们学习过单例模式,即一个类只有一个实例。而枚举其实就是多例,一个类有多个实例,但实例的个数不是无穷的,是有限个数的。例如word文档的对齐方式有几种:左对齐、居中对齐、右对齐。开车的方向有几种:前、后、左、右! 我们称呼枚举类中实例为枚举项!一般一个枚举类的枚举项的个数不应该太多,如果一个枚举类有30个枚举项就太多了!定义枚举类型定义枚举类型需要使用enum关键字,例如:public enum Direction {FRONT, BEHIND, LEFT,转载 2021-09-12 21:13:34 · 113 阅读 · 0 评论 -
在多个指定区间内生成随机数,且随机数总和固定算法
在多个指定区间内生成随机数,且随机数总和固定算法一、介绍最近项目上遇到了一个需求就是在多个指定区间内生成总和恒定的随机数。示例:在[1-3]、[4-20]、[24-100]区间上分别生成一个随机数且要求随机数总和为40。输出:随机数 a = 2 、b = 5 、c = 33.想了一整天,最后用一种不是太完美的方法解决了这个问题。二、思路简述在多个指定区间生成随机数这个好弄,但是要求总和恒定就有点难办了。下边的思路我会用用上面的示例来解释。首先我们可以确定的是这个随机数的总和肯定是要&g原创 2021-07-18 12:45:22 · 5294 阅读 · 7 评论 -
MapStruct快速上手
MapStruct 快速上手简介MapStruct是满足JSR269规范的一个Java注解处理器,用于为Java Bean生成类型安全且高性能的映射。它基于编译阶段生成get/set代码,此实现过程中没有反射,不会造成额外的性能损失。使用-1.注入方式spring注入@Mapper(componentModel = "spring")public interface ApiMapper {}ClassLoader 加载方式@Mapperpublic interface Ap原创 2021-03-28 13:28:36 · 311 阅读 · 0 评论 -
仿微博系统数据库设计和er图设计
表设计所有表都有字段字段名类型长度是否可以为空描述createtimedatetime是创建时间updatetimedatetime是修改时间create_bybigint否创建人idupdate_bybigint否修改人idis_deletedbit1否软删除(0删除,1不删除,默认为0)后面表格中不会在写这些字段,建表时每个表都有字段名类型长度是否可以为空描述idbigint原创 2021-03-14 15:45:40 · 2021 阅读 · 0 评论 -
消息队列之RabbitMQ
消息队列之RabbitMQ目录消息队列之RabbitMQ什么叫消息队列为什么使用消息队列1. 解耦2 异步3、削峰/限流三 使用消息队列带来的一些问题消息队列技术选型什么叫消息队列消息队列,一般我们会简称它为MQ(Message Queue)翻译过来就是消息队列消息(Message)是指在应用间传送的数据,Queue队列是一种先进先出的数据结构。消息队列可以看成一个存放数据的容器,我们将传输的数据存放在队列当中。消息发布者只管把数据发布到 MQ 中而不用管谁来取,消息使用者原创 2021-02-16 08:59:25 · 355 阅读 · 0 评论 -
站内通知调研
站内通知调研项目需求smpe-admin框架需要整合一个站内通知的模块,需求是能够实现后台用户间的消息通知,如管理员对普通用户的通知,以及系统消息的推送。还需要满足后台定向给指定web登录用户推送消息,且可能同一账号会登录多个客户端都要接收到消息消息推送目前常见的方法分为二类四种HTTP Polling 客户端拉曳(Client Pull)HTTP Long-Polling 客户端拉曳(Client Pull)Server-Sent Events (SSE) 服务器推送(Server Pus原创 2021-02-07 08:15:48 · 588 阅读 · 0 评论 -
springboot 定时任务 和 on duplicate key update导致主键不连续自增解决方法
最近写项目有个需求要求定时将另一个服务器上的数据库的数据导入到项目服务器的数据库。(有点hp)这中间用到了两个之前不知道的技术一、 定时任务使用SpringBoot创建定时任务非常简单,目前主要有以下三种创建方式:1、基于注解(@Scheduled)@Configuration //1.主要用于标记配置类,兼备Component的效果。@EnableScheduling // 2.开启定时任务public class SaticScheduleTask { //3.添加定原创 2020-12-06 12:18:06 · 745 阅读 · 0 评论