![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java -- 集成框架
文章平均质量分 69
spring框架
徐寿春
天之蓝,始于本心。
展开
-
集成框架-RabbitMQ重试和确认
在中,你可以使用yml格式的配置文件来配置RabbitMQ的重试机制。spring:rabbitmq:port: 5672listener:simple:retry:initial-interval: 5000 # 初始重试间隔时间(毫秒)max-attempts: 3 # 最大重试次数max-interval: 10000 # 最大重试间隔时间(毫秒)multiplier: 2.0 # 重试间隔时间倍数在这个配置中,启用了RabbitMQ 的重试机制,并指定了重试的初始间隔时间。原创 2024-05-16 22:05:42 · 1036 阅读 · 0 评论 -
集成框架 -- OSS
接入oss必须有这两个文档基础使用STS临时访问凭证访问OSS_对象存储(OSS)-阿里云帮助中心前端上传跨域后端代码已经提供,前端就比较简单了,拿到钥匙直接upload就可以了。一般脚手架都有,凭借url即可前端文档:sts前端上传代码。原创 2024-04-29 16:06:13 · 853 阅读 · 0 评论 -
Spring - 使用webSockt
在实际应用中,前端可能需要一些逻辑来控制重连、消息格式处理(例如JSON的编码和解码)、心跳检测以维持连接不被断开等。但是一般会用组件,如React、Vue,可以将WebSocket逻辑包装到一个服务或hook中,并在对应的的生命周期中初始化和销毁WebSocket连接。另外,对于一些复杂的场景,可能会使用一些封装了WebSocket和提供了更丰富功能的库(如socket.io)为了安全性,服务器端还需要实现适当的身份验证和授权机制,并在前端采取措施以保护用户数据。原创 2024-03-21 16:23:33 · 452 阅读 · 0 评论 -
集成框架 -- Rabbit MQ
RabbitMQ 结构生产者消费组交换机绑定队列消费者连接 tcp长连接信道运行一个 rabbitmqdocker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369-p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitMQ:image4369,25672 Erlang 发现 集群端口5672,5671 AMQP端口1572 .原创 2021-08-27 15:22:54 · 156 阅读 · 0 评论 -
集成框架 -- 聚水潭对接
token 建议放到redis 加过期时间,通过过期时间来判断是否需要刷新token,来重新续命。直接拿到demo运行,其他的自己封装即可。原创 2022-11-14 16:28:39 · 1080 阅读 · 0 评论 -
集成框架 -- websocket发消息给前端
基于连接可以做健全,前提必须有同一个域名,ws协议下可以长连接,其他的连接配置参数可以在后端校验。完成连接后,后端可以发送消息到前端,用于消息传输,但是websocket是不稳定的,netty有稳定版本的。前言: 使用websocket的原因,是因为项目中会出现无法服务器调用前端的情况,基于此TCP长连接协议,所以用了ws协议封装了一层,流反向调用。使用websocket 前端需要连接对应的服务域名,域名替换为ws,打到集群主机。注册使用bean 用来扫描端点。原创 2022-10-21 17:55:37 · 1857 阅读 · 0 评论 -
集成框架 -- 阿里网关API
直接用HTTPS 安全校验是可以跳过的,所以相比较HTTP HTTPS 可以任意切换。外部接口,避免复杂配置,增加证书校验,可以选择API 网关。原创 2022-09-26 15:23:47 · 1004 阅读 · 0 评论 -
继承框架 - 秒杀接口实现
校验商品库存数量,校验商品信息,校验是否已经完成,符合推送的信息,后台定时任务推送秒杀信息到redis 秒杀列表,锁定库存,前端展示库存减去预上架库存,举例真实库存100 秒杀20 前端请求均显示,系统库存 80,推送秒杀id 对应的商品库存数量。令牌之后,存储用户令牌,+用户频率,和成功时间,设置过期时间一小时,第二次进来,获取用户频率如果大于等于两次,或者一次,时间小于两分钟,进行拒绝)用户在队列中,关闭应用,如果抢订单成功,通过消息,通知用户抢购成功,点击消息,跳转到订单确认页面。原创 2022-09-13 16:24:39 · 385 阅读 · 0 评论 -
集成框架 -- 日志操作实现
日志操作实现前言结构定义注解定义操作模板定义操作日志接口定义实现类定义测试类前言对于日志我参阅了很多设计模式,不论是美团还是其他日志实现上,有的比较复杂但是并不能解决实际的业务场景,对此我进行了编排,自己实现一套注解开发,参照aop 切面和注解配合,拥有更多的扩展性,我抽出业务代码,把整个框架写出来适用于后台操作日志处理展示结构定义注解package com.demo.comdemo.LogDemo.annotation;import java.lang.annotation.Element原创 2022-05-05 15:14:08 · 126 阅读 · 0 评论 -
集成框架 -- 锁
锁引文轻量锁重量锁公平锁 非公平锁重入锁自旋锁排他锁 共享锁 读写锁关于 mysql 间隙锁 乐观锁 悲观锁 行锁 表锁关于synchronized关于锁模板AQS引文聊到锁 其实在业务当中用的很多,包括一些底层的代码都有出现锁的逻辑可以分为很多种轻量锁重量锁自旋锁重入锁公平锁非公平锁排他锁共享锁包括juc包里面的各种锁信号量闭锁读写锁jvm 提供的 synchronized 关键字锁偏向锁轻量锁自旋锁重量锁mysql 的行锁间隙锁乐观锁悲观锁以及cp原创 2022-04-26 17:37:13 · 236 阅读 · 0 评论 -
集成框架 -- 线程池升级 CompletableFuture -- 异步编排
CompletableFuture -- 异步编排业务场景结构如何捕获异步线程异常线程串行业务场景查询一个复杂接口,需要进行一些处理,比如说获取工单基本详情,获取图片信息, 标签信息,以及产品的对应物料信息,用户信息,属性信息,权限信息。那么如果是通过主线程进行处理的时候,会出现这样的场景如果上述的查询,每个查询需要调用一个额定接口,每个接口返回数据为1秒,查询的接口为5个,那么耗时需要5秒。因为是逐步进行的,拿到返回结果才可以进行处理。如果用空间换时间,这个情况下,异步编排就有用了,那么什么是异步原创 2022-04-24 16:33:24 · 197 阅读 · 0 评论 -
【无标题】
思维导图前置知识底层基础计算机基础io基础操作系统Liunx系统算法和数据结构并发操作系统并发阻塞队列java 内存模型线程池并发ThreadLocalRpc通讯框架中间件前置知识常用工具:git,maven,ideajdk特性:lambda表达式,jdk8新特性。mysql:基础ssm:核心基础springBoot : 基础底层基础计算机基础七层模型四层模型tcp和udp三次握手与四次挥手http协议https协议加解密算法io基础虚拟文件系统文件描述符io重定向内原创 2022-02-23 17:40:27 · 64 阅读 · 0 评论 -
集成框架 -- 后端url网页请求
后端url网页请求应对后端url请求小demo,拿过去直接用正文public class UrlRequestTest { public static void main(String[] args) throws Exception { String s = orderOnlineByJson(); System.out.println("s = " + s); } //即时查询接口 private static String o原创 2022-02-21 15:33:48 · 232 阅读 · 0 评论 -
集成框架 -- 快手接入
开放文档新手指南订单列表授权说明附 - 物流信息编号 -快手物流公司编号授权说明快手开放平台是基于OAuth2协议的开放授权和鉴权服务,接入前需要了解标准的OAuth2的一些相关知识,可以参考文档 THE OAUTH 2.0 AUTHORIZATION FRAMEWORK。开放平台提供了OAuth2的两种授权方式,授权码code和客户端凭证client_credentials,分别适用于需要用户授权的授权API调用场景,以及不需要用户授权的非授权API调用场景。注:OAuth2相关知识是接入必原创 2022-02-18 15:00:45 · 4080 阅读 · 2 评论 -
集成框架 -- 支付宝手机网页支付
文档手机网站支付接口2.0手机网站支付接入准备: app应用签约需要的能力拿到公私钥匙 APPID流程正文 – 代码接入配置支付客服端@Componentpublic class AlipayConfig { @Value("${aliPay.appId}") private String APPID; @Value("${aliPay.privateKey}") private String RSA_PRIVATE_KEY; @V原创 2022-02-18 11:48:13 · 2351 阅读 · 0 评论 -
集成框架-- JVM
JVMJvm 主要组成部分及作用两个子系统两个组件java程序运行机制步骤JVM 运行时数据区(虚拟机内存)关于虚拟机深拷贝和浅拷贝在虚拟机的表现堆栈常说的堆栈有什么区别Jvm 主要组成部分及作用JVM包含两个子系统和两个组件,两个子系统Class loader(类装载) :根据给定的全限定名类名(如: java.lang.Object)来装载class文件到Runtime data area中的method areaExecution engine(执行引擎) :执行classes中的指原创 2021-12-30 16:09:47 · 968 阅读 · 0 评论 -
集成框架 -- Gitee 配置
随便写一写, 今天朋友写代码让我看,截图一发一脸懵逼,我说你能不能放到gitee上面我看下逻辑, 他说不会配,我靠这就是给你看的,对就是你。前言gitee 账号注册好, git 下载好 配置 global 账号 邮箱建一个仓库配置一下 git账号邮箱配置我就略了 直接配置sshssh-keygen -t rsa -C "邮箱"# 三次回车# 查看密钥cat ~/.ssh/id_rsa.pub#确实测试是否连接上ssh -T git@gitee.com#确认以原创 2021-08-30 21:45:24 · 103 阅读 · 0 评论 -
集成框架 -- 日志配置
Log4j 学习 – 复习完善整理前言这个日志打印替代 System.out.println就么有什么好说的,最多说一下配置方面。通常,我们写代码的过程中,免不了要输出各种调试信息。在没有使用任何日志工具之前,都会使用 System.out.println 来做到。 这么做直观有效,但是有一系列的缺点:不知道这句话是在哪个类,哪个线程里出来的不知道什么时候前后两句输出间隔了多少时间无...原创 2019-10-10 16:17:56 · 77 阅读 · 0 评论 -
集成框架 -- Maven环境隔离
前言在公司开发java程序时,经常需要部署开发环境、测试环境、生成环境,有的大公司流程复杂,甚至需要部署更多类型的环境。不过很多到公司都是部署好的。直接可以切换用,如果让自己写该怎么写,复习一下关于怎么去部署这些开发环境。由于现在用idea比较方便,就以idea部署来写。关于使用profile标签首先在pom.xml文件中添加profiles标签,然后分别添加几个不同环境的profile,...原创 2019-09-10 17:25:10 · 154 阅读 · 0 评论 -
集成框架 -- Timer定时器
JAVA 高级 – 任务调度Timer定时器前言timer任务调度工具,定时器:是java自带的调度工具。可以实现简单的定时任务调度。线程为单线程,不可存在并发。通过实现TimerTask类来实现里面的Run方法,通过Timer的Schedoule方法实现架构代码继承timerTask,重写线程public class MyTimerTaske extends TimerTas...原创 2019-10-29 10:59:03 · 246 阅读 · 1 评论 -
集成框架 -- Executors线程池
线程池的概念:概述线程池就是首先创建一些线程,它们的集合称为线程池。使用线程池可以很好地提高性能,线程池在系统启动时即创建大量空闲的线程,程序将一个任务传给线程池,线程池就会启动一条线程来执行这个任务,执行结束以后,该线程并不会死亡,而是再次返回线程池中成为空闲状态,等待执行下一个任务,池化技术。线程池的工作机制在线程池的编程模式下,任务是提交给整个线程池,而不是直接提交给某个线程,线程池在拿到任务后,就在内部寻找是否有空闲的线程,如果有,则将任务交给某个空闲的线程。一个线程同时只能执行一个任原创 2020-11-13 08:42:36 · 132 阅读 · 0 评论 -
集成框架 -- 了解Mysql
文章目录mysql 执行过程连接器缓存分析器优化器执行器执行到存储引擎,聊一聊数据页数据页分裂合并存储引擎MyISAM 和 innodb 对比MyISAM存储引擎的特点和应用场景Innodb数据结构平衡二叉树B树(B-tree)B+树mysql 执行过程连接器MySQL中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表,MySQL权限表的验证过程为:先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否原创 2021-03-25 15:51:20 · 194 阅读 · 2 评论 -
集成框架 -- 安装配置Mysql
mysql学习 – 安装mysqlmysql官网 链接: https://www.mysql.com/.结束原创 2019-10-14 10:21:20 · 179 阅读 · 1 评论 -
集成框架 -- 了解MyBatis
MyBatis 学习 – 开篇整理整理文档,把学习的复习复习。起源MyBatis 本是 Apache 的一个开源项目——iBatis,2010 年这个项目由 Apache Software Foundation 迁移到了 Google Code,并且改名为 MyBatis。定义MyBatis 是一个基于 Java 的持久层框架。MyBatis 提供的持久层框架包括 SQL Maps 和...原创 2019-09-30 17:17:10 · 159 阅读 · 0 评论 -
集成框架 -- 配置Mybatis
配置Mybatis前言集成依赖配置yml高级语法前言在上文中已经对于spring框架下的Mybatis进行了配置,现在市场上面已经常用到分布式,那么起步基本都用开箱即用的SpringBoot 配置文件进行配置。其实对于SpringBoot而言约定大于配置,更加方便配置。只需要几行代码就可以把Mybatis集成进去,由上文中的Mysql进行查询,建立jdbc然后对于查询到的数据由两种方式映射,一种是自动化配置,也就是需要再集成一份Mybatis-plus对于此篇文章我就不在赘述,下面我再把Mybatis原创 2021-10-14 16:48:31 · 78 阅读 · 0 评论 -
集成框架 -- Mybatis Plus
mybatis-plus前言原创 2021-10-14 16:52:35 · 188 阅读 · 0 评论 -
集成框架 -- Easy Poi
Easy Poi前言添加依赖配置导出字段的类型查出数据变成表格上传表格变成数据配合使用OSS一行多列附加 -- 增加工具类前言基本开发莫过于配置 mysql以及mybatis 进行一系列操作的增删改查,在此基础上面有时候又需要一些后台所使用的导入导出。目前我经常使用的就是此款Easy POI 相比较 阿帕奇的poi 更加灵活且封装较好。Easy POI 官网视频演示只介绍常规使用,关于高级使用,请查阅官网文章只对于springBoot 如果项目里面使用Spring 查询官网任然可以装配。添加原创 2021-10-20 16:47:34 · 623 阅读 · 0 评论 -
集成框架 -- ActiveMQ
ActiveMQ使用总结通过上一篇文章 《ActiveMQ消息队列》,我们已经消息队列是什么、使用消息队列的简单介绍。这一篇文章,主要复习一下队列ActiveMQ的详细使用。JMSJMS是java message Service 是java的消息服务,JMS的客户端之间可以通过jms服务进行异步的消息传输,JMS API是一个消息服务的标准或者是规范,允许应用程序组件基于javaEE平台...原创 2019-09-16 10:26:13 · 220 阅读 · 0 评论 -
集成框架 -- Redis
继承框架 -- RedisRedis介绍Redis 的数据类型Redis的优势Redis 相比 Memcached区别Redis 的持久化机制Redis 的回收策略Redis 实践安装下载进行解压jedis 链接redis SpringBoot自动注入Redis配置原理redis 序列化处理缓存的意义架构redis 与 mysql 一致性处理方案redis 分布式锁实现雪崩穿透Redis介绍Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言原创 2021-12-01 18:06:13 · 1278 阅读 · 0 评论 -
集成框架 -- Redission
spring.redis.host= ${redis.host} spring.redis.port= 6379 spring.redis.password=${redis.password} spring.redis.jedis.pool.max-active=30 spring.redis.jedis.pool.max-wait=3000 spring.redis.jedis.pool.max-idle=20 spring.redis...原创 2021-10-09 16:00:13 · 1140 阅读 · 0 评论 -
集成缓存 -- Spring Cache
Spring Cache前言源码入门springBoot 自动配置缓冲中间件。介绍几个注解整合SpringCache引入依赖开启缓存配置属性了解注解录入测试文本测试案例分析前言对于一些后端系统,如果不是电商系统,在前文中的redis集成之后,一般会采用使用redis 封装工具类进行存储一些数据,但是在springBoot前 spring已经集成了缓存中间件,一般来说普通的缓存可以使用缓存中间件进行使用,比如说配置列表,比如说一些固定的json,举例库存配置,地址配置,状态机配置,对于一般不怎么改动的且并原创 2021-12-08 15:16:50 · 891 阅读 · 0 评论 -
集成框架 -- 了解Hbase
文章目录为什么使用Hbasehbase与mysql与NoSql的区别hbase结构HDFS为什么使用HbaseHBase是Apache Hadoop生态系统中可用的NoSQL数据存储之一。非关系数据库,它是用Java编写的开源,多维,分布式和可伸缩的NoSQL数据存储。HBase在HDFS(Hadoop分布式文件系统)之上运行,HBase通过提供对大型数据集的更快的读/写访问来实现高吞吐量和低延迟。因此,它是需要快速随机访问大量数据的应用程序的选择。Mysql 存储的方式虽然是结构化的,但是对于大数原创 2021-03-29 18:16:51 · 264 阅读 · 0 评论