MrLee的博客

学习交流

  • 博客(298)
  • 资源 (10)
  • 收藏
  • 关注

原创 互联网行业术语

互联网行业一般指的是互联网企业,是指以计算机网络技术为基础,利用网络平台提供服务并因此获得收入的企业。其业务范围通常覆盖全国甚至全球,注册用户通常达到千万级以上,用户活跃度也非常高,经常在同一时间点出现请求并行的情况。代表企业有阿里巴巴、腾讯、百度、东、宇节跳动,美团饿了么等。传统行业通常是指互联网向传统行业渗透,实质是传统行业需要互联网。互联网是技术平台、底层架构,它源于安全需求,却在经济领域大放异彩。传统经济正向网络经济转轨,这-有机联系的经济使各行各业均需连接, 因此以互联网为代表的联接型

2020-06-22 18:12:37 62323 3

原创 百度墨斗鱼文库创作中心上传验证码分析

之前发表过一篇,百度墨斗鱼后台上传文章分析的文章。时隔几个月,文件预览接口加了asc-token 和 验证码(百度v2)。闲来没事分析一下。所有的分析都基于协议,不基于web自动化。验证码目前有四种,验证码刷新重新加载可以互相切换,所以只要搞定其中一种或者多种即可,这四种目前都能搞定,验证通过之后通过回调设置成功标识,每次上传携带成功标识即可,不用每次都验证。需要注意的是log 接口参数 fuid 是一个获取浏览器指纹的(这块处理一下比较安全),fs是传入加密后的验证结果的。

2024-05-24 23:23:47 516

原创 浏览器指纹的介绍及应用

在网站上浏览某个商品,了解了相关的商品信息,但并没有下单购买,甚至没有进行登录操作。过两天用同台电脑访问其他网站的时候却发现很多同类商品的广告。在某博客中你有多个小号(水军),这些小号的存在就是为了刷某个帖子的热度或者进行舆论引导,又或者纯粹进行流量交易,即便你在切换账号的时候清空了cookie、本地缓存,重开路由器甚至使用vpn来进行操作,你觉得自己足够小心,并尽可能提高水军的真实性,但是管理人员可能还是知道这是同一个人在操作,从而被打击。

2023-12-06 16:18:29 1443

原创 数据仓库入门简介

(英语:Data Warehouse,简称数仓、DW)是一个为数据分析而设计的企业级数据管理系统。它旨在支持企业决策过程中的数据分析和业务智能。数据仓库的基本原理是将不同来源的数据整合到一个中心存储库中,以提供一致的数据视图和易于理解的分析结果。通过提供这些服务,数据仓库可以帮助企业更好地理解业务、预测趋势、制定战略,并提升企业的决策水平和竞争力。数据仓库可以通过多种方式进行建模,其中最常用的是。

2023-11-14 08:21:13 1490

原创 ChatGpt 反向代理

看了看网上的文章,实现接口国内访问的方法有很多。1,自己买国外服务器这种成本比较高,因为单纯的就是用个接口,专门买个服务器还是比较奢侈的。2,自己挂代理这种的使用的代理干净与否都不知道,并且有封号的风险。3,用中转key这种的需要买别人的key,背后都是一些普通5美元key组合成,这种一分钟只能请求三次,使用多账轮询,来达到生产可用的效果。4,使用别人的中转链接。

2023-10-14 10:25:05 2361

原创 Claude2 Api接入方案(现在官方提供api了)

接入钉钉机器人支持群聊和私聊网上看了很多方案,因为Claude的api申请难度非常大,大部分都是说使用Slack,但是Slack只能免费使用一个月。作为一个完美主义怎么可能允许这样的事情发生。何如处理,抓网页。只能美,英,魔法这些都是入门小菜,这里不再赘述。自行解决。

2023-08-14 19:26:41 3650 9

原创 ChatGpt提示词大全

行为提示词Linux终端我希望你能充当一个linux终端。我将输入命令,你会回复终端应该显示什么。我想让你只回复在一个唯一的代码块内的终端输出,而没有别的。不要写一些解释。不要键入命令,除非我指示你这样做。当我需要用英语告诉你一些东西时,我会把文本放在大括号内{就像这样}。我的第一个命令是pwd英语翻译和即兴创作我希望你能担任英语翻译,拼写更正者和改进者。我将用任何语言与你交谈,你将发现该语言,翻译它,并以我的文本的修正和改进版本的英语回答。我想让你把我简化的A0级单词和句子换成更漂亮、更优雅的高级英语单词

2023-08-12 16:09:38 17273 1

原创 版本号规范 语义化版本 Semver Version 2.0.0

主版本号:当你做了不兼容的 API 修改,次版本号:当你做了向下兼容的功能性新增,修订号:当你做了向下兼容的问题修正。先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的包越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。在依赖高的系统中发布新版本包可能很快会成为噩梦。如果依赖关系过高,可能面临版本控制被锁死的风险(必须对每一个依赖包改版才能完成某次升级)。

2023-07-31 10:05:50 460

原创 百度墨斗鱼文库创作中心源码分析

公司解散,待业中,耗时一天研究了一下百度墨斗鱼文库创作中心源码。实现了后台自动完成任务并通知。下面主要分析一下实现思路和难点。

2023-07-12 18:47:45 1718 3

原创 Mysql常见的集群方案

1、是官方提供的主从同步方案,用于将一个 MySQL 的实例同步到另一个实例中,在主从复制中,从库利用主库上的 binlog 进行重播,实现主从同步,默认是异步同步,针对其在不同场景下的一些缺陷,衍生出了半同步复制,强同步复制等数据高可用的方案;2、组复制又称为 MGR,引入复制组主要是为了解决传统异步复制和半同步复制可能产生数据不一致的问题, MGR 由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点 (N / 2 + 1) 决议并通过,才能得以提交;3、

2023-07-10 11:22:38 9336 1

原创 Springcloud之Feign、Hystrix、Ribbon如何设置超时时间

我们在微服务调用服务的时候,会使用hystrix、feign和ribbon,比如有一个实例发生了故障而该情况还没有被服务治理机制及时的发现和摘除,这时候客户端访问该节点的时候自然会失败。所以,为了构建更为健壮的应用系统,我们希望当请求失败的时候能够有一定策略的重试机制,而不是直接返回失败。这里还会设计一些其他的配置参数,降级和熔断的概念不再赘述。先看这几个组件的关系hystrix在最外层,然后再到Ribbon,最后里面的是http请求。所以说。

2023-06-12 10:17:27 4205

转载 Java内存模型与线程规范详解(JMM)

顺序一致性内存模型是一个理论参考模型,JMM 和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照。JMM 和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照顺序一致性模型来实现处理器和 JMM,那么很多的处理器和编译器优化都要被禁止,这对执行性能将会有很大的影响。放松程序中写 - 读操作的顺序,由此产生了 total store ordering 内存模型(简称为 TSO)。

2023-06-05 22:38:12 422

原创 一文搞懂位运算

接下来我们主要介绍十进制数用二进制表示的不同方法,所以为了简洁,我们用一个字节,也就是8个bit来表示二进制数。十进制原码20000 0010-21000 0010原码其实是最容易理解的,只不过需要利用二进制中的第一位来表示符号位,0表示正数,1表示负数,所以可以看到,一个数字用二进制原码表示的话,取值范围是-111 1111 ~ +111 1111,换成十进制就是-127 ~ 127。

2023-06-05 17:22:08 718

原创 MySql MVCC 详解

MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创建多个版本的同一数据,每个版本与一个事务关联,来实现并发控制。数据库在执行更新操作时,会保留之前版本的数据,以便其他正在执行事务的用户可以访问这些数据。每个事务都能看到一个稳定的数据快照,并且仅接触到他们自己的版本,这意味着每个事务可以独立地读取和写入数据,而不会干扰其它事务。

2023-05-27 14:22:40 6773 1

原创 SpringBoot启动过程源码解析

否则,应用类型为WebApplicationType.SERVLET。

2023-05-19 11:13:20 1191

原创 SpringBoot自动配置底层源码解析

SpringBoot中众多的条件注解,都是基于Spring中的@Conditional来实现的,所以我们先来用一下@Conditional注解。先来看下@Conditional注解的定义/***/Class

2023-05-19 10:24:54 944

原创 SpringMVC中的转发和重定向参数传递

model不是同一个,是不共享的,这也能体现出来model和request的区别了,每个Controller中的方法都会对应的一个Model。把要传递的参数存入outputFlashMap,在b请求里通过inputFlashMap就可以拿到了,底层是基于session来实现的。以上代码访问/a后,就会重定向到/b,但是由于是两个单独的请求(这两个请求都是由浏览器发出的,所以浏览器上的地址会变成/b)。转发就比较简单了,因为一直时同一个请求,所以数据本身就是共享的。

2023-05-18 10:30:24 946

原创 Java 并发队列详解

对head的更新也是同样的道理,虽然,这样设计会多出在循环中定位队尾节点,但总体来说读的操作效率要远远高于写的性能,因此,多出来的在循环中定位尾节点的操作的性能损耗相对而言是很小的。ConcurrentLinkedQueue通过无锁来做到了更高的并发量,是个高性能的队列,但是使用场景相对不如阻塞队列常见,毕竟取数据也要不停的去循环,不如阻塞的逻辑好设计,但是在并发量特别大的情况下,是个不错的选择,性能上好很多,而且这个队列的设计也是特别费力,尤其的使用的改良算法和对哨兵的处理。也就是说,它是有限的。

2023-05-16 11:19:00 1537

原创 Hystrix参数详解

若rolling window被设为10000毫秒,则rolling window会被分成n个buckets,每个bucket包含success,failure,timeout,rejection的次数的统计信息。如果设为20,那么当一个rolling window的时间内(比如说1个rolling window是10秒)收到19个请求,即使19个请求都失败,也不会触发circuit break。错误比率阀值,如果错误率>=该值,circuit会被打开,并短路所有请求触发fallback。

2023-05-12 17:18:52 884

原创 7种常见的生产级负载均衡算法

准备测试数据。

2023-05-10 14:50:42 699

原创 常用的数据中心部署架构

那么我们上面考虑的应用是一个非常简单的只读应用,所以各个地方的应用是可以同时对外提供服务的,那么如果我们的应用涉及到数据存储,这个时候各个地方的应用就不能同时对外提供写入数据的服务了,因为很有可能会出现数据冲突,那么我们暂且规定只有公司内部机房里的服务器(后文我们叫主机房)可以提供写数据服务,而同城的另外一个机房以及异地的另外一个机房只能从主机房同步数据,这样这两个地方的机房的功能就叫灾备,因为数据会同步,所以就算主机房停电了,另外两个机房还是可以临时来对外提供服务的。说起数据中心,相信大家并不陌生。

2023-05-09 11:43:38 1547

原创 SpringMVC底层原理源码解析

因为这三个接收的直接就是Requeset对象,不用SpringMVC做额外的解析,所以比较简单,比较复杂的是RequestMappingHandlerAdapter,它执行的是加了@RequestMapping的方法,而这种方法的写法可以是多种多样,SpringMVC需要根据方法的定义去解析Request对象,从请求中获取出对应的数据然后传递给方法,并执行。RouterFunctionMapping的寻找流程会有些区别,但是大体是差不多的,相当于是一个path对应一个HandlerFunction。

2023-05-06 18:25:52 2179

原创 Spring aop 详解

Spring aop 是Spring核心组件之一,通过aop可以简化编程。Spring Aop核心架构是基于代理模式,spring中提供了两种代理模式的创建。一是使用ProxyFactory纯程序方法创建AOP代理另一种就是通过使用借助于@Aspect注解或者xml进行声明式创建代理,Spring底层可以使用两种代理方法即JDK动态代理、CGLIB动态代理。默认情况下当被通知的目标实现了接口时,Spring将会采用JDK动态代理,若目标对象没有实现任何接口将会采用CGLIB动态代理。

2023-05-06 15:00:36 948

原创 接口异步调用优化

在日常项目中,我们经常采用多线程异步调用的方式来提高接口的响应时间。在实际情况下,我们如何通过异步方式优化我们的接口呢,有以下几种常见思路。

2023-05-04 15:06:11 675

原创 零拷贝(Zero-Copy)

例如消息中间件 Kafka 就是这个应用场景,从磁盘中读取一批消息后原封不动地写入网卡(NIC,Network interface controller)进行发送。

2023-04-27 17:11:28 907

原创 Linux/Unix常见IO模型

应用进程向内核发起 I/O 请求后不再会同步等待结果,而是会立即返回,通过轮询的方式获取请求结果。NIO 相比 BIO 虽然大幅提升了性能,但是轮询过程中大量的系统调用导致上下文切换开销很大。所以,单独使用非阻塞 I/O 时效率并不高,而且随着并发量的提升,非阻塞 I/O 会存在严重的性能浪费。

2023-04-27 16:08:44 804

原创 JVM 调优

一,JVM参数大部分的情况都是由于企业内部代码逻辑不合理导致。JVM内部性能优化栈上分配方法内联JVM的自适应调整JVM改错大并发内存不足OOM 内存泄漏GC频繁CPU飙升JVM的调优的原则是让你各项指标尽可能的利用到你硬件的性能瓶颈。JVM的性能优化可以分为代码层面和非代码层面。在代码层面,大家可以结合字节码指令进行优化,比如一个循环语句,可以将循环不相关的代码提 取到循环体之外,这样在字节码层面就不需要重复执行这些代码了。

2023-04-26 13:11:39 679

原创 JVM 垃圾收集器

Parallel Scavenge收集器是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器看上去和ParNew一样,但是Parallel Scanvenge更关注系统的。由于整个过程中,并发标记和并发清除,收集器线程可以与用户线程一起工作,所以总体上来说, CMS收集器的内存回收过程是与用户线程一起并发地执行的。它是一种单线程收集器,不仅仅意味着它只会使用一个CPU或者一条收集线程去完成垃圾收集工作,更重要的是其在进行垃圾收集的时候需要暂停其他线程。

2023-04-25 15:53:28 501

原创 JVM 垃圾回收算法

之前说堆内存中有垃圾回收,比如Young区的Minor GC,Old区的Major GC,Young区和Old区 的Full GC。但是对于一个对象而言,怎么确定它是垃圾?对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任 何指针对其引用,它就是垃圾。标记-清除算法分为“标记”和“清除”两个阶段,首先通过可达性分析,标记出所有需要回收的对象,然后统一回收所有被标记的对象。们很难进行排查和解决,自动垃圾回收机制就是寻找Java堆中的对象,并对对象进行分类判别,

2023-04-25 15:19:23 589 3

原创 JVM 关键点详解

JVM包含两个子系统和两个组件,两个子系统为Class loader(类装载)、Execution engine(执行引擎);两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。Class loader(类装载): 根据给定的全限定名类名(如: java.lang.Object)来装载class文件到Runtime data area中的method area。Execution engine (执行引擎) : 执行classes中的指令。

2023-04-23 17:27:56 510

原创 Spring 循环依赖处理之三级缓存设计

如上图,创建A之前需要先创建B,创建B之前需要先创建A,造成循环依赖。由于A没创建完成,所以B再创建的时候再容器中获取不到A对象。如何解决这个问题呢?我们把创建中的对象叫半成品,创建完了的叫成本。处于半成品状态的对象能否直接使用?不能使用。如果此时并不是暴露给外部使用,而是内部程序的调用呢?当需要暴露给外部调用的时候,如果完成了赋值操作就不会有问题了。如果你持有了某一个对象的引用,能否在后续步骤的时候进行赋值操作?可以。本质是半成品状态的对象可以在中间过程中使用,实例化和初始化分开执行。

2023-04-21 14:02:39 680

转载 快照版本SNAPSHOT和发布版本RELEASE区别

RELEASE版本和SNAPSHOT是相对的,⾮SANPSHOT版本即RELEASE版本,RELEASE版本是⼀个稳定的版本号,看清楚咯,是⼀个,不是⼀系列,可以认为RELEASE版本是不可变化的,⼀旦发布,即永远不会变化。虽然RELEASE版本是稳定不变的,但是仓库还是有策略让这个原则变得可配置,有的仓库会配置成redeploy覆盖,这样RELEASE版本就变成SNAPSHOT了,伪装成RELEASE的SNAPSHOT,会让问题更费解和棘⼿,我⼀般称这类⼈为“挖坑专家”。

2023-02-24 11:27:08 2601

原创 Spring Security 0auth2 认证服务器和资源服务器实现

【代码】Spring Security 0auth2 认证服务器和资源服务器实现。

2023-02-07 22:49:43 2207 1

原创 InnoDB 存储引擎中的行锁的加锁规则

再来看语句查询条件的后半部分 id < 22,由于是范围查找,就会继续往后找第一个不满足条件的记录,也就是会找到 id = 25 这一行停下来,然后加 Next-key Lock (20, 25],重点来了,但由于 id = 25 不满足 id < 22,因此会退化成间隙锁,加锁范围变为 (20, 25)。又因为是非唯一索引等值查询,且查询的记录 a= 16 是存在的,所以还会加上间隙锁,规则是向下遍历到第一个不符合条件的值才能停止,因此间隙锁的范围是 (16,32)

2023-02-01 09:42:06 624

原创 Feign报错Method Not Allowed 405 5种解决方案

这段代码是在 HttpURLConnection 中发现的,jdk原生的http连接请求工具类,原来是因为Feign默认使用的连接工具实现类,所以里面发现只要你有body体对象,就会强制的把get请求转换成POST请求。Feign发送Get请求时,采用POJO传递参数 Method Not Allowed 405。默认的是jdk的,可以修改为okhttp 或者 httpclent。使用@Validated验证的时候不支持了,需要手动调用校验方法。

2023-01-16 14:01:56 8388

原创 Java 树构建优化

最近项目里面用到了一些大数量的树形结构。用了hutool的树构建工具,一万多条数据构建了10多秒。故重写了构建算法,提升到一秒内。

2023-01-05 14:51:18 1142 1

原创 Spring Security 实现 antMatchers 配置路径的动态获取

2,实现 SecurityConfigAttributeLoader (这里也可以从数据库获取)

2022-12-26 15:16:55 2496

原创 Spring 常用的一些事件

在spring容器初始化前,会通过SpringApplicationRunListener触发ApplicationStartedEvent事件,在容器实例化完成后触发ApplicationReadyEvent事件。SpringApplication 通过SpringFactoriesLoader从META-INF/spring.factories资源中加载其实现类EventPublishingRunListener。启动事件(按先后顺序)ApplicationStartingEvent这个事件在 Spri

2022-12-17 10:52:49 1650

原创 mysql监控参数整理

对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色;缓存池使用率为:((Innodb_buffer_pool_pages_total-Innodb_buffer_pool_pages_free)/Innodb_buffer_pool_pages_total)*100%查看 mysql 开关是否打开:show variables like 'slow_query_log',ON 为开启状态,如果为 OFF,set global slow_query_log=1 进行开启。

2022-11-19 14:29:29 341 4

原创 单点登录以及实现(前后端分离和前后端不分离方式)

本文主要使用springSecurity来实现,其他实现请参照其原理自行研究。一,单系统登录机制1、http无状态协议web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系但这也同时意味着,任何用户都能通过浏览器访问服务器...

2022-11-19 13:31:13 2754 1

浏览器指纹以及应用介绍

https://nanshihui.github.io/public/crossbrowsertracking_NDSS17.pdf 翻译版

2023-12-06

JSR133中文版,JSR133中文版

JSR133中文版

2023-06-05

kube-flannel.yml

kube-flannel.yml kube-flannel.yml kube-flannel.yml 最新版

2021-06-06

logback-demo.rar

logback-demo

2019-10-05

redis-3.2.1.zip

redis-3.2.1.gem

2019-08-05

oracle-xe-11.2.0-1.0.x86_64.rpm.zip

oracle-xe-11.2.0-1.0.x86_64.rpm

2019-07-02

spring mvc详解

spring mvc详解

2019-03-17

全文搜索技术solr Demo

全文搜索技术solr Demo

2019-03-17

全文搜索技术Lucene Demo

全文搜索技术Lucene Demo, https://blog.csdn.net/echizao1839/article/details/88614886

2019-03-17

idea maven聚合项目 spring-boot 整合 dubbo

最新dubbo入门demo,

2018-11-27

exe ,全自动注册删除,服务

exe ,全自动注册删除,服务

2018-09-07

JBox最新演示Demo

JBox最新演示Demo,

2018-09-03

空空如也

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

TA关注的人

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