项目的延伸

news2024/9/21 18:40:32

目录

推送模块

1.表

1.1 表字段

1.2 字段类型

1.3 索引

1.4 关联查询

2.参数的含义

3.以技术流的维度讲业务逻辑

4.redis

4.1基础知识

5.设计模式

5.1策略模式

5.2工厂模式

6.遇到的问题

6.1稳定性

7.锁

即时通讯模块

1.表

1.1 表字段

1.2 字段类型

1.3 索引

1.4 关联查询

2.参数的含义

3.以技术流的维度讲业务逻辑

4.WebSocket

5.http

6.map数据结构

7.核载(消息格式)

8.如何支持的分布式

9.用户的状态管理

10.session与cookie

11.request与response

12.遇到的问题

13.kafka

文件材料管理

1.表

1.1 表字段

1.2 字段类型

1.3 索引

1.4 关联查询

2.参数的含义

3.以技术流的维度讲业务逻辑

4.流的知识点

5.minio

6.@Validated校验

7.断点上传,分片上传 

8.遇到的问题

9.线程池


推送模块

1.表

1.1 表字段

服务配置表:三方服务名称,api接口认证信息,域名等

推送记录表:有效期,接收方id,发送方id,模板id,消息,发送类型,时间等

消息模板表:用户id,模板内容,待填充字段

1.2 字段类型

varchar

datetime

int

1.3 索引

陈小吨的博客_CSDN博客-Java八股文专栏,Java知识,Linux命令领域博主

1.4 关联查询

陈小吨的博客_CSDN博客-Java八股文专栏,Java知识,Linux命令领域博主

2.参数的含义

有效期,接收方id,发送方id,模板id,消息,发送类型,时间

3.以技术流的维度讲业务逻辑

4.redis

4.1基础知识

redis_陈小吨的博客-CSDN博客

5.设计模式

java基础知识_陈小吨的博客-CSDN博客

5.1策略模式

5.2工厂模式

6.遇到的问题

6.1稳定性

7.锁

java基础知识_陈小吨的博客-CSDN博客

即时通讯模块

1.表

1.1 表字段

会话连接表:用户id,服务器id ,创建时间,更新时间

会话表:发送方id,接收方id ,创建时间,更新时间

会话记录表:通讯内容,发送方id,接收方id,发送时间,删除者id

1.2 字段类型

varchar

datetime

1.3 索引

1.4 关联查询

2.参数的含义

{
"receiverId":"" //接收方id
"msg":"内容" //发送的消息
}

3.以技术流的维度讲业务逻辑

4.WebSocket

5.http

6.map数据结构

7.核载(消息格式)

{
"receiverId":"" //接收方id
"msg":"内容" //发送的消息
}

8.如何支持的分布式

9.用户的状态管理

10.session与cookie

cookie / session的区别
存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。
安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。
容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。
存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。
 

11.request与response

12.遇到的问题

Java实现短信推送可以调用以下一些常用的第三方短信接口:

1. Twilio:Twilio是一个流行的短信服务提供商,它提供了简单易用的REST API,可以通过Java代码发送短信。

2. Alibaba Cloud SMS:阿里云短信服务是一个全球领先的短信推送服务提供商,它提供了Java SDK,可以通过阿里云的API发送短信。

3. Tencent Cloud SMS:腾讯云短信服务是腾讯云提供的一项短信发送服务,也提供了Java SDK,可以通过腾讯云的API发送短信。

4. SendGrid:SendGrid是一个综合性的电子邮件和短信服务提供商,它提供了Java库和API,可用于发送短信。

5. Nexmo:Nexmo是一个全球性的通讯服务提供商,它提供了简单的REST API,可用于通过Java发送短信。

13.kafka

文件材料管理

1.表

1.1 表字段

文件表:文件名,文件大小,存储路径,上传时间,上传人

模板文件表:文件名,文件大小,待填充的字段,存储路径,上传时间,上传人

1.2 字段类型

varchar

datetime

1.3 索引

1.4 关联查询

2.参数的含义

 上传接口


file 文件
name 文件名

 下载接口

id 文件id
name 文件名

 生成接口

id 模板文件id
fillMap  需要填充的文件内容

3.以技术流的维度讲业务逻辑

4.流的知识点

java基础知识_陈小吨的博客-CSDN博客

5.minio

MinIO是一个开源的云存储服务器,它提供了高性能和可扩展的对象存储服务。与传统的文件系统不同,MinIO以对象的形式存储数据,并通过HTTP协议提供访问接口。它被设计用于构建私有云存储、分布式存储和大规模数据存储等场景。

以下是MinIO的一些关键特点和功能:

1. 高性能:MinIO具有出色的性能表现,可以轻松处理大规模数据的存储和检索。它采用了多线程、异步I/O和高速缓存等技术,实现了快速的数据传输和低延迟的访问。

2. 可扩展性:MinIO可以在多个节点上进行分布式部署,通过水平扩展来提供更高的存储容量和吞吐量。它支持容器化部署,并与Kubernetes等容器编排平台紧密集成。

3. 安全性:MinIO提供了多种安全性功能,包括数据加密、访问控制和身份验证。它支持SSL/TLS加密传输,并可与LDAP、Active Directory等身份验证系统集成。

4. 对象存储:MinIO以对象的方式存储数据,每个对象都有一个唯一的键(key)和元数据。它支持常见的对象操作,如上传、下载、复制、删除和查询。

5. 高可用性:MinIO采用分布式架构,支持数据的冗余备份和故障转移。它可以自动地将数据复制到多个节点上,以提供高可用性和数据的持久性。

6. 兼容性:MinIO兼容Amazon S3 API,可以与现有的S3客户端和应用程序进行无缝集成。这使得迁移和集成现有的S3应用变得简单和方便。

7. 简单易用:MinIO的部署和配置非常简单,它提供了用户友好的管理界面和命令行工具,使用户可以轻松管理和监控存储集群。

6.@Validated校验

7.断点上传,分片上传 

MinIO实现断点上传的逻辑可以通过以下步骤来实现:

1. 初始化分片上传:
   首先,使用MinIO的`initiateMultipartUpload`方法初始化一个分片上传操作。这将返回一个唯一的`uploadId`,用于标识当前的分片上传任务。

2. 上传分片:
   将要上传的文件切割成多个固定大小的分片,然后使用`uploadPart`方法将每个分片上传到MinIO服务器。每个分片都有一个分片编号(partNumber),并且需要指定分片的大小。

3. 记录已上传的分片信息:
   在每次成功上传一个分片后,应该记录已上传的分片编号和对应的ETag(分片的校验码)。可以将这些信息存储在数据库或其他持久化存储中,以便在断点续传时使用。

4. 完成分片上传:
   当所有分片都上传完成后,使用`completeMultipartUpload`方法来通知MinIO服务器合并这些分片,并将它们合并为最终的完整对象。在此方法中,需要提供之前获取的`uploadId`和每个分片的编号和ETag。

5. 中断和续传处理:
   如果上传过程中发生中断,可以记录已上传的分片信息。下次继续上传时,需要首先获取之前上传的分片信息,并根据这些信息进行断点续传。可以使用`listParts`方法来获取已上传的分片信息,然后根据记录的分片编号,继续上传未完成的分片。

8.遇到的问题

9.线程池

java基础知识_陈小吨的博客-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/564650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于队头阻塞的一些笔记

一、队头阻塞(Head-of-Line Blocking,HOL) 看到队头,联想到了数据结构课程中学到的队列,队列的一个特点就是FIFO(First In First Out),即先进入队列的数据先出队列。所以&#xff0…

【Linux高级 I/O(6)】存储映射 I/O进阶应用(附代码示例)

mprotect()函数 使用系统调用 mprotect()可以更改一个现有映射区的保护要求&#xff0c;其函数原型如下所示&#xff1a; #include <sys/mman.h>int mprotect(void *addr, size_t len, int prot);参数 prot 的取值与 mmap()函数的 prot 参数的一样&#xff0c;m…

Pycharm 配置jupyter notebook 且Windos 安装vim编辑器

请记住要想让你的python成功安装jupyter notebook &#xff0c;你的python最好使用p大于等于python3.7 最好不要在python2大版本中安装jupyternotebook 这个会报错&#xff0c;需要你改一些配置文件&#xff0c;除非你想挑战一下自己&#xff0c;不过后面我会尝试在python2大版…

NeRF-VAE:将场景看作一个分布【ICML‘2021】

文章目录 GQN网络介绍Amortized InferenceNeRF-VAE GQN网络介绍 论文标题&#xff1a;Neural scene representation and rendering 作者&#xff1a;S. M. Ali Eslami, Danilo Jimenez Rezende, et al. 期刊&#xff1a;Science 发表时间&#xff1a;2018/06/15 该文章提出…

单视觉L2市场「鲶鱼」来了,掀起数据反哺高阶新打法

作者 | 张祥威编辑 | 德新 智驾方案的降本行动仍在推进。 早年&#xff0c;单视觉L2市场的玩家以Mobileye、博世为主&#xff0c;后来国内智驾公司加入&#xff0c;共同推动 1V、1R1V、nR1V等不同的方案兴起&#xff0c;L2近乎成为车辆的必备功能。 当下&#xff0c;在行业降低…

认识linux文件系统/文件夹名字解释

linux系统因为其高效、直接的底层操作而被很多代码开发者使用&#xff0c;谈及linux&#xff0c;大家普遍的印象就是黑乎乎的终端命令行&#xff0c;后来基于linux系统开发出来的具有可视化桌面的ubuntu版本&#xff0c;让大家的使用体验兼顾了windows系统的直观性可linux系统代…

YOLOV5使用(一): docker跑通,详解TensorRT下plugin的onnx

yolov5的工程使用(以人员检测为案例) 使用ubuntu为案例 docker run --gpus all -it -p 6007:6006 -p 8889:8888 --name my_torch -v $(pwd):/app easonbob/my_torch1-pytorch:22.03-py3-yolov5-6.0使用端口映射功能也就是说打开jupyter lab的指令是 http://localhost:8889/l…

windows先的conda环境复制到linux环境

如果是迁移的环境一致&#xff1a;同是windows或同是linux直接用这个命令即可&#xff1a; conda create -n new_env_name --clone old_env_path 如果是window的环境迁移到linux这种跨环境就不能用上面的方法&#xff0c;网上这方面的资料也很多&#xff0c;记录一下我的…

小蝌蚪找妈妈:Python之作用域链与 LEGB 原则

文章目录 参考描述作用域对象全局作用域globals() 局部作用域locals() 包含作用域内置作用域builtins 模块builtins 模块与 \_\_builtins__builtins is \_\_builtins__??? \_\_builtins__ 与内置作用域赶不走的 \_\_builtins__ 作用域链作用域链 与 LEGB 原则狗急跳墙之法 参…

【Go语言从入门到实战】基础篇

Go语言从入门到实战 — 基础篇 First Go Program 编译 & 运行 基本程序结构 应用程序入口 package mainimport "fmt"func main() {fmt.Println("Hello World") }退出返回值 package mainimport ("fmt""os" )func main() {fmt.Pr…

哪个产品功能重要?KANO模型帮你

哪个产品功能重要&#xff1f;KANO模型来帮你 模型工具可以协助思考和系统化改进 KANO模型是小日本一个教授提出 趣讲大白话&#xff1a;往往&#xff0c;怎么思考&#xff0c;比思考什么重要 【趣讲信息科技175期】 **************************** 东京理工大学教授狩野纪昭(No…

【医学图像】图像分割系列.2 (diffusion)

介绍几篇使用diffusion来实现医学图像分割的论文&#xff1a;DARL&#xff08;ICLR2023&#xff09;&#xff0c;MedSegDiff&#xff08;MIDL2023&#xff09;& MedSegDiff-V2&#xff08;arXiv2023&#xff09;&#xff0c;ImgX-DiffSeg&#xff08;arXiv2023&#xff09;…

CTF 2015: Search Engine-fastbin_dup_into_stack

参考&#xff1a; [1]https://gsgx.me/posts/9447-ctf-2015-search-engine-writeup/ [2]https://blog.csdn.net/weixin_38419913/article/details/103238963(掌握利用点&#xff0c;省略各种逆向细节) [3]https://bbs.kanxue.com/thread-267876.htm&#xff08;逆向调试详解&am…

web功能测试方法大全—完整!全面!(纯干货,建议收藏哦~)

本文通过六个部分为大家梳理了web功能测试过程中&#xff0c;容易出现的遗漏的部分&#xff0c;用以发掘自己工作中的疏漏。&#xff08;纯干货&#xff0c;建议收藏哦~&#xff09; 一、输入框 1、字符型输入框 2、数值型输入框 3、日期型输入框 4、信息重复 在一些需要命…

GPT-4版Windows炸场,整个系统就是一个对话机器人,微软开建AI全宇宙

原创 智东西编辑部 智东西 Windows的GPT时刻到来&#xff0c;变革PC行业。 作者 | 智东西编辑部 今日凌晨&#xff0c;Windows迎来了GPT-4时刻&#xff01; 在2023微软Build大会上&#xff0c;微软总裁萨蒂亚纳德拉&#xff08;Satya Nadella&#xff09;宣布推出Windows Co…

实现免杀:Shellcode的AES和XOR加密策略(vt查杀率:4/70)

前言 什么是私钥和公钥 私钥和公钥是密码学中用于实现加密、解密和数字签名等功能的关键组件。 私钥是一种加密算法中的秘密密钥&#xff0c;只有密钥的拥有者可以访问和使用它。私钥通常用于数字签名和数据加密等场景中&#xff0c;它可以用于对数据进行加密&#xff0c;同…

头部效应凸显,消金行业迈入“巨头赛”?

回顾已经过去的2022年&#xff0c;消金行业面临着来自多方面的考验&#xff0c;承压前行&#xff0c;而随着进入2023年&#xff0c;相关企业也陆续展示出过去一年的发展成果&#xff0c;以此为后续发展做出指引。 当前&#xff0c;30家已开业的消金公司中&#xff0c;29家的20…

《消息队列高手课》课程笔记(三)

如何利用事务消息实现分布式事务&#xff1f; 什么是分布式事务&#xff1f; 消息队列中的“事务”&#xff0c;主要解决的是消息生产者和消息消费者的数据一致性问题。如果我们需要对若干数据进行更新操作&#xff0c;为了保证这些数据的完整性和一致性&#xff0c;我们希望…

独立站怎么搭建?搭建一个独立站的10个建议和步骤

要搭建一个独立站&#xff08;也称为个人网站或博客&#xff09;&#xff0c;以下是一些建议和步骤&#xff1a; 选择一个合适的域名&#xff1a;选择一个简洁、易记且与您网站内容相关的域名。确保域名可用&#xff0c;并注册该域名。 寻找一个合适的主机服务提供商&#xff…

【Cpp】哈希之手撕闭散列/开散列

文章目录 unorderedunordered系列关联式容器unordered_map和unordered_set概述unordered_map的文档介绍unordered_map的接口说明 底层结构 哈希哈希/散列表 概念哈希冲突哈希函数哈希函数设计原则&#xff1a;常见哈希函数 哈希冲突解决闭散列线性探测二次探测 开散列 哈希表的…