自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 MySQL~InnoDB的备份和主从复制

对于InnoDB来说冷备非常简单,只需要备份MySQL数据库的frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志文件冷备份的优点:1.是非常快速的备份方法(只需拷贝文件)2.容易归档(简单拷贝即可)3.容易恢复到某个时间点上(只需将文件再拷贝回去)4.能与归档方法相结合,作数据库“最新状态”的恢复。5.低度维护,高度安全。6. 跨平台性不好冷备份的缺点:1.单独使用时,只能提供到“某一时间点上”的恢复。2.在实施备份的全过程中,数据库必须要作备份而不能作其..

2022-05-05 17:35:32 434

原创 MySQL-索引

INSERT INTO index_demo VALUES(4, 4, ‘a’);由于下一个数据页中用户记录的主键值必须大于上一个页中用户记录的主键值的要求,所以在插入主键值为 4 的记录的时候需要伴随着一次记录移动,也就是把主键值为 5 的记录移动到 页28 中,然后再把主键值为 4 的记录插入到 页10 中,这个过程的示意图如下:这个过程表明了在对页中的记录进行增删改操作的过程中,我们必须通过一些诸如记录移动的操作来始终保证这个状态一直成立:下一个数据页中用户记录的主键值必须大于上一个页中用户记

2022-05-05 17:33:15 804

原创 Mybatis系列第9篇:延迟加载、鉴别器

) COMMENT ‘订单表’;INSERT INTO t_order_detail VALUES (1,1,1,2,17.76),(2,1,1,1,16.66),(3,2,1,1,8.88),(4,3,1,1,8.88);select * from t_user;select * from t_goods;select * from t_order;

2022-05-05 17:28:52 292

原创 mybatis映射器组件

在入参出参的时候我们可以使用别名来制定类型。这就是别名带来的好处。不需要写一大长串的包名类名。在第一张我们就提到mybatis和Hibernate的区别是前者是半自动后者是全自动。半自动映射是因为mybatis在列明和属性名相同的时候自动映射,剩下的就需要我们sql别名了。mybatis还提供一种列名转驼峰映射的方式也是经常使用的。select中经常会用到resultMap, resultMap这个标签用途可以说是跟大。首先定义Javabean属性和数据库列的映射。映射包括一对一,一对多,还..

2022-05-05 17:26:33 171

原创 Spring AOP、AspectJ、CGLIB 都是什么鬼

}}3、编译SayHelloService执行命令 ajc -d . SayHelloService.java LogAspect.java生成 SayHelloService.class执行命令 java SayHelloService输出 Hello AspectJ 记录日志ajc.exe 可以理解为 javac.exe 命令,都用于编译 Java 程序,区别是 ajc.exe 命令可识别 AspectJ 的语法;我们可以将 ajc.exe 当成一个增强版的 javac

2022-05-04 13:37:30 80

原创 Spark的RDD转换算子

[](()4. flatMap函数定义def flatMap[U: ClassTag](f: T => TraversableOnce[U]): RDD[U]说明将处理的数据进行扁平化后再进行映射处理,所以算子也称之为扁平映射 。案例实操package com.atguigu.bigdata.spark.core.rdd.operator.transformimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf

2022-05-04 13:35:11 1118

原创 spark streaming读取kafka内容并进行反序列化

import org.apache.spark.sql.ForeachWriterimport com.fasterxml.jackson.module.scala.DefaultScalaModuleimport com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapperimport com.fasterxml.jackson.databind.ObjectMapperimport com.fasterxml.jackson.

2022-05-04 13:33:32 2196

原创 RocketMQ避坑指南:你部署的RocketMQ集群真的是高可用?

RocketMQ 集群采取的部署架构为2主2从,其部署架构如下图所示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传其部署架构中一个非常明显的特点是一台物理机上分别部署了 nameserver,broker 两个进程。其中一台机器(192.168.3.100)的内存出现故障,导致机器重启,但Linux操作系统由于重启需要自检等因素,整个重启过程竟然持续了将近10分钟,客户端的发送超时持续10分钟,这显然是不能接受的!!!RocketMQ的高可用设计何在?接下来我们将详细介绍其

2022-05-04 13:31:14 203

原创 redis集群搭建

编译这一步可以指定目录,也就是安装的指定目录把上一步的make 写成 make PREFIX=/usr/local/redis install (在这里我指定的目录为 /usr/local/redis)安装完毕之后 redis文件夹下面会生成一个bin目录[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sqwk9Gs2-1651642153441)(https://note.youdao.com/yws/public/resource/efd8a0106f2901d0c9

2022-05-04 13:29:31 606

原创 Redis哨兵模式原理剖析,监控、选主

为什么需要客观下线机制?因为当前哨兵节点探测对方没有得到响应,很有可能这两个机器之间的网络发生了故障,而 Master 节点本身没有任何问题,此时就认为 Master 故障是不正确的。为了解决上述问题,客观下线应运而生,Sentinel一般会集群部署,引入多个哨兵实例一起来判断,就可以避免单个哨兵因为自身网络状况不好,而误判主库下线的情况。假设我们有N个哨兵实例,如果有N/2+1个实例判断主库“主观下线”,此时把节点标记为“客观下线”,此时就可以做主从切换了。4.选举哨兵领导者?=========

2022-05-04 13:27:49 1946

原创 Redis之zset实现滑动窗口限流

3.3 lua代码实现1、需求限定用户的某个行为在指定时间T内,只允许发生N次。假设T为1秒钟,N为1000次。2、常见的错误设计程序员设计了一个在每分钟内只允许访问1000次的限流方案,如下图01:00s-02:00s之间只允许访问1000次,这种设计最大的问题在于,请求可能在01:59s-02:00s之间被请求1000次,02:00s-02:01s之间被请求了1000次,这种情况下01:59s-02:01s间隔0.02s之间被请求2000次,很显然这种设计是错误的。3、滑动窗口算法

2022-05-04 13:26:16 2926

原创 Redis中的发布订阅和事务

127.0.0.1:6379> SUBSCRIBE c1 c2 c3Reading messages… (press Ctrl-C to quit)“subscribe”“c1”(integer) 1“subscribe”“c2”(integer) 2“subscribe”“c3”(integer) 3这个表示接收c1,c2,c3三个频道传来的消息,发送消息的方式如下:127.0.0.1:6379> PUBLISH c1 “hell

2022-05-04 13:24:41 90

原创 Redisson(一)

Redis作分布式锁,本质上就是使用了一条set命令setnx key value这个命令的作用是假如key不存在,就如一般的set key value命令一样,只是往数据库添加键值对假如key存在,原本的set key value是会对存在的key对应的value进行覆盖,而对于setnx命令来说,是不进行任何操作的!!!其实setnx的对应的意思就是set if not exist,对应的redisTemplate方法是setIfAbsent,返回一个布尔值,代表是否设置成功下面

2022-05-04 13:22:56 798

原创 Postman测试工具调试接口详细教程【向后端发送Json数据并接收返回的Json结果】

[](()简介=====================================================================Postman,中文译为邮递员,邮差Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模

2022-05-04 13:21:16 929

原创 如何保证Redis缓存与数据库的一致性?

下面,我们来分析一下,应该采用更新缓存还是删除缓存的方式。[](()2.1 更新缓存优点:每次数据变化都及时更新缓存,所以查询时不容易出现未命中的情况。缺点:更新缓存的消耗比较大。如果数据需要经过复杂的计算再写入缓存,那么频繁的更新缓存,就会影响服务器的性能。如果是写入数据频繁的业务场景,那么可能频繁的更新缓存时,却没有业务读取该数据。[](()2.2 删除缓存优点:操作简单,无论更新操作是否复杂,都是将缓存中的数据直接删除。缺点:删除缓存后,下一次查询缓存会出现未命中,这时需要重新读取一次

2022-05-03 16:21:19 401

原创 基于微信小程序的超市购物系统

开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9小程序框架:uniapp小程序开发软件:HBuilder X小程序运行软件:微信开发者随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对超市购物系统进行需求分析,得出超市购物系统主要功能。接着对超市购物系统进行总体设计和详

2022-05-03 16:14:15 1035

原创 基于SpringBoot的影像注册系统04 sa-token使用(源码解析 + 万字

逻辑:查询username存不存在,再查询密码是否正确,只要没有抛异常就调用sa-token的login方法。StpUtil.login(userReal.getId());login方法传入我们user的id,比如:把int类型的数值传进去了。步骤 4 sa-token登录认证=================[核心思想](()所谓登录认证,说白了就是限制某些API接口必须登录后才能访问(例:查询我的账号资料)那么如何判断一个会话是否登录?框架会在登录成功后给你做个标记,每次登录认证时校

2022-05-03 16:12:27 1714

原创 基于Springboot实现仿百度网盘开发

对应本地磁盘存储目录:分享网盘资料根据提取码下载相关资料下载[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AIKSPslg-1651565396357)(https://img-blog.c 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 sdnimg.cn/20210218162105670.png?x-oss-process=image/watermark,type_ZmFuZ3p.

2022-05-03 16:10:14 628

原创 基于JavaWeb实现网上花店商城系统

**应用服务器:**TOMCAT8.5.31JDK: 1.8**开发技术:**JSP/SERVLET/JDBC前端页面**: css+jquery**Vx: baozai_7788千姿百态的花朵述说着千言万语,每一句都解说着”美好”,特别是现在、随着人们的生活水平不断进步,生活质量不断提高、对生活的追求!鲜花已经是人们生活不可缺少的点缀!花卉消费近年来呈越来越旺的趋势,除了花卉本身所具俏丽姿容,让人们赏心悦目,美化家居等功效外,它还可以开发人们的想象力,使人们在相互交流时更含蓄,更有品位、这样我们

2022-05-03 16:08:44 408

原创 培训机构出来,四面阿里淘系后端,最后成功拿到了offer

进程通信方式进程用户态转到内核态的方式死锁原因、如何避免64匹马选最快的四匹TCP三次握手mysql一套带走(ACID、并发控制、事务隔离级别、MVCC、undo段)[](()二面:要做好准备哦,问题问得比一面要细一点讲讲项目(把项目摸透,特别是细节方面的问题,注重逻辑感)restful的设计理念、修改和删除资源的时候为什么要把id放在url里而不放在http的参数里算法题1)力扣 凑硬币2)给一个字符串和一个字符s,已知这个s出现了很多..

2022-05-03 16:06:25 98

原创 图书管理系统(二)整合 SSM

[](()2.2 配置 SqlSessionFactory 对象(MyBatis)在 src/main/resources 下创建 MyBatis 配置文件 mybatis-config.xml,然后再在 spring-dao.xml 中配置 SqlSessionFactory;<?xml version="1.0" encoding="UTF-8" ?><property name=“configLocation” val 《一线大厂Java面试题解

2022-05-03 16:04:26 292

原创 公司新来的00后真是卷王,工作没1年,入职18K

数据库+一致性算法Java算法+数据结构+加密算法+分布式缓存Hadoop+Spark+StormYARN+机器学习+云计算免费领取资料只需要点赞关注收藏一键三连后,扫码添加小助手就可以免费领取点赞+关注+收藏一键三连后添加助理后资料会100%发放,不发我秃头!!!内容一览====线程Java&实现Java线程池工作过程SpringNetty与RPC网络架构Rabbit数据库加密算法云计算总结...

2022-04-29 17:23:40 895

原创 使用OD修改程序窗口标题和提示信息

本文属于很菜鸟级别的教程,初学者适用。[](()准备OD动态调试工具(自己去百度或者吾爱下载)本文示例的程序lcz.exe(点击下载[](()原程序窗口标题为I love lcz窗口提示信息为lcz的第一个程序[](()教程首先打开OD工具将本文示例程序(lcz.exe)拖进OD在菜单栏点击插件,找到中文搜索引擎下的搜索ASCII通过OD中文搜索插件直接找到窗口标题和窗口提示信息假设我们要修改程序窗口的提示信息直接双击lcz

2022-04-29 17:22:09 808

原创 使用 DML语句,对 “锦图网

SELECT typeName 线路类型名,COUNT(old.lineID) 线路订购数量,ROUND(AVG(price),2) 平均线路订购价格(元)FROM line l,linetype lp,ol_detail old WHEREl.lineTypeID=lp.lineTypeID AND l.lineID=old.lineID GROUP BY typeNameORDER BY 线路订购数量,AVG(price)查询指定客户(如“郝琼琼”)所预订的所有线路信息,要求显示下单客户姓名、出

2022-04-29 17:20:10 219

原创 使用 @Transactional 时常犯的N种错误

@Transactionalpublic void methodB() {// 写数据库操作}}*注意 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 *:这里A类用了构造器注入B的实现(为什么没用@Autowrire,可以看看前几天分享的这篇[什么时候不要用@Autowired注入](()),构造函数用Lombok的@AllArgsConstructor生成(这个不熟悉的话可以看看之前这篇[Lombok:让JAVA代码更

2022-04-29 17:18:08 1131

原创 你必须懂也可以懂的微服务系列三:服务调用

FeignClientFactoryBean实现了FactoryBean接口,因此当使用@Autowired注解进行注入的时候,注入的是FeignClientFactoryBean中getObject()方法返回的对象3.5 FeignContext从命名可以得知FeignContext是feign的上下文,其存在着一个Map类型的context属性private Map<String, AnnotationConfigApplicationContext> contexts = new

2022-04-29 17:16:25 257

原创 传输协议之ICMP详解

ICMP作为IP的上层协议在工作(报文)ICMP实现之MTU探索ICMP实现之改变路由ICMP实现之源点抑制ICMP协议-ping工具详解ICMP协议 traceroute(路径追踪)工具详解ICMP实现之端口扫描CMP和安全的关系为什么停止方便的ICMP?ICMP数据包攻击阻止ICMP后将陷入困境[](()TCP和UDP========================================================..

2022-04-29 17:14:01 2163

原创 会话技术(Cookie与Session及对比)

resp.addCookie(newcookie);Cookie[] cookies = req.getCookies();for (Cookie cookie : cookies) {System.out.println(cookie.getName());System.out.println(cookie.getValue());}}}[](()2、原理基于响应头set-cookie和请求头cookie实现的[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(i

2022-04-29 17:12:16 676

原创 从零搭建开发脚手架 权限管理之数据权限介绍

[](()前提需要做数据过滤的业务表,需要加上创建人和创建部门字段,例如:请求单[](()第一步 使用超管账户登录即使用admin账户,或者使用拥有权限管理的角色账户登录。[](()第二步 添加数据资源举例:在工作空间-请假申请-新增列表个人数据权限,新增列表部门数据权限在权限管理模块,点击新增按钮操作如下图:【标识】填写应用代码中第一个查询SQL对应的Mapper.method![](https://img-blog.csdnimg.cn/064dce3ed149 《一线大厂J

2022-04-29 17:10:04 348

原创 专科三年的教训,写给自己,也给正在学习路上的你

学完linux就直接开始做私有云了,私有云是干啥的呢?,就是建立好这个私有云(Openstack)平台,然后进行一些简单的运维,建立虚拟机啊,创建网络啊之类的然后再去查看它们,就这些东西。我用了一年的时间![](()2019年这一年发现有好多知识缺少,开始去补网络,mysql,虚拟化,集群,openstack到这才知道竞赛的整个体系,才明白原来是这么回事。18年只知道跑脚本,为了竞赛去背脚本的顺序,背的熟练了,这个竞赛的基础平台就可以搭建成功了。学完上面那些知识后,才有点清除整个的架构。原来别人写

2022-04-28 15:06:33 982

原创 三方应用通过HTTP接入Linkis

“variable”:{“k1”:“v1”},“configuration”:{“special”:{“k2”:“v2”},“runtime”:{“k3”:“v3”},“startup”:{“k4”:“v4”}}},“executeApplicationName”:“spark”,“executionCode”:“show tables”,“runType”:“sql”,“source”:{“scriptPath”: “/home/Linkis/Linkis.sql”

2022-04-28 15:04:19 169

原创 一篇文章带你使用-Spring-Security-完成前后端分离,JSON-进行交互

.successHandler((req, resp, authentication) -> {Object principal = authentication.getPrincipal();resp.setContentType(“application/json;charset=utf-8”);PrintWriter out = resp.getWriter();out.write(new ObjectMapper().writeValueAsString(principal));ou

2022-04-28 15:02:14 254

原创 一睹阿里内部微服务架构世界:阿里的微服务系统架构设计手册简直把所有操作都写出来了

主要讲解 Docker 的基础操作,介绍微服务中所用到的容器相关的技术,最后给出通用的基于容器的私有云架构精心整理的微服务系统架构设计手册,一睹微服务架构世界精心整理的微服务系统架构设计手册,一睹微服务架构世界微服务之Spring CloudSpring Cloud 实现微服务的几个重要框架进行展开描述,让读者了解注册中心、负载均衡、容错、分布式配置、网关和消息总线,能够完成开发层面的微服务架构。精心整理的微服务系统架构设计手册,一睹微服务架构世界精心整理的微服务系统架构设计手册,一睹微

2022-04-28 15:00:26 767 1

原创 一文带你快速搞懂动态字符串SDS,面试不再懵逼

};struct attribute ((packed)) sdshdr32 {uint32_t len;uint32_t alloc;unsigned char flags;char buf[];};struct attribute ((packed)) sdshdr64 {uint64_t len;uint64_t alloc;unsigned char flags;char buf[];};[](()SDS具体逻辑图假设我们设置某个字符串为hello,那么他SDS的可用长

2022-04-28 14:57:57 343

原创 一个六年java程序员讲述:三年达到月薪35k我是怎么做到的

三、小团队的优势事无巨细,亲力亲为 实践出真知,小公司有足够多的机会锻炼你的实践能力。是挑战亦是机遇。四、小团队的劣势杂而不精 对于大多数的小型创业公司来讲,恨不能一人抵十人用,所以总是要什么都懂什么都做,但却没有特别深入钻研的点,也没有人带,很难有所成长。如果是自学能力特别强,有明确的职业规划目标,也可以勇敢试一试。这个社会更需要的是成为一专多能复合型人才。跳槽工作的前两年,最好不要轻易跳槽。在这个阶段的跳槽,主要有两方面的弊端:对于个人成长 跳槽的目的无非两点,更好的发展空间,或更高的待遇

2022-04-28 14:55:52 682

原创 【源码分析设计模式 7】Integer中的享元模式

4、FlyweightFactory 是享元工厂,它用于构造一个池容器,同时提供从池中获得对象的方法。三、内部状态和外部状态1、上面享元模式的定义为我们提出了两个要求:细粒度和共享对象。我们知道分配太多的对象列到应用程序中将有损程序的性能,同时还容易造成内存溢出,要避免这种情况,用到的就是享元模式,这里就需要提到内部状态和外部状态了。因为要求细粒度对象,所以不可避免地会使对象数量多且性质相近,此时我们就将这些对象的信息分为两个部分:内部状态和外部状态。2、内部状态指对象共享出来的信息,存储在享元对

2022-04-28 14:53:33 341

原创 【源码分析设计模式 7】Integer中的享元模式(1)

package designMode.Flyweight.web2;import java.util.HashMap;public class WebSiteFactory {private HashMap<String, ConcreteWebSite> pool = new HashMap<>();//获得网站分类public WebSite getWebSiteCategory(String key) {if(!pool.containsKey(key)) {po

2022-04-28 14:51:23 283

原创 【故障】nginx间隙性出现502 错误

#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type application/octet-stream;#log_format main '$remote_addr - remoteuser[remote_user [remoteu​ser[time_local] “$request” ’'$status bodybytessent

2022-04-28 14:49:29 891

原创 【并发编程】java并发编程

第二次:第三次:这里就有意思了,加了锁的运行时间居然比不加锁的运行时间还少?是不是觉得有点不可思议了?其实这个也不难理解,这里就要牵扯到cpu缓存以及缓存与内存的回写机制了,感兴趣的小伙伴可以自行百度,今天的重点不在这里。第二种:三个线程使用同一把锁改造代码,去掉add方法的synchronized关键字,将synchronized写在add方法内,新建一把钥匙(成员变量:lock),让三个累加都累加操作使用这把钥匙,代码如下:package com.ymy.test;public clas

2022-04-28 14:47:43 145

原创 【设计模式】策略模式

/**策略工厂*/@Componentpublic class StrategyFactory {​/**用于存储策略类,为什么使用HashMap而不用ConcurrentHashMap呢?那是因为它没有并发问题,所以不需要使用ConcurrentHashMap*/private static final Map<Integer,IStrategy> strategy = new HashMap<Integer, IStrategy>();sta

2022-04-27 17:14:28 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除