![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 87
老蛙@
卷
展开
-
kafka
消息的消费者的消费速度远赶不上生产者生产消息的速度,就会导致kafka中大量数据没有被消费,当消息堆积雨来越多,会导致消费者寻址的性能越来越差,从而造成kafka性能降低,导致其他服务的访问性能也变慢,造成服务雪崩。如果多个消费者在一个消费组中,那么只有一个消费者可以收到订阅的topic中的消息,换言之,同一个消费组只能有一个消费者收到一个topic中的消息,在创建消费客户端时通过指定消费组的id来控制消费端属于哪个消费组。Kafka集群中的broker在zk中创建临时序号结点,序号最小的结点(即。原创 2022-11-05 19:18:34 · 1035 阅读 · 1 评论 -
关于实现token无感刷新的解决方案
问题引入在开发中为了安全或满足分布式场景,通常会舍弃原有的session认证手段,而采用jwt(json web token);但是使用token难免遇到token有效期的问题,如果token长期有效,服务端不断发布新的token,导致有效的token越来越多,这必然是存在安全问题的。而token不想session一样,在用户操作时会进行刷新,为了用户体验,这个刷新就需要自己实现。方案一、使用旧token获取新token如果采取单个token的方式要实现token的自动刷新,就必须使用定时器,每隔一原创 2021-11-27 15:48:20 · 16148 阅读 · 16 评论 -
Java总复习(四)——MyBatis、Thymeleaf、Maven
MyBatis的简单实现Maper的构建过程SqlSession基本构建的代码为:String resource = "mybatis-config.xml";//设置mybatis配置文件的资源路径(类路径下)InputStream inputStream = null;try { inputStream = Resources.getResourceAsStream(resource);//获取配置文件的输入流} catch (IOException e) { e.printStackT原创 2021-10-14 16:49:26 · 290 阅读 · 0 评论 -
Java总复习(三)——Web前端与JavaWeb
CSS选择器id,class,标签,属性,子(空格) 兄弟(+) 后代(>)div的水平和垂直居中div{ margin:0 auto; width:200px; height:200px; background-color: pink;}JavaScript原创 2021-10-10 21:56:46 · 144 阅读 · 0 评论 -
Java总复习(二)——MySQL
SQL语句连接查询外连接(左外连接、右外连接):解决外键为空的数据查询,当数据表之间没有物理建立主外键时,出现外键为空的情况直接联查查不到,使用外连接就可以解决这一问题(如左外连接会先将左表所有列查出,再从右表中找到符合条件的列,对于没有符合条件的坐标列对应右表字段为NULL)子查询:以一张表查询结果作为第二张表的查询条件的查询数量查询问题select count(*) from tableselect count(1) from tableselect count(row) from原创 2021-10-07 13:56:35 · 97 阅读 · 0 评论 -
Java总复习(一)——JavaSE基础
Java概述体系结构JRE:Java核心类库JVM:Java虚拟机JDK:包含JRE和JVM,以及其他Java命令与工具(如java、javadoc、javac等)Java最大特点跨平台:Java文件编译后是class文件,class文件符合Java虚拟机规范,每个平台都有一套JVM,class依赖与JVM而不是操作系统Java数据类型8种基本数据类型:byte、short、int、long、float、double、char、boolean引用数据类型:数组、类对象、枚举、注解原创 2021-10-03 15:42:18 · 199 阅读 · 0 评论 -
Spring Security(Springboot-v2.5.5)
概述SpringSecurity是基于Spring的安全框架,作用和shiro一样,用于认证和授权SpringSecurity和shiro对比SpringSecurity和Spring无缝结合全面的权限控制专门为Web开发而设计(旧版本不能脱离Web环境,新版本对整个框架进行了分层抽取,分成了核心模块和Web模块,单独引入核心模块就可以脱离Web环境)重量级shiro轻量级,shiro主张的理念是把复杂的事情变简单。针对性能又更高要求的互联网应用又更好表现通用性(不局限于W原创 2021-09-29 15:28:15 · 701 阅读 · 0 评论 -
分布式电影票务系统后端部分功能开发
服务与接口分析用户服务注册登录密码修改头像修改电影服务影院服务订单服务影院服务搜索服务后台管理服务文件服务评论服务秒杀服务基于SpringCloudAlibaba整合其他组件数据库采用MySQL,秒杀系统数据库采取Oracle数据访问层使用Mybatis+Mybatisplus服务调用方面使用OpenFeign声明式调用(同步),使用rabbiyMQ进行异步调用注册中心与配置中心使用nacos网关使用gateway问题总结...原创 2021-09-25 17:48:55 · 594 阅读 · 1 评论 -
redisson实现分布式锁(集群环境)
问题引入面对高并发时,mysql事务无法保证原子性,可以使用synchronized关键字,在调用方法时加锁;但是这个方式在锁住之后其他线程会阻塞,这会又很大的性能问题,于是考虑到分布式锁来解决这一问题分布式锁控制分布式系统有序的去对共享资源进行操作,通过互斥来保持一致性(synchronized关键字只在当前Java系统中作用);常用的分布式锁解决方案有三种:基于数据库层面实现分布式锁(悲观锁,乐观锁)基于缓存层面(如redis)实现分布式锁基于zookeeper实现分布式锁redis分原创 2021-09-20 21:40:18 · 1697 阅读 · 0 评论 -
任务调度Quartz、api文档管理Swagger、Websocket协议
QuartZ概述原创 2021-09-14 17:01:24 · 785 阅读 · 0 评论 -
全文检索与Elasticsearch(二)——DSL查询进阶,分词器,springboot整合ES,DSL分页,MySQL到ES数据同步,集群
DSL查询进阶match查询match类似模糊匹配,match知道分词器的存在,会根据查询条件进行分词操作,然后再查询,GET 索引名/_search{ "query":{ "match":{ "FIELD":"text" } }}match_all查询所有文档GET 索引名/_search{ "query":{ "match_all":{} }}等同于GET 索引名/_searchmulti_match可以指定多个字段进行查询,同一查询文本在多个原创 2021-09-11 21:28:20 · 1021 阅读 · 0 评论 -
全文检索与ElasticSearch(一)——ES概述,正向索引与倒排索引,B+树,简单命令,Mapping
ElasticSearch概述ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口。它可以近乎实时的存储、检索数据;本身扩展性非常好,一个ES节点就可以认为是一个集群(默认支持集群),它可以扩展到上百台服务器。ES的生产环境至少在8GB以上Lucene和ES的关系Lucene只是一个库,必须使用Java作为开发语言将他集成到应用中,使用起来十分复杂ElasticSearch也是使用Java开发并使用Lucene作为其核心来原创 2021-09-09 13:40:43 · 1273 阅读 · 1 评论 -
Docker基础
概述docker原创 2021-09-08 14:01:57 · 273 阅读 · 0 评论 -
简单了解Oracle+JPA+Hibernate
Oracle安装原创 2021-09-07 15:12:33 · 341 阅读 · 0 评论 -
分布式事务与Seata
分布式事务概述原创 2021-09-06 18:05:21 · 621 阅读 · 0 评论 -
Git与TortoiseGit的使用
Git概述原创 2021-09-05 17:55:09 · 418 阅读 · 0 评论 -
熔断Hystrix入门,网关Gateway,SpringCloud与SpringCloudAlibaba组件对比
熔断原创 2021-08-30 19:08:41 · 306 阅读 · 0 评论 -
RabbitMQ
概述RabbitMQ是消息队列,消息即请求一般用来解决应用解耦,异步消息,流量削峰等问题应用解耦:如上图,服务A发送消息之后就不用再去理会后续的消息操作,后续的操作都有MQ来完成,这就有了解耦的效果异步消息:在直接调用服务时,服务A收到请求便会将消息直接发送到服务B,而使用了消息队列,服务A将消息发送到消息队列,消息队列可以自主决定什么时候发送消息,有了异步的效果,以免流量过高,提高了性能流量削峰:消息队列可以将消息按照自己的规划来执行,以免在短时间内面临巨大流量,达到削峰填谷的效果服务启原创 2021-08-29 19:57:45 · 332 阅读 · 0 评论 -
SpringCloudConfig,SpringCloudZipkin,Nacos
配置中心(SpringCloudConfig)概述在集群搭建时,存在许多类似的服务中的配置信息都相同,在修改的时候维护性较低,所以可以采取一个配置中心将相同的配置内容抽取出来统一管理配置信息抽取出来存放在gitee或github的仓库中,应用服务器通过config server来找到配置信息实现步骤仓库gitee勾选README创建新仓库,创建配置文件,配置文件的名称为application-profiles;application:配置客户端的服务名;profiles:配置文件的版本Con原创 2021-08-27 23:23:16 · 234 阅读 · 0 评论 -
Nginx
概述Nginx是一个高性能的轻量级HTTP和反向代理的服务器,同时提供了电子邮件(IMAP/POP3) 的服务,特点是内存少,并发能力强应用反向代理、服务器端负载均衡、动静分离Nginx安装下载依赖与安装包openssl,zlib,pcre,nginx安装openssltar -zxvf openssl-1.1.1k.tar.gzcd openssl-1.1.1k./configmake && make install安装zlibtar -zxvf zli原创 2021-08-20 17:26:20 · 100 阅读 · 0 评论 -
Redis(三):redis集群——主从复制、哨兵、集群
高级数据类型原创 2021-08-18 20:45:39 · 168 阅读 · 0 评论 -
Redis(二):redis高级——linux下redis基本操作、持久化、事务、删除策略、服务器基础配置redis.conf、高级数据类型
linux搭建redis原创 2021-08-17 21:10:15 · 264 阅读 · 0 评论 -
Redis(一):redis基础——redis入门、基础数据类型、通用指令、jedis
redis入门原创 2021-08-16 16:07:09 · 234 阅读 · 0 评论 -
linux
计算机组成简述硬件系统输入设备输出设备运算器控制器存储器软件系统系统软件:管理计算机硬件设备(不为了给用户提供操作)应用软件:用户根据自己需求下载的软件,如:QQ、Chrome操作系统管理计算机硬件和软件的计算机程序个人操作系统操作方便简单,图形化界面用户友好windows:稳定性不够,不能长时间运行,消耗系统资源mac:相较于windows性能更高服务器系统稳定,高性能(速度快)linux:开源免费unix:不免费linux概述常见的几种版本的li原创 2021-08-15 19:32:40 · 167 阅读 · 0 评论 -
MinIO,Zuul
熔断机制原创 2021-08-13 17:39:17 · 3098 阅读 · 0 评论 -
微服务简介,Euraka,Ribbon,openFeign
微服务简介首先理解一个概念——高可用,即保证服务器的高度可用,减少停工时间;原来的单体应用只有一个服务器,所有服务(功能)都在该服务器上,如果出现某些突发情况,服务器挂了,整个系统就停工了。而微服务保证多个服务存在于多个服务器,或多个服务器共同维护一个服务(集群),某一个服务挂了并不会过大的影响整体,不会导致整个系统的停工微服务的实现每个微服务对应一个服务器,一个数据库;但是不同服务互相直接调用起来非常麻烦而且没有条理,所以将所有模块注册到一个共同的地方,每个请求都找到注册中心,再由注册中心来发送到各原创 2021-08-10 18:33:03 · 184 阅读 · 0 评论 -
前后端权限控制——JWT与Shiro、vue路由导航守卫
JWTjwt与传统session方式对比基于session的方式会在服务器端产生一个session,然后通过jsessionid对比来找到用户对应的session,当session增多对服务器是一个很大的开销,而基于jwt的方式,每次客户端带来一个token直接通过解析token来鉴权token可以存储在localstorage、sessionstorage、cookie,localstorage存于本地,如果不手动清楚不会被清掉;sessionstorage存于会话,当浏览器窗口关闭则清掉创原创 2021-08-04 23:22:00 · 1007 阅读 · 0 评论 -
VUE基础——vue入门、axios、组件基础 、路由的基本使用、脚手架项目搭建
VUE入门原创 2021-07-25 17:33:10 · 209 阅读 · 2 评论 -
ES6新语法解析
变量声明ES6提供了两个新的变量声明关键子:let和constlet局部变量声明,ES6之前的var具有声明提升,即全局声明变量,令变量声明(仅仅是声明而非赋值)默认在它第一次被使用之前示例console.log(a);let a=1;将报错:console.log(a);var a=1;不会报错,但输出结果是undefinedconst局部常量声明,声明的常量无法修改示例const a=1;a=2;将报错:模板字面量``可以在其中编写多行文本,字符串换行需要使原创 2021-07-24 00:16:28 · 1604 阅读 · 0 评论 -
Springboot入门、Springboot整合mybatis、mybatis-plus、RestTemplate的使用、自动配置基础
Springboot环境搭建原创 2021-07-16 16:04:19 · 358 阅读 · 0 评论 -
SpringMVC(四)——跨域问题、异常处理、自定义视图、事务
异常处理原创 2021-07-14 15:20:54 · 280 阅读 · 0 评论 -
SpringMVC(三)——过滤器、后端实体类校验Bean Validation(Hibernate Validation)
过滤器的应用原创 2021-07-13 16:32:14 · 342 阅读 · 0 评论 -
SpringMVC(二)——spring整合JSP、THymeleaf;数据共享
SpringMVC整合JSP原创 2021-07-10 21:53:42 · 705 阅读 · 0 评论 -
SpringMVC(一)——运行流程、控制器映射、数据传递(文件上传)
运行流程原创 2021-07-10 19:38:57 · 340 阅读 · 1 评论 -
springMVC入门——环境搭建、参数传递
SpringMVC入门配置步骤pom.xml的打包方式改成war,增加jetty-plugin(jetty-plugin是和tomcat作用相同的一个容器,是maven的一个插件),增加spring-webmvc(spring-mvc依赖),jackson-databind(用于json数据的转换) <packaging>war</packaging> <build> <plugins>原创 2021-07-07 08:57:51 · 109 阅读 · 0 评论 -
Spring的AOP
AOP概述AOP定义AOP:Aspect Oriented Programming(面向切面编程),是通过预编译和运行期动态代理来实现程序功能的统一维护的技术不同的业务块有时会具有相同的操作,如图:将这样相同的操作提取出来就是切面,aop则是面向这些多个业务块横向切取的公共片段编程,在维护期间,仅需要对切面进行修改即可,降低了耦合度,可维护性大大增强将切面提取之后,原对象和切面就被分隔开:此时aspect和pointcut互不相关,交由代理将其联系在一起,调用时直接通过代理获取目标对象即可原创 2021-07-05 23:18:13 · 496 阅读 · 10 评论 -
Spring的IOC/DI
IOC/DI概述依赖对象与被依赖对象如:class A{}class B{ A a = new A();}这里,B中有一个A对象,当类A被删除,B就不能正常运行,所以A,B之间具有依赖关系(即B依赖于A),可以说:当一个类B中引用了另一个类A的对象,则B依赖于A在这个例子中,B称为被依赖对象,A称为依赖对象IOCInverse of Controll(控制反转):控制即控制了类的实例化及属性的赋值(IOC容器控制了对象的创建),所谓反转,就是将类的实例化及属性的赋值交由第三原创 2021-07-04 17:40:17 · 227 阅读 · 2 评论 -
spring入门与mybatis-spring环境搭建
概述spring是一个针对bean的生命周期进行管理的轻量级容器,即管理类的实例化及属性的赋值的容器spring使用初体验(基于xml)类的实例化配置文件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"原创 2021-06-26 16:11:03 · 104 阅读 · 0 评论 -
maven入门,Idea入门
maven入门原创 2021-05-26 22:04:24 · 145 阅读 · 4 评论 -
MyBatis(五)——注解与SQL语句构建器
注解映射器注解配置对于每一个dao类有一个对应的mapper.xml文件来作对应的数据库操作与映射,为了增加效率可以改为注解的形式而非xml文件形式,在mybatis-config.xml配置文件中对于映射文件的配置只需要在mappers标签中加上pakage标签,name属性为dao类所在的包即可常用注解注解作用@Select映射查询语句(其余如@Update、@Insert、@Delete)@SelectProvider查询语句的动态sql映射,参数为类和方法,该方原创 2021-05-26 17:46:43 · 230 阅读 · 0 评论