- 博客(55)
- 收藏
- 关注
转载 Redis-跳跃表
https://www.cnblogs.com/hunternet/p/11248192.html00:00/01:36なんちゃった~ (开玩笑的啦~)余った布で いろ鬼です (用多余的布 玩个游戏的说)トラはやっぱり 個性です (老虎果然是 有个性的说)アヤヤ(/≧▽≦/)お邪魔するです (小绫绫(≧▽≦)打扰了的说)良いこと考えました (想到了个好主意)どういたしまして (不用客气)とても仲良くなれだけど「shino」 (虽然关系变得很好了)...
2021-06-08 20:18:05
201
转载 细说浏览器输入URL后发生了什么
本文摘要:1.DNS域名解析;2.建立TCP连接;3.发送HTTP请求;4.服务器处理请求;5.返回响应结果;6.关闭TCP连接;7.浏览器解析HTML;8.浏览器布局渲染;总结当我们在浏览器输入网址并回车后,一切从这里开始。一、DNS域名解析我们在浏览器输入网址,其实就是要向服务器请求我们想要的页面内容,所有浏览器首先要确认的是域名所对应的服务器在哪里。将域名解析成对应的服务器IP地址这项工作,是由DNS服务器来完成的。客户端收到你输入的域名地址后,它首先去找..
2021-05-23 13:47:00
448
原创 Kafka事物
Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基 础上,生产和消费可以跨分区和会话,要么全部成功,要么全部失败3.6.1 Producer 事务为了实现跨分区跨会话的事务,需要引入一个全局唯一的 Transaction ID,并将 Producer 获得的 PID 和 Transaction ID 绑定。这样当 Producer 重启后就可以通过正在进行的 Transaction ID 获得原来的 PID。为了管理 Transac
2021-05-16 20:42:30
247
转载 Kafka生产者
分区策略1)分区的原因(1)方便在集群中扩展,每个 Partition 可以通过调整以适应它所在的机器,而一个 topic又可以有多个 Partition 组成,因此整个集群就可以适应任意大小的数据了;(2)可以提高并发,因为可以以 Partition 为单位读写了。2)分区的原则我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象。(1)指明 partition 的情况下,直接将指明的值直接作为 partiton 值;(2)没有指明 par
2021-05-16 20:40:20
172
原创 Kafka工作流程及文件存储机制
kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic 的。topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文 件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该 log 文件末端,且每条数据都有自己的 offset。消费者组中的每个消费者,都会实时记录自己 消费到了哪个 offset,以便出错恢复时,从上次的位置继续消费。..
2021-05-16 17:37:14
143
原创 Kafka操作命令
1)查看当前服务器中的所有 topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list2)创建 topic[atguigu@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 -- topic first选项说明
2021-05-16 16:59:35
142
原创 消息中间件-Kafka
Java中的消息是基于内存的消息中间件使用场景:异步:用户登录的时候,将用户信息写入数据库,发邮件给用户、发短信给用户,需要150ms,改为异步,将信息写入数据库,然后写入消息队列,使用55ms,再从消息队列异步读取发送邮件和短信削峰:比如秒杀系统,用户请求写入消息队列,然后秒杀业务根据规则读取秒杀请求(前端流量控制)解耦:比如订单系统和库存系统,每次下订单之后,需要调用库存系统来加减库存,但是订单系统本来穿3个参数,后来改成5个参数,库存系统也需要跟着修改,因此可以放入消息队列中,读取相关
2021-05-15 16:38:40
313
1
原创 Redis-企业级解决方案
缓存预热缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据。缓存雪崩缓存雪崩就是瞬间过期数据量太大,导致对数据库服务器造成压力。如能有效避免过期时间集中,可以有效解决雪崩现象的出现(约40%),配合其他策略一起使用,并监控服务器的运行数据,根据运行记录做快速调整。LRU最近使用、LFU最少使用道:如何去设计术:遇到问题如何解决缓存击穿缓存击穿就是单个高.
2021-05-11 23:18:21
143
原创 Redis集群
集群架构:集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果。集群的作用:分散当年太服务器的访问压力,实现负载均衡 分散单台服务器的存储压力,实现可扩展性 降低单台服务器宕机带来的业务灾难数据存储设计通过算法,计算出key应该放的位置 将所有存储空间切割成16385份,每台主机保存一部分,每份代表一个存储空间(槽),一个槽可以保存很多数据 将key按照计算结果放入对应空间若增加一个数据库,则没个库都分一部分槽给新数据库集群内部通讯
2021-05-10 23:23:26
201
2
原创 Redis集群-哨兵
哨兵:哨兵(sentinel),是一个分布式系统,用于对主从结构中的每一台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master。哨兵的作用:启用哨兵模式:配置一拖二的主从结构配置三个哨兵(配置相同,端口不同)参看sentinel.conf启动哨兵redis-sentinel sentinel-端口号.conf哨兵工作原理:阶段一:监控阶段sentinel会向master要状态,向slave要状态、向se.
2021-05-10 00:06:23
145
原创 Redis集群
Redis主从复制:“三高”架构:高并发、高性能、高可用点击redis的风险与问题:1、机器故障:硬盘故障、系统崩溃本质:数据丢失、很可能对业务造成灾难性打击2、容量瓶颈:内存不足,从16G升级到64G,从64G升级到128G,无限升级内存本质:穷,硬件条件跟不上为了避免单点Redis服务器故障,准备多台服务器相互联通。数据复制多个副本在不同服务器上,连接在一起,保证数据是同步的。一台宕机其他可以提供服务,实现Redis的高可用,同时实现数据冗余备份。主从复制:主从复制即
2021-05-07 23:33:46
137
原创 Redis事物
Redis 事务本质:一组命令的集合! 一个事务中的所有命令都会被序列化,在事务执行过程的中,会按 照顺序执行!事务中的多个命令被一次性发送给服务器Redis事务没有没有隔离级别的概念!事物中的命令没有被执行,只有发起的时候才会被执行,Redis 最简单的事务实现方式是使用 MULTI 和 EXEC 命令将事务操作包围起来。MULTI开启后,执行命令都会进入队列,执行EXEC,才会顺序执行指令,DISCARD可以取消事物事物过程中执行出错的情况:1、语法错误:整个事物无法执行失败.
2021-05-07 22:58:54
146
原创 Redis持久化
什么是持久化:利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制成为持久化为什么要进行持久化:防止数据意外丢失,确保数据安全性持久化方式:RDB:数据(快照):将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据AOF:过程(日志):将数据的操作过程进行保存,日志形式,存储操作过程,存储格式复杂,关注点在数据的操作过程RDB启动方式-save指令马上执行,而且加入到任务执行队列中重启redis可以自动恢复数据,如果没有sav
2021-05-06 23:46:04
271
原创 数据一致性问题
MySQL主从复制如何保证数据一致性mysql主从复制原理:master写入数据的时候会留下写入日志,slave根据master留下的日志模仿其数据执行的过程来进行数据写入。两个可能导致主从不一致的步骤:1、master写入不成功导致slave不能正常模仿2、slave根据master日志模仿时写入不成功一、保证MySQL(master端)日志和数据的统一性,处理掉电、宕机等异常情况。二、保证MySQL(slave端)同步时和master端保持一致。1、异步复制主库在执行完客
2021-04-15 12:21:18
531
原创 项目笔记16:springcloud配置中心
配置中心可以做什么事情:可以让集群中的每一台服务器都读取一个地方(配置中心)的文件读取Nacos配置中心的配置文件1、在Nacos创建统一配置文件(1)点击创建按钮(2)输入配置信息a)Data ID的完整规则格式如下${prefix}-${spring.profile.active}.${file-extension}- prefix默认为所属工程配置spring.application.name的值(即:nacos-provider),也可以通...
2021-04-14 20:20:44
190
原创 项目笔记15:springSecurity
1、认证授权思路:如果系统的模块众多,每个模块都需要就行授权与认证,所以我们选择基于token的形式进行授权与认证,用户根据用户名密码认证成功,然后获取当前用户角色的一系列权限值,并以用户名为key,权限列表为value的形式存入redis缓存中,根据用户名相关信息生成token返回,浏览器将token记录到cookie中,每次调用api接口都默认将token携带到header请求头中,Spring-security解析header头获取token信息,解析token获取当前用户名,根据用户名就可以从r
2021-04-14 10:25:59
151
原创 项目笔记14:树形菜单查询及批量授权
1、树形菜单后端返回数据首先将所有的数据查询出来reslist然后遍历出所有的一级菜单,然后调用一个递归函数,递归生成子菜单生成子菜单是依旧遍历最开始的reslist2、批量赋权
2021-04-13 21:14:19
176
原创 项目笔记13:GateWay网关
1、什么是网关网关相当于服务器和客户端之间的一面墙,起到请求转发、负载均衡、权限控制等效果跨域问题,之前在每个Controller中都需要加一个@CrossOrigin,都可以在网关中解决2、Gateway网关Gateway是SpringCloud中的一个组件,需要将网关和服务都在注册中心中注册,通过服务进行访问Spring Cloud Gateway中几个重要的概念:1)路由:每个服务对应不同的地址2)断言:是一种匹配规则,一匹配到就可以往下执行3)过滤器:过滤器将会对请求
2021-04-13 19:25:10
369
原创 项目笔记:遇到问题
day11中1、使用NUXT使用github上starter-template-master代码将template中内容复制到新建的工程中,然后使用npminstall,npm run dev命令可以得到一个demo工程2、将前端代码复制到工程中,替换.eslintrc.js文件为vue-front-1010中的文件然后run install会报swiper的错误,然后将其版本制定为低版本npm i vue-awesome-swiper@3.1.3 --save...
2021-04-12 21:42:39
168
原创 项目笔记12:Hystrix熔断器
SpringCloud接口调用过程总结:1、接口化请求调用:设置一下调用的服务名字,接口的请求地址2、Feign:根据名字找到接口中服务做调用33、Hystrix:当调用的时候生产者的服务宕机了,就会调用Hystrix做熔断4、Ribbon:如果正常访问,进入Ribbon,对请求做负载均衡5、HttpClient开始执行真正的Http请求正规过程如下:Spring Cloud在接口调用上,大致会经过如下几个组件配合:Feign----->Hystrix—>R...
2021-04-12 17:24:15
158
原创 项目笔记9:vue-admin-template框架使用
流程:1、现在rooter下的index.js添加路由,比如页面左侧菜单栏2、在index.js文件中,添加路由对应的界面,界面在view-tree下创建(index.vue)路由关联界面代码:component: () => import('@/views/login/index')3、在api下创建js,定义接口地址和参数:import request from '@/utils/request'export function login(username, pas
2021-04-10 16:06:46
359
原创 跨域问题
跨域问题:通过一个地址去访问另一个地址,这个过程中如果有三个地方任何一个不一样,都会有跨域问题访问协议:http httpsip地址 192.168.1.1 172.21.11.11端口号 9873 2342当我们本地的前端去访问后端时,因为端口不一样,会产生跨域问题解决方案:1、在后端接口controller添加注解(常用)@CrossOrigin //解决跨域public class EduLoginController {2、使用网关...
2021-04-10 15:45:40
279
转载 npm: no such file or directory, scandir ‘.../node_modules/node-sass/vendor‘
运行vue报错npm run devnpm: no such file or directory, scandir '.../node_modules/node-sass/vendor'解决办法:解决办法,运行:npm rebuild node-sasshttps://blog.youkuaiyun.com/belvine/article/details/80985379
2021-04-10 14:27:13
138
原创 项目笔记8:微服务
1)微服务是架构风格2)把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程目前微服务的开发框架,最常用的有以下四个:Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)Dubbo:http://dubbo.ioDropwizard:http://www.dropwizard.io (关注单个微服务的开发)Consul、etcd&etc.(微服务的模块)前两个最常用spr
2021-04-06 12:44:09
183
原创 项目笔记6:讲师添加修改
1、讲师添加1) 创建时间和修改时间字段使用自动填充方式方法见:https://blog.youkuaiyun.com/Sky_rabbit94/article/details/115417219?spm=1001.2014.3001.55012)编写Controller,传入一个eduTeacher对象 //添加讲师接口的方法 @PostMapping("addTeacher") public R addTeacher(@RequestBody EduTeacher eduT
2021-04-03 20:54:05
224
原创 项目笔记5:分页查询
1、MyBatisPlusConfig中配置分页插件@Configuration@MapperScan("com.atguigu.eduservice.mapper")public class EduConfig { /** * 分页插件 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(...
2021-04-03 20:35:49
296
原创 项目笔记4:统一返回数据格式
项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容数据格式有2种,对象和数组,两种格式混合使用。1、在common模块中创建子模块common_utils2、创建interface,定义数据返回状态码package com.tutu..
2021-04-03 19:44:54
364
原创 项目笔记3:swagger整合
1、前后端分离开发模式中,api文档是最好的沟通方式。Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。及时性(接口变更后,能够及时准确地通知相关前后端开发人员) 规范性(并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息) 一致性(接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧) 可测性(直接在接口文档上进行测试,以方便理解业务)1、创建公共commom模块(子工程)整合...
2021-04-03 16:50:54
335
原创 项目笔记2:讲师逻辑删除接口
1、配置逻辑删除插件2、属性上添加@TableLogic注解属性默认值可以通过数据库默认或者mp方式配置默认值mp方式:属性上添加@TableField(fill=FieldFill.INSERT),然后在元对象处理器接口添加默认值 @TableLogic @TableField(fill=FieldFill.INSERT) private Integer deleted;元对象处理器接口部分代码:@Componentpublic class M...
2021-04-03 16:21:59
274
原创 mp中常使用插件
1、逻辑删除插件2、分页插件@Configuration@MapperScan("com.atguigu.eduservice.mapper")public class EduConfig { /** * 逻辑删除插件 */ @Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); } /** * 分页插件 .
2021-04-03 16:01:45
505
原创 项目笔记1:使用mp生成代码后,编写讲师查询
使用mp生成代码,一般只需要编写Controller部分,service继承了IService接口,实现了增删改查功能实现讲师查询功能步骤如下1、创建Controller使用rest风格:即使用get、post、put、delete等@RequestMapping("eduservice/teacher")设置请求的路径使用@Autowired注入使用的service2、创建启动类,由于使用了maven创建子工程,要自己手写启动类3、创建配置类config,然后使用@Conf
2021-04-03 11:52:33
201
转载 SSM 配置数据源时问题:Could not resolve placeholder 'jdbc.url' in string value "${jdbc.url}"
这个Bug,一般的都会说,你的*.properties 属性文件是否存在,文件中,名称是否与applicationcontext.xml 中的文件名称是否一致,一开始,我也是天真的这么认为的,然后还认认真真的对比了半天,没毛病啊。 下边是properties 属性文件 <span style="font-family:Microsoft YaHei;font-size:1...
2018-07-29 13:51:25
2233
1
转载 Eclipse中Team-share project中没有svn问题
从Install New Software里下载具体操作:打开Eclipse –> Help –> Install New Software –> 点击add按钮,输入下载地址:http://subclipse.tigris.org/update_1.10.x,点击OK –> 将Subclipse和SVNKit打勾后,一路next或agree到结束即可...
2018-07-28 16:50:46
4297
原创 SSM框架,经过controller层返回页面不能访问静态资问题
通过Controller的sys/login方法访问login.jsp页面时,发现CSS和JS无法加载, 通过控制台输出信息,发现路径前面自动加了个sys/ 导致资源无法访问。 解决办法:这是由于路径问题引起的资源无法加载需要再Head中指定Body中使用的相对路径,这样就不会每次都在访问路径前加/sys了<%@ page language="java"...
2018-07-23 16:33:59
2861
1
原创 JAVA 使用MyBatis Generator Tool工具生成代码
1.下载所需jar包: mybatis-generator-core 和数据库链接jar包 mysql-connector-java2.配置生成文件 hp-generator.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//...
2018-07-22 11:20:21
1073
原创 java三大框架整合——springmvc.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" xmlns:context="http://www.springfra
2018-07-21 18:53:40
405
原创 java SSM框架整合——web.xml配置
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/x
2018-07-21 18:51:58
478
原创 JAVA AOP 报错error at ::0 can't find referenced pointcut pointCut02
使用aspectJ注解来实现Spring AOP,一下代码执行时报错error at ::0 can't find referenced pointcut pointCut02@Component@Aspectpublic class 如何定义切点 { @Pointcut("execution(int com.shxt.service.ArithmeticService.add(int...
2018-07-19 20:46:47
906
原创 window.event.href不跳转问题
使用window.location.href调用Controller中logout方法,但是页面并没有返回登录页面,也没有执行Controller中logout也没有执行Controller中logout方法:解决方案:js函数中加上: window.event.returnValue=false 这个属性放到提交表单中的onclick事件中在这次点击事件...
2018-07-17 17:09:38
378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人