再别康桥_Victor
码龄7年
  • 54,708
    被访问
  • 78
    原创
  • 66,053
    排名
  • 7
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2015-01-06
博客简介:

qq_25118431的博客

查看详细资料
  • 3
    领奖
    总分 309 当月 18
个人成就
  • 获得7次点赞
  • 内容获得5次评论
  • 获得30次收藏
创作历程
  • 1篇
    2022年
  • 37篇
    2021年
  • 3篇
    2020年
  • 17篇
    2019年
  • 25篇
    2018年
成就勋章
TA的专栏
  • JAVA运行环境
  • java算法
    9篇
  • git
    1篇
  • linux
    1篇
  • 多线程
    3篇
  • 消息队列
  • 面试
    1篇
  • NIO
    1篇
  • 架构图
    1篇
  • Jenkins
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    架构
  • 微软技术
    c#asp.net.net
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Map+函数式接口

用上了Java8的新特性lambda表达式 判断条件放在key中 对应的业务逻辑放在value中 这样子写的好处是非常直观,能直接看到判断条件对应的业务逻辑需求:根据优惠券(资源)类型resourceType和编码resourceId查询派发方式grantType上代码:@ServicepublicclassQueryGrantTypeService{@AutowiredprivateGrantTypeSerivegrantTypeS...
原创
发布博客 2022.01.20 ·
358 阅读 ·
0 点赞 ·
0 评论

git写错分支,如何将一个分支上的修改转移到另一个分支上

1.git add //首先把所有修改都进暂存区2.git stash //把暂存区内的修改存储起来3. git checkout dev//切换到正确的分支4. git stash pop//将存储的修改取出来
原创
发布博客 2021.12.03 ·
308 阅读 ·
1 点赞 ·
0 评论

JDK 监控和故障处理工具总结

1. top查看进程资源占用情况2.使用top -Hp 3429命令查看进程里面占用最多的资源的线程。3.这里我们看到的占用最多资源的线程是:3440。使用命令printf "%x
" 3440 把线程pid转换成16进制数,得到:d70。4.使用jstack 3429 | grep -20 d70命令查询该线程阻塞的地方。...
原创
发布博客 2021.11.29 ·
28 阅读 ·
0 点赞 ·
0 评论

多线程——生产者和消费者模式

生产者package com.ProductCusromer.method3;import java.util.concurrent.BlockingQueue;/** * @author Millet * @date 2020/3/30 21:28 */public class Product4 implements Runnable { private BlockingQueue queue; private String name; public Pro.
原创
发布博客 2021.11.17 ·
145 阅读 ·
0 点赞 ·
0 评论

Java多线程实现的四种方式

1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程
原创
发布博客 2021.11.01 ·
25 阅读 ·
0 点赞 ·
0 评论

索引失效的情况

1.有or必全有索引;2.复合索引未用左列字段;3.like以%开头;4.需要类型转换;5.where中索引列有运算;6.where中索引列使用了函数;7.如果mysql觉得全表扫描更快时(数据少);什么情况下不推荐使用索引?1) 数据唯一性差(一个字段的取值只有几种时)的字段不要使用索引比如性别,只有两种可能数据。意味着索引的二叉树级别少,多是平级。这样的二叉树查找无异于全表扫描。2) 频繁更新的字段不要使用索引比如logincount登录次数,频繁变化导致索引也
原创
发布博客 2021.10.28 ·
29 阅读 ·
0 点赞 ·
0 评论

Spring框架是怎么解决Bean之间的循环依赖的

循环依赖的本质上文了解完Spring如何处理循环依赖之后,让我们跳出“阅读源码”的思维,假设让你实现一个有以下特点的功能,你会怎么做?将指定的一些类实例为单例 类中的字段也都实例为单例 支持循环依赖举个例子,假设有类A:public class A { private B b;}类B:public class B { private A a;}说白了让你模仿Spring:假装A和B是被@Component修饰,并且类中的字段假装是@Autowired修
原创
发布博客 2021.10.19 ·
42 阅读 ·
0 点赞 ·
0 评论

RocketMq消息丢失场景及解决方案

生产者将消息发送给mq途中,因出现网络抖动,导致消息丢失 消息存储在pagecache区,且尚未触发异步刷盘,而出现断电一类,导致数据丢失。或是存入磁盘后,磁盘损坏导致数据丢失 Consumer从mq中拿取数据,尚未完成消费,就通知mq消费完毕,然后消费者宕机,导致消息丢失解决方案场景一:基于生产者的分布式事务来解决 若是消息推送mq过程中丢失,则执行回滚操作 生产者发送完消息以后,mq即使接收到响应成功后,暂时消费者也不会消费的(此时处于半消息状态) 生产者会执行自己的链路,若..
原创
发布博客 2021.10.13 ·
319 阅读 ·
0 点赞 ·
0 评论

如何设计一个安全的对外接口?

  个人觉得安全措施大体来看主要在两个方面,一方面就是如何保证数据在传输过程中的安全性,另一个方面是数据已经到达服务器端,服务器端如何识别数据,如何不被攻击;下面具体看看都有哪些安全措施。1.数据加密  我们知道数据在传输过程中是很容易被抓包的,如果直接传输比如通过 http 协议,那么用户传输的数据可以被任何人获取;所以必须对数据加密,常见的做法对关键字段加密比如用户密码直接通过 md5 加密;现在主流的做法是使用 https 协议,在 http 和 tcp 之间添加一层加密层(SSL 层),..
原创
发布博客 2021.10.10 ·
17 阅读 ·
0 点赞 ·
0 评论

Cglib和jdk动态代理的区别

Cglib和jdk动态代理的区别?1、Jdk动态代理:利用拦截器(必须实现InvocationHandler)加上反射机制生成一个代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理2、 Cglib动态代理:利用ASM框架,对代理对象类生成的class文件加载进来,通过修改其字节码生成子类来处理什么时候用cglib什么时候用jdk动态代理?1、目标对象生成了接口 默认用JDK动态代理2、如果目标对象使用了接口,可以强制使用cglib3、如果目标对象没有实现接口,必须
原创
发布博客 2021.10.08 ·
1204 阅读 ·
1 点赞 ·
0 评论

springboot + redis + 注解 + 拦截器 实现接口幂等性校验(转)

、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单 支付接口, 重复支付同一笔订单只能扣一次钱 支付宝回调接口, 可能会多次回调, 必须处理重复回调 普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 -- 防止新增脏数据 token机制 -- 防止页面重复提交 悲观锁 -- 获取数据的时候加锁(锁表或锁行) 乐观锁 -- 基于版本号version实现, 在更新数
原创
发布博客 2021.09.27 ·
32 阅读 ·
0 点赞 ·
0 评论

消息队列架构原理

消息队列支持高并发,高吞吐量的原因 ?顺序读写 零拷贝 正是因为分了partion,才方便进行零拷贝。 文件分段:操作小文件肯定比大文件要方便。 批量发送 数据压缩消费者 与 消息存储方Broker一般有两种通信机制:推(PUSH)、拉(PULL)推模式:消息发送者将消息发送到Broker,然后Broker主动推送给订阅了该消息的消费者。拉模式:消息发送者将消息发送到Broker上,然后由消息消费者自发的向Broker拉取消息。推模式优点当然是快。一般是采取客户端和服务器端建立长连接
原创
发布博客 2021.09.08 ·
57 阅读 ·
0 点赞 ·
0 评论

BeanFactory和ApplicationContext的区别

BeanFactory:是Spring里面最低层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能;ApplicationContext:应用上下文,继承BeanFactory接口,它是Spring的一各更高级的容器,提供了更多的有用的功能;1) 国际化(MessageSource)2) 访问资源,如URL和文件(ResourceLoader)3) 载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web层 4) 消息发送、响.
原创
发布博客 2021.09.07 ·
19 阅读 ·
0 点赞 ·
0 评论

JWT + shiro

关于何时执行shiro AuthorizingRealm 里的 doGetAuthenticationInfo与doGetAuthorizationInfo1.doGetAuthenticationInfo执行时机如下当调用Subject currentUser = SecurityUtils.getSubject();currentUser.login(token);2.doGetAuthorizationInfo执行时机有三个,如下:1、subject.hasRole(“ad
原创
发布博客 2021.09.06 ·
29 阅读 ·
0 点赞 ·
0 评论

Eureka工作原理及心跳机制

1.基本原理上图是来自eureka的官方架构图,这是基于集群配置的eureka;处于不同节点的eureka通过Replicate进行数据同步Application Service为服务提供者Application Client为服务消费者Make Remote Call完成一次服务调用服务启动后向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次
原创
发布博客 2021.09.05 ·
156 阅读 ·
0 点赞 ·
0 评论

SpringCloudAlibaba之Nacos注册中心架构原理

1. 服务通过nacos server内部的open api进行服务注册,nacos server内部有一个sevice服务的概念,里面有多个instance实例的概念,同时对不同的service服务可以划归到不同的namespace命名空间下去2. 注册的时候就是在注册表里维护好每个服务的每个实例的服务器地址,包括ip地址和端口号一旦注册成功之后,服务就会跟nacos server进行定时的心跳,保持心跳是很关键的,nacos server会定时检查服务各个实例的心跳,如果一定时间没心跳,就认为
原创
发布博客 2021.09.05 ·
72 阅读 ·
0 点赞 ·
0 评论

设计模式总结

1. 单例模式2. 工厂模式3. 装饰模式4. 适配模式5. 代理模式6. 策略模式7.桥接模式8. 创建者模式9. 观察者模式
原创
发布博客 2021.09.03 ·
13 阅读 ·
0 点赞 ·
0 评论

NIO理解, Netty框架

事件驱动模型 避免多线程 单线程处理多任务 非阻塞I/O,I/O读写不再阻塞,而是返回0 基于block的传输,通常比基于流的传输更高效 更高级的IO函数,zero-copy IO多路复用大大提高了Java网络应用的可伸缩性和实用性 RocketMQ核心技术精讲与高并发抗压实战 1:特点 比较吃内存 内存至少1g 默认8g 1:支持集群模型,强调集群无单点,负载均衡以及水平扩展能力2:亿级别的消息堆积能力3:采用零拷贝原理Consumer 消费消息过程,使用了
原创
发布博客 2021.08.25 ·
37 阅读 ·
0 点赞 ·
0 评论

一次完整的Http请求

高并发意味着单位时间内系统能处理的请求数很高,也就是说系统所能承载的HTTP请求很多,那要应对高并发,就要从HTTP请求处理层面开始,如下是我理解的一个完整的HTTP请求所经历的流程:1、DNS域名解析将请求域名解析为IP地址。2、与IP地址对应的服务器网卡建立连接,TCP的三次握手,连接建立并占用3、服务器操作系统通过连接读取和处理请求3.1 从连接中读取字节流(IO密集)3.2 将读取到的字节流转换成HTTP请求(CPU密集)4、服务器操作系统将HTTP请求转发给WEB ..
原创
发布博客 2021.08.25 ·
11 阅读 ·
0 点赞 ·
0 评论

redis锁

redis为什么可以做分布式锁?Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。redis据你所知是单线程的,为什么redis还可以快?开发语言现在我们都用高级语言来编程,比如 Java、python 等。也许你会觉得 C 语言很古老,但是它真的很有用,毕竟 unix 系统就是用 C 实现的,所以 C 语言是非常贴近操作系统的语言。Redis 就是用 C 语言开发的,所以执行会比较快。纯内存访问Redis 将所有数据放在内存中
原创
发布博客 2021.08.25 ·
13 阅读 ·
0 点赞 ·
0 评论
加载更多