自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kafka学习笔记 @by_TWJ

消息重复消费的问题可以通过多种方法解决,主要包括消费幂等性、消息去重、消息确认机制、消息重试机制、保证消息的顺序性以及将消息进行持久化存储。kafka消息事务

2024-06-03 14:02:44 1337 1

原创 redis 高可用及哨兵模式 @by_TWJ

图文的方式让我们读懂这几个算法 Raft算法 vs Paxos算法 , redis 哨兵模式,redis 高可用

2024-05-31 18:03:44 1273

原创 使用Minikube+docker+harbor+k8s自动化部署 @by_TWJ

Minikube安装k8s/Kubernetes

2024-05-30 21:01:27 1477 2

原创 java本地锁与分布式锁-个人笔记 @by_TWJ

在 Java 6 及之前的版本中,synchronized 的锁升级过程是固定的,而在 Java 6 及之后的版本中,锁升级过程是根据当前锁的状态和竞争情况动态调整的。:当一个线程访问同步块并获取锁时,会在对象头中记录锁偏向的线程 ID,以后该线程再次进入同步块时,只需判断当前线程 ID 是否与对象头中记录的线程 ID 相同,如果相同,就可以直接进入同步块,无需进行额外的同步操作。在 Java 6 及之前的版本中,锁升级过程是固定的,即从偏向锁升级到轻量级锁,再升级到重量级锁。

2024-05-07 20:00:13 610

原创 个人对行为型设计模式的理解 @by_TWJ

责任链模式中介者模式命令模式策略模式解释器模式状态模式备忘录模式迭代器模式模板模式访问者模式观察者模式。

2024-04-30 21:47:58 993

原创 SpringBoot中Bean的创建过程及扩展操作点 @by_TWJ

这里只记录springboot的扩展点,方便以后做扩展。

2024-04-21 20:22:17 888

原创 分布式事务 - 个人笔记 @by_TWJ

这是对分布式事务的一个整合。用于学习分布式事务。里面包含了一些个人笔记。

2024-04-08 23:00:00 1068

原创 Netty 中的粘包和拆包 - @by_TWJ

Netty 中的粘包和拆包。解决办法,使用 LengthFieldBasedFrameDecoder、LineBasedFrameDecoder、FixedLengthFrameDecoder、DelimiterBasedFrameDecoder

2024-04-03 01:10:55 306

原创 springboot + spring security简单学习,目标是学习原理 @by_TWJ

springboot + spring security 类含义,类使用,认证原理分析。jwt示例

2024-03-31 20:02:10 1218 2

原创 CSRF攻击与XSS攻击,怎么防御 @by_TWJ

CSRF与XSS的区别,还有怎么防御。

2024-03-29 19:43:53 633

原创 session和jwt区别 @by_TWJ

基于session,用户信息存放在session里,在分布式下,是需要使用一个数据库(redis)存放共用的session信息的。,我觉得session会更优,因为我可以管理用户登录状态,我让他下线就下线。,我觉得jwt更优,这样jwt可以不用扩展搞redis,而且不用在服务端存放用户登录信息,减少了服务器使用内存,减少成本。jwt 存放在客户端本地,基于本地,但也可以存放在cookie等,可以自定义。基于jwt,因为用户信息都在jwtToken里,所以直接解析就能获取用户信息。jwt 有两个很关键的点,

2024-03-28 18:06:04 1663

原创 授权机制(OAuth2、JWT、Security)- @by_TWJ

授权机制(OAuth2、JWT、Security) / 认证

2024-03-13 15:18:35 1329

原创 Netty使用例子 - @by_TWJ

Tomcat将以JNI(Java Native Interface)的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大提高Tomcat对静态文件的处理性能。实际上tomcat也有基于NIO的优化,并且还有个APR模型,那我们何必用Netty替代tomcat呢。Netty 是一个异步事件驱动的网络应用框架,可以使用自定义协议,或者用已有的Http协议等。我们了解了Netty,他的性能更强,那么我们是否可以替代tomcat呢?构建Netty例子的包。

2024-03-07 19:57:29 833

原创 spring相关文档

它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。它结合了轻量级的容器和依赖注入功能,提供了一种使用 POJO 进行容器配置和面向切面的编程的简单方法,以及一组用于AOP的模块。Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

2024-03-05 14:43:45 368

原创 java8中文API

Java 8中文版 - API参考文档

2024-03-05 14:37:57 503

原创 Netty简单学习 - @by_TWJ

服务端程序处理传入多路请求,并将它们同步分派给请求对应的处理线程,Reactor模式也叫Dispatcher模式,即I/O多了复用统一监听事件,收到事件后分发(Dispatch给某进程),是编写高性能网络服务器的必备技术之一。这里并不是说AIO就是最好的,因为Netty在NIO的基础上做了些改进,例如Netty主从线程模型,使用subReader多线程去接收socket缓冲区数据,而且Netty是零拷贝,省略了内核空间地址和用户空间地址之间的数据copy,所以这里不做深究。

2024-03-01 17:58:02 1129

原创 java 强引用、弱引用、软引用、虚引用

网上的弱引用,书面化意思我看不懂,所以写了个简单的理解一下。

2024-02-20 20:46:20 376

原创 vue 使用组件模拟select框实现

涉及知识:1、vue父组件data改变怎么触发子组件prop的数值变化?答:我看了网上大多数都是手动强制刷新子组件的,但对每个子组件都要写一套强制刷新,感觉不太现实,可不可以简化点呢,后来终于找到方法,就是子组件使用watch监听父组件data改变,然后通知子组件重新渲染。2、 组件怎么使用v-model?答:v-model语法糖相当于@input="price = $event.target.value" :value="price"1):value 可以看出子组件pr.

2021-11-12 12:39:29 1493

原创 tomcat日志乱码问题、页面乱码问题等

一、默认解决方法无论Google还是百度,多数解决方法是server.xml设置URIEncoding=“UTF-8”。<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>二、接口乱码在catalina.bat 头部增加 -Dfile.encoding=UTF-8/bin/catalina.bat

2021-09-26 18:31:05 377

原创 Object转Class<T>

代码BigDecimalConvert.javaimport java.math.BigDecimal;public class BigDecimalConvert implements Convert<BigDecimal> { @Override public boolean support(Class<?> tClass) { return tClass == BigDecimal.class; } @.

2021-08-30 17:46:34 1792

原创 unicode转中文

/** * unicode转中文 */ private static String unicodeDecode(String string) { Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); Matcher matcher = pattern.matcher(string); char ch; while (matcher.f...

2021-08-30 17:26:56 145

原创 css 学习导航

目录模块1、CSS 初步1.1、什么是 CSS?1.2、CSS 入门1.3、如何构建CSS?1.4、CSS 如何工作1.5、用用你刚学到的知识2、构建 CSS 块2.1、层叠与继承2.2、CSS选择器2.3、盒模型2.4、背景与边框2.5、处理不同的文本方向2.6、溢出的内容2.7、值和单位2.8、在CSS中调整大小2.9、图片、媒体和表单元素2.10、样式化表格2.11、调试CSS2.12、组织CSS3、样式化文本.

2020-12-06 11:20:16 119

原创 视频/摄像头 截图旋转90度显示

// videoObj -- video Element对象// width 和 height 分别是摄像头的宽高function rotateBase64Img(videoObj,width,height) { let canvas2 = document.createElement("canvas"); let context = canvas2.getContext("2d"); canvas2.height = height; canvas2.width =

2020-05-15 14:36:36 832

原创 promise、async、generator 使用

promise使用简单使用 let f = ()=> new Promise((resolve, reject)=>{ if(true){ resolve("1") }else{ reject("2") } }) f.then(a=>{ console.log(a) // 1 }).catch(b=>{ console.lo

2020-05-09 16:53:07 171

原创 java 使用RandomAccessFile在文件内容前面添加内容,并且限制文件大小

package com.xxx.app;import com.xxx.app.common.util.ConfProperties;import java.io.*;/** * 文件内容前面添加内容,并且限制文件大小 */public class FileAppend { static String filepath = ConfProperties.getFilePa...

2020-03-13 10:16:06 488

原创 对象转Map

/** 对象转map */ public static Map<String, Object> covert(Object obj){ if(obj == null){ return Collections.emptyMap(); } Map<String, Object> map = ne...

2020-03-03 17:52:45 166

原创 WAV 转 PCM

public String WavToPcmFilePath(String wavFile){ try { byte[] buffer= new byte[1024]; //wav 和pcm的区别就是wav在pcm的前面多了44字节 byte[] preBuffer= new byte[44]; ...

2020-02-29 15:10:59 4150 2

空空如也

空空如也

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

TA关注的人

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