Spring Boot

Rabbitmq---消息队列

随声附和 提交于 2020-12-05 05:13:03
一 . MQ:message queue   消息队列的作用:    1 通信解耦   2 高峰限流 原理分析: 一开始,认证系统是强耦合的,A系统传递认证系统消息接收计算结果的过程中   1 传给认证系统   2 认证系统计算   3 返回计算结果   4 读取A系统逻辑 只要当前计算没有完成,对于认证系统来讲消耗线程资源.并存在强耦合现象 有了消息队列,每一次连接不管是生成消息还是消费消息,都有各自的逻辑与其他逻辑无关--通信解耦    通信强耦合的情况下高峰访问拒绝,达到了高峰限流的效果 二 . Rabbitmq    1 rabbitmq的结构(组件)    外部: 生产者和消费者     生产者:对于消息来讲,生成消息客户端是生产者     消费者:消费消息执行消费后的逻辑的客户端是消费者    客户端可以使用各种其他技术或者语言 都不是rabbitmq自身的技术    2 rabbitmq内部组件    connection: 基于底层通信逻辑的长连接    channel: 基于长连接创建的;可以在一次长连接的基础上多次频繁的创建和销毁,占用资源非常少    交换机Exchange 优点:并发能力高 并发稳定      客户端连接发送消息,多种情况都需要并发的发送,如果从客户端执行并发的发送逻辑,rabbitmq的并发能力就限制在了客户端    

Springboot(一)springboot简介与入门程序

独自空忆成欢 提交于 2020-12-05 04:11:20
一、springboot简介:    对 spring 框架盛行了多年的java方向开发人员来说,每个人java开发已经把 spring 框架当做开发中不可或缺的一部分。   之前传统的模式都是以 applicationContext.xml 配置文件的形式存在,而对应大多数入门级开发人员来说配置出现一点纰漏就会导致运行失败或者更大的问题,因此会浪费开发人员很多宝贵的时间,对公司来说也是有所损失。那么 spring 开源组织很早之前就意识到这种问题的存在,于是他们便对 spring 框架的全系列组件进行了内部封装。对外只是提供 maven(jar管理、项目打包工具) 或者 gradle(新兴jar管理、项目打包工具) 的形式来进行引入parent.pom(maven配置文件)或者parent.gradle(gradle配置文件),让每一个spring项目都是以spring的子项目的形式来运行,这样开发人员不用再去注重配置文件的繁琐而是把精力放到业务逻辑以及更深层次的架构方面。自此SpringBoot就诞生了,它有着纯正的开源血统,在此非常感谢spring开源组织给我们java开发人员带来的便利! 二、springboot的特点:    1. 能够 快速创建基于Spring的应用程序 。(简化配置)   2. 开箱即用, 提供各种默认配置来简化项目配置   3 .能够直接使用

Redis,就是这么朴实无华

泪湿孤枕 提交于 2020-12-05 02:55:12
http://xjjdog.cn 对200+原创文章进行了细致的分类,阅读更流畅,欢迎收藏。 原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。 Redis是2009年发布的,到今天已经超过10岁了。作为必备技能之一,关于它也有聊不完的话题。本文中的任何一个点,都可以展开,完成一篇中等规模的文章。 交流和面试时,你需要用最精准的语言进行描述,那么本文比较适合你。 redis能力: 1 0W/s QPS (redis-benchmark) 1w+ 长链接 (netstat / ss) 最复杂的Zset 6kw数据 写入1k/s 读取5k/s 平均耗时5ms 持久化 (rdb) 1. 基本概览 学习一门新语言,重要的是掌握它的基本数据结构,以及这些数据结构的API。redis的这些数据结构,就类似一门语言。 Redis数据结构 常用5种,一共10种。面试时一般回答5种即可,但其他5种是加分项。 String 字符串 Hash 字典 List 列表 Set 集合 ZSet 有序集合。性能参考: 《redis的zset有多牛?请把耳朵递过来》 Pubsub 发布订阅 (不推荐使用,坑很多) Bitmap 位图 GEO 地理位置 (有限使用,附近的人) Stream 流(5.0) (与Kafka非常像) Hyperloglog

SpringBoot(9) SpringBoot整合Mybaties

旧街凉风 提交于 2020-12-05 02:45:43
一、近几年常用的访问数据库的方式和优缺点 1、原始java访问数据库   开发流程麻烦   <1>注册驱动/加载驱动     Class.forName("com.mysql.jdbc.Driver")   <2>建立连接     Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","root","root");   <3>创建Statement   <4>执行SQL语句   <5>处理结果集   <6>关闭连接,释放资源 2、apache dbutils框架   比上一步简单点   官网:https://commons.apache.org/proper/commons-dbutils/ 3、jpa框架   spring-data-jpa   jpa在复杂查询的时候性能不是很好 4、Hiberante 解释:ORM:对象关系映射Object Relational Mapping   企业大都喜欢使用hibernate 5、Mybatis框架   互联网行业通常使用mybatis   不提供对象和关系模型的直接映射,半ORM 二、Mybatis准备 1、使用starter, maven仓库地址:http://mvnrepository.com/artifact/org

RabbitMQ(三):RabbitMQ与Spring Boot简单整合

拈花ヽ惹草 提交于 2020-12-05 00:37:36
RabbitMQ是目前非常热门的一款消息中间件,不管是互联网大厂还是中小企业都在大量使用。Spring Boot的兴起,极大地简化了Spring的开发,本文将使用Spring Boot与RabbitMQ进行简单整合,实现生产和消费消息。 配置 Spring Boot使用了这么久,套路差不多摸清楚了。Spring Boot与其他组件进行整合,无非就是加入pom依赖,接着配置一些基本信息,然后就可以使用相关注解进行开发了。 RabbitMQ也是相同的套路,第一步要引入依赖。要引入的依赖比较容易记,RabbitMQ实现了AMQP协议,引入依赖 spring-boot-starter-amqp 。 <!-- rabbitmq依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> 第二步要配置RabbitMQ连接信息,包括主机、端口号、用户名和密码。RabbitMQ配置信息: spring.rabbitmq.host=192.168.16.128 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq

SpringBoot入门 (十三) WebSocket使用

独自空忆成欢 提交于 2020-12-04 20:46:02
本文记录在SpringBoot中使用WebSocket。 一 什么是WebSocket   WebSocket是基于TCP协议的一种网络协议,它实现了浏览器与服务器全双工通信,支持客户端和服务端之间相互发送信息。在有WebSocket之前,如果服务端数据发生了改变,客户端想知道的话,只能采用定时轮询的方式去服务端获取,这种方式很大程度上增大了服务器端的压力,有了WebSocket之后,如果服务端数据发生改变,可以立即通知客户端,客户端就不用轮询去换取,降低了服务器的压力。目前主流的浏览器都已经支持WebSocket协议了。   WebSocket使用ws和wss作资源标志符,它们两个类似于http和https,wss是使用TSL的ws。主要有4个事件:   onopen    创建连接时触发   onclose    连接断开时触发   onmessage 接收到信息时触发   onerror    通讯异常时触发 二 简单使用示例   SpringBoot对WebSocket也做了支持,需要使用的话引入依赖所需要的包spring-boot-starter-websocket就可以了。我们利用它可以双向通信的特性来实现一个简单的聊天室功能。主要功能如下   1 用户在浏览器端进入聊天室(创建WebSocket连接);   2 用户端发送消息到服务端(客户端像服务端发信息);   3

初识springboot

依然范特西╮ 提交于 2020-12-04 18:33:58
springboot其实就是一个spring的框架,但是简化了一堆配置文件,你不需要再烦恼于一堆xml中,而且一个springboot工程还自带了tomcat,你可以非常方便与快速地开始一个javaweb项目。 现在先来讲一下如何开始一个springboot程序,springboot可以通过典型的java开发工具像eclipse或Idea来使用,也可以用命令行工具: Spring Boot CLI ,你需要jdk1.6以上的版本。 关于用命令行的方法就不说了,这里讲一下不用命令行的: 1.使用start.spring.io 这是个网站,是spring提供给我们快速开始一个spring应用的网站: 在这里你可以设置你的项目,选择需要的依赖dependencies,然后点击生成项目就可以下载到本地了,下载下来就是个maven项目,你可以直接用eclipse或者maven来打开它。 这里我们来讲一个用STS来开始一个springboot项目的helloworld例子: 首先点击file然后new,然后选择Spring Starter Project: (你会发现用的还是start.spring.io) 填好信息后下一步 这里选择springboot的版本还有需要的依赖dependencies,这里我们选择1.5版本先,然后依赖先只要一个web(先选了其他的话会有点不同)然后顺着点就好了

SpringBoot整合Swagger

纵饮孤独 提交于 2020-12-04 17:51:01
@Author:SimpleWu 什么是Swagger? Swagger是什么:THE WORLD’S MOST POPULAR API TOOLING 根据官网的介绍: Swagger Inspector:测试API和生成OpenAPI的开发工具。Swagger Inspector的建立是为了解决开发者的三个主要目标。 执行简单的API测试 生成OpenAPI文档 探索新的API功能 我的理解Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。简单来说,Swagger是一个功能强大的接口管理工具,并且提供了多种编程语言的前后端分离解决方案。根据我的使用,当然我只是最简单的使用,我感觉Swagger有以下几个优点: Swagger可以整合到代码中,在开发时通过注解,编写注释,自动生成API文档。 将前端后台分开,不会有过分的依赖。 界面清晰,无论是editor的实时展示还是ui的展示都十分人性化,如果自己仅仅用markdown来编写,又要纠结该如何展现,十分痛苦。 构建项目 step1.导入依赖 <!--swagger服务api构建个性包--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version

记录一次springboot+vue+axios进行大文件上传失败的问题(前端+后端)

 ̄綄美尐妖づ 提交于 2020-12-04 14:20:11
第一步:修改springboot multipart 的配置 spring: servlet: multipart: max -file - size: 5000MB max -request-size: 5000MB 第二步:修改tomcat服务器连接时间(还是springboot的配置文件) server: connection -timeout: 18000000 前端依旧报错:报错如下 第三步:增大前端VUE 发送异步请求axios的超时时间 customRequest(data){ // 上传提交 this. $message .success( " 文件正在上传! " ); const formData = new FormData() ; formData.append('file', data.file); console.log( " data " + data); formData.append('token', " token " ) this.axios({ method: 'post', timeout: 900000, // 这个就是重点 url: ' /hdfs/ saveFile', headers: { }, params:{ }, data: formData }).then((response) => { console.log

B站疯传,堪称最强,一整套JVM课程,白拿不谢!

北慕城南 提交于 2020-12-04 13:54:31
挑战一下!这3 道 JVM 面试题你能快速答对几道? 1、当 Java 程序性能达不到既定目标,并对于程序优化技巧已用尽,应如何通过 JVM 知识对GC 优化? 2、对于众多参数各自优点增加了调优的难度,GC 优化过程应如何结合现有业务进行适合的参数优化呢? 3、JVM 数据运行区,哪些会造成 OOM 的情况? ...... 画外音:你看看,怎么回才是面试官想要听的? JVM 在性能调优中使用非常广泛,无论什么级别的 Java 从业者,JVM 是进阶时必须迈的坎。如果不懂 JVM 的话,薪酬会非常吃亏。除了面试,学习 JVM 有利于更深入地理解 Java 这门语言,吃透 JVM,为未来排查线上问题打下坚实的基础。 今天给大家推荐一个 【奈学教育】 免费的课程《JVM 从入门, 深入到源码解读》 ,让你轻松玩转JVM底层与调优,从容应对面试官的灵魂拷问. 扫码,添加课程小助手 免费领取JVM 课程 名额有限,先到先得 课程目录 JVM基础必备篇 1、从官网认知JDK/JRE/JVM的体系结构 2、源码到类文件,一起从官网剖析class文件的格式与定义 3、类文件到虚拟机,即类加载和初始化过程-装载/链接/初始化 4、剖析Classloader双亲委派机制 5、全局认知Runtime Data Areas,五大运行时内存区域 6、结合字节码指令理解Java虚拟机栈和栈帧 7、栈/方法区