目录
推送模块
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博客
1.4 关联查询
陈小吨的博客_CSDN博客-Java八股文专栏,Java知识,Linux命令领域博主
2.参数的含义
{
"expirationDate": 有效期-时间戳,
"sendId":"发送方id",
}
有效期,接收方id,发送方id,模板id,消息,发送类型,时间
3.以技术流的维度讲业务逻辑
4.redis
4.1基础知识
redis_陈小吨的博客-CSDN博客
5.设计模式
java基础知识_陈小吨的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-458298.html
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
http与https 的区别
HTTP协议以明文方式发送内容,不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息
https则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
https协议需要到ca申请证书。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
6.map数据结构
7.核载(消息格式)
{
"receiverId":"" //接收方id
"msg":"内容" //发送的消息
}
8.如何支持的分布式
9.用户的状态管理
用户状态 true 是在线 false是离线
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`方法来获取已上传的分片信息,然后根据记录的分片编号,继续上传未完成的分片。文章来源:https://www.toymoban.com/news/detail-458298.html
8.遇到的问题
9.线程池
java基础知识_陈小吨的博客-CSDN博客
到了这里,关于项目的延伸的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!