自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

itwxming的博客

互联网的好处是总有文明的道路可以走,如果在产品、技术、管理上挖掘潜力的话,可以不作恶而通向成功的道路。(布局自己的技术体系,不要被公司需求牵着走!)

  • 博客(170)
  • 收藏
  • 关注

原创 Python-AI入门

官方没有支持python3新版本的PIL库的话,用pillow替代。pillow是一个PIL库的分支,他提供了更多图像格式的支持,并且与Python3兼容。安装之后代码照样用PIL写法就行。Python Imaging Library(PIL)是一个强大的图像处理库,可以在Python中进行图像操作和处理。要求Python3版本。查看安装成功的pip列表(有些是自动安装的):pip3 list。如果已经安装了pip,但是pip命令不识别,那就用pip3。安装百度aip模块:名字不一致。

2023-12-21 11:08:13 525

原创 并发相关知识点整理

Java内存模型内存交互操作:如果要把一个变量从主内存中复制到工作内存中,就需要按顺序地执行read和load操作,如果把变量从工作内存中同步到主内存中,就需要按顺序地执行store和write操作。但Java内存模型只要求上述操作必须按顺序执行,而没有保证必须是连续执行。(read和load,以及store和write是成对执行的,其中一个执行了另一个就会立马执行。

2023-04-11 19:05:12 438

原创 MySQL索引底层数据结构算法、优化以及锁与事务整理

1、MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index 效率高,filesort效率低。2、order by满足两种情况会使用Using index。1) order by语句使用索引最左前列。2) 使用where子句与order by子句条件列组合满足索引最左前列。3、尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。4、如果order by的条件不在索引列上,就会产生Using filesort。

2023-03-15 17:24:23 646

原创 JVM垃圾回收调优知识点整理

不是FullGC,老年代的堆占有率达到参数(-XX:InitiatingHeapOccupancyPercen)设定的值则触发(大对象没有连续空间也会触发),回收所有的Young和部分Old(根据期望的GC停顿时间确定old区垃圾收集的优先顺序)以及大对象区,正常情况G1的垃圾收集是先做MixedGC,主要使用复制算法,需要把各个region中存活的对象拷贝到别的region里去,拷贝过程中如果发现没有足够的空region能够承载拷贝对象就会触发一次Full GC。(空间利用率不高,留有一半复制。

2023-03-10 20:53:51 1319

原创 加强版ThreadLocal之阿里开源TransmittableThreadLocal学习

我们都知道ThreadLocal是可以在一个线程中当容器使用的局部变量,是线程隔离、线程安全的。但是如果子线程要获取父线程的变量,便不太方便。下面我们一步一步进入:一、ThreadLocal示例:public class MyThread01 { public static void main(String[] args) throws InterruptedException { ThreadLocal<String> parent = new

2021-08-13 15:19:43 2407

原创 记一次软引用SoftReference做缓存的漏洞修复及验证

框架底层的Excel导入组件实现中使用SoftReference软引用做缓存,将Excel导入对应类的字段等注解配置信息做了缓存。开发测试都没问题,但是程序部署时间长了导入功能就用不了报错。排查定位到为该缓存失效导致的。原代码:public final class BeanUtils { /** * 申明软引用以便内存溢出的时候回收. */ private SoftReference<Map<Class<?>, Map<Stri

2020-12-24 14:12:04 368 2

原创 Netty02——核心功能与线程模型精练

一、Netty初探 NIO 的类库和 API 繁杂, 使用麻烦: 需要熟练掌握Selector、 ServerSocketChannel、 SocketChannel、 ByteBuffer等。 开发工作量和难度都非常大: 例如客户端面临断连重连、 网络闪断、心跳处理、半包读写、 网络拥塞和异常流的处理等等。 Netty 对 JDK 自带的 NIO 的 API 进行了良好的封装,解决了上述问题。且Netty拥有高性能、 吞吐量更高,延迟更低,减少资源消耗,最小化不必要的内存复制等优点。 .

2020-09-24 13:35:29 310

原创 Netty——BIO,NIO,AIO精讲

一、总结:1、BIO(Blocking IO)同步阻塞模型,一个客户端连接对应一个处理线程。应用场景:BIO 方式适用于连接数目比较小且固定的架构, 这种方式对服务器资源要求比较高, 但程序简单易理解。2、NIO(Non Blocking IO)同步非阻塞,服务器实现模式为一个线程可以处理多个请求(连接),客户端发送的连接请求都会注册到多路复用器selector上,多路复用器轮询到连接有IO请求就进行处理。应用场景:NIO方式适用于连接数目多且连接比较短(轻操作)...

2020-09-21 11:34:14 241 1

原创 长连接与短连接——JDK的HttpClient、ApacheHttpClient及OkHttpClient类比——Feign产品优化

O、长连接与短链接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次挥手,所以说每个连接的建立都是需要资源消耗和时间消耗的。长连接:所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接,一般需要自己做在线维持。维持长连接耗资源,所以用户量多了很可能把服务器资源耗尽,所...

2020-09-04 11:12:11 3295 3

原创 并发编程02——synchronized&Lock&AQS详解

一、并发同步器-设计同步器的意义多线程编程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。共享:资源可以由多个线程同时访问。可变:资源可以在其生命周期内被修改。引出的问题: 由于线程执行的过程是不可控的,所以需要采用同步机制来协同对 对象可变状态的访问。那么我们怎么解决线程并发安全问题? 实际上,所有的并发模式在解决线程安全问题时,采用的方案都是序列化访问临界资源。即在同一时刻,只能有一个线程访...

2020-05-26 18:31:59 394

原创 并发编程01-JMM&volatile详解

内容大纲 1、现代计算机理论模型与工作原理 2、什么是线程 3、为什么用到并发,并发的优缺点 4、JMM模型 5、volatile关键字 一、现代计算机理论模型与工作方式 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存 储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去。接下 来,再取出第二条指令,在控制器的指挥下完成规定操作。依此...

2020-05-13 19:41:02 342

原创 tl-微服务专题02-2-springboot自动装配原理详解

springboot自动装配原理详解1)传统ssm整合redis的时候 需要在xml的配置文件中 进行大量的配置Bean 我们在这里使用springboot来代替ssm的整合,只是通过xml的形式来整合redis第一步:加入配置<dependency> <groupId>org.springframework.data</gr...

2020-04-20 11:14:32 214

原创 携程apollo配置中心使用

携程apollo配置中心搭建:https://blog.csdn.net/itwxming/article/details/104776170

2020-03-17 19:08:54 1524

原创 tl-微服务专题01-Spring Boot快速开始及核心功能介绍

目录第一节:springboot快速开始(对三篇)一:springboot 微服务开发利器1.1)什么是微服务,微服务和微服务架构的区别?1.2)什么是微服务架构​1.3微服务的优缺点:二:springboot快速开始2.1)(基于maven版本构建)2.1)配置IDE的环境(maven配置)2.2)创建一个空的maven工程,然后导入springboot...

2020-03-09 01:03:45 377

原创 tl-微服务专题10-hystrix实现自定义接口降级、监控、源码分析

方式

2020-02-15 03:56:44 148

原创 tl-微服务专题09-Hystrix介绍及服务限流、降级、熔断机制详解

直接通过RestTemplate调用远程服务时设置超时@Configurationpublic class MainConfig { @Bean public RestTemplate restTemplate() { //设置restTemplate的超时时间 SimpleClientHttpRequestFactory re...

2020-02-14 21:13:59 206

原创 tl-微服务专题08-Ribbon&Feign源码深入分析

RibbonAutoConfiguration类的部分代码如下:@Configuration@ConditionalOnClass({ IClient.class, RestTemplate.class, AsyncRestTemplate.class, Ribbon.class})@RibbonClients@AutoConfigureAfter(name...

2020-02-12 01:15:07 296

原创 tl-微服务专题07-Ribbon&Feign介绍及使用详解

目录一、负载均衡1.1、服务端负载均衡1.2、客户端负载均衡二、Ribbon使用2.1、使用Eureka时集成Ribbon2.1.1、搭建启动eureka注册中心2.1.2、把Ribbon集成到消费端consumer:2.1.3、搭建服务提供者provider:2.2、Ribbon核心知识点2.2.1、Ribbon所包含的负载均衡策略分类2.2.2、如何...

2019-12-27 14:44:39 513

原创 xxl-job学习笔记

目录一、路由策略:(相当于执行器集群部署下的负载均衡)二、调度中心集群部署如何保证一次任务调度被消费一次三、系统远程调用思想四、代码在线编辑,动态执行。1、多种类型代码在线编辑:2、后端动态执行:五、使用注意点:一、路由策略:(相当于执行器集群部署下的负载均衡)执行器集群部署时,几点要求和建议:- 执行器回调地址(xxl.job.admin.addres...

2019-12-23 15:33:52 1051

原创 Eureka服务监督(客户端缓存刷新、心跳监测)定时任务亮点——自动调节间隔的周期性任务

TimedSupervisorTask类(自动调节间隔的周期性任务)Eureka中客户端缓存刷新、心跳监测,调远程服务端接口操作的定时任务,调远程网络不确定性导致定时任务执行不确定性,Eureka设计了一个自动调节间隔的周期性任务!!!通过一个线程类的run方法的finally中再次调用该线程实现。1、该定时任务的启动代码:DiscoveryClient类里的initSchedule...

2019-12-04 15:59:50 1203

原创 Eureka多级缓存机制亮点(待整理)

读写互斥,加锁影响效率。Eureka最终一致性,高可用。对外接口resource类中接口防御性编程,对入参优先做校验。解决频繁的读写:读写分离注册方法写的时候直接写内存注册表,写完表之后主动失效读写缓存。获取注册信息接口先从只读缓存取,只读缓存没有再去读写缓存取,读写缓存没有再去内存注册表里取(不只是取,此处较复杂)。并且,读写缓存会更新回写只读缓存,同步。更新缓存:只读缓...

2019-12-02 01:05:06 1814 4

原创 springcloud ribbon的负载均衡注解 @LoadBalanced的实现原理(@Qulifier注解的使用)

@ConfigurationpublicclassMainConfig{@Bean@LoadBalancedpublicRestTemplaterestTemplate(){returnnewRestTemplate();}}如上,在使用springcloud ribbon的rest服务客户...

2019-10-31 11:48:35 1347

原创 tl-微服务专题04-微服务介绍 及Eureka服务注册与发现详解

微服务介绍及Eureka服务注册与发现详解目录一、微服务概述1、微服务是什么?2、微服务架构是什么?3、微服务的优缺点4、CAP理论为啥CAP 只能三选二5:springcloud微服务技术栈有哪些技术二、eureka应用入门1、没有使用注册中心搭建的分布式应用2、服务发现原理初探3、Eureka入门4、Eureka 部署架构5、eur...

2019-10-25 11:59:50 709 4

转载 JWT RSA无状态鉴权基本原理与使用(token入门)

前后端交互时不能只将用户信息封装进JWT中,否则token被人截获可以冒用。应该将所有的动态参数也封装进token里去,使之变成动态token,并解析比对token里的参数和获取到的参数的一致性。防止token有效,但参数被篡改!!!(相对彻底解决token被劫持,一个比较简单的解决思路:关于测试报告中第一个垂直越权漏洞,并不是完全像测试报告说的那样。首先,1、api/passwordchec...

2019-09-17 10:45:02 1067 2

原创 事件Event监听相关——spring的事件监听相关

应用场景:事件驱动模型简介事件驱动模型也就是我们常说的观察者,或者发布-订阅模型。理解它的几个关键点:1、首先是对象间的一对多的关系;最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方);2、当目标发送改变(发布),观察者(订阅者)就可以接收到改变;3、观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的),目标无需干涉;所以就松散耦合了它们之间的关系...

2019-08-30 19:37:38 349

原创 Redis常用命令——远程连接、清理缓存

本地redis黑窗口连接远程Redis:命令行登录redis:在redis文件夹路径输入cmd进入该目录下。再输入命令即可。redis-cli -h 192.168.254.129 -p 6379============================命令行赋值取值================================================...

2019-04-18 13:31:53 8100

原创 StarRocks入门部署

StarRocks 是一款高性能分析型数据仓库。广泛应用于实时数仓、OLAP 报表、数据湖分析等场景。

2023-08-11 18:31:50 1560

原创 苹果Mac像Windows一样使用

1.1、点击任务栏第一个按钮打开“访达”,点击菜单栏上的访达-偏好设置:1.2、勾选“硬盘”,这样macOS的桌面上就会显示一个本地磁盘,之后重命名为磁盘根,相当于windows中的“此电脑”。

2023-08-10 18:29:17 1271

原创 RocketMQ整理

RocketMQ在阿里云上的商业版本,集成了阿里内部一些更深层次的功能及运维定制。开源版本,功能上略有缺失,但大体上是一样的。使用Java开发,便于深度定制。最早叫MetaQ。消息吞吐量虽然依然不如Kafka,但是却比RabbitMQ高很多。在阿里内部,RocketMQ集群每天处理的请求数超过5万亿次,支持的核心应用超过3000个。经过阿里双十一多次考验。RocketMQ天生就为金融互联网而生,因此他的。

2023-05-16 22:03:35 463 1

原创 spring解决循环依赖的三级缓存

并不是每个 bean 都需要进行这样的处理,所以, Spring 没有直接在 createBeanInstance 之后直接生成 bean 的早期引用,而是将 bean 的原始对象包装成了一个 ObjectFactory 放到了三级缓存singletonFactories。2、看对应的 Bean 是否在创建中,如果不在直接返回找不到,如果是,则会去 earlySingletonObjects (二级缓存)查找 Bean,如果找到则返回,否则进行步骤 3。如果Bean存在AOP的话,返回的是。

2023-05-02 19:35:54 1502

原创 RabbitMq、Kafka、RocketMq整理

MQ的主要作用:异步提高性能、解耦提高扩展性、削峰。

2023-05-02 03:02:03 1763

原创 Redis相关整理

因为它所有的数据都在内存中,所有的运算都是,而且单线程性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些耗时的指令(比如 keys),一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。

2023-04-26 16:12:59 405

原创 了解ChatGPT

拥抱未来

2023-03-20 21:10:01 186

原创 Python报错ModuleNotFoundError: No module named ‘psutil‘

Python报错ModuleNotFoundError: No module named ‘psutil‘

2023-03-17 21:14:00 4751

原创 系统学习ElasticSearch

系统学习Elasticsearch

2023-01-05 17:22:37 413

原创 Python的import 与 from...import

在 python 用 import 或者 from...import 来导入相应的模块。将整个模块(somemodule)导入,格式为: import somemodule从某个模块中导入某个函数,格式为: from somemodule import somefunction从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc将某个模块中的全部函数导入,格式为: from somemodule import *区

2022-06-23 17:31:56 726

原创 Python基础语法学习

Python基础语法学习笔记

2022-06-23 17:26:20 311

原创 JVM-01-VIP-类加载机制深度剖析

详见印象笔记1、类加载过程多个java文件经过编译打包生成可运行jar包,最终由java命令运行某个主类的main函数启动程序,这里首先需要通过类加载器把主类加载到JVM。主类在运行过程中如果使用到其它类,会逐步加载这些类。注意,jar包里的类不是一次性全部加载的,是使用到时才加载。(自己写的是用到时才加载。但是jdk底层的那些object类所在的jar包是直接全部加载的。)B b = null;B这个类是不会被加载的,因为这不算用到,用到时指被New了,或者main方法等。若.

2021-08-18 10:48:04 169

原创 记录springboot架构下The valid characters are defined in RFC 7230 and RFC 3986问题排查解决

将多个springcloud项目整合成一个单体的springboot工程,前端也换了架构,由于前端新架构没有将所有特殊字符比方[]中括号进行转义,开发整合过程中偶尔出现带中括号参数的请求报错400的问题,请求未到程序代码,后端Tomcat里就报错:The valid characters are defined in RFC 7230 and RFC 3986问题报错日志:09-Apr-2019 14:55:11.427 信息 [http-nio-8089-exec-8] org.apache

2021-05-14 17:02:17 2536 2

原创 离线安装MySQL缺少libaio.so.1文件——并离线安装libaio.so.1

离线安装MySQL初始化数据时报错:error while loading shared libraries: libaio.so.1这是因为服务器缺少libaio.so.1文件解决方法:1,安装mysql之前检查下libaio.so.1的位置# whereis libaio.so.1libaio.so: /usr/lib64/libaio.so.12,如果执行了whereis libaio.so.1,没有找到该文件,就要手动安装下libaioyum install

2020-10-22 14:56:36 25229 7

空空如也

空空如也

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

TA关注的人

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