
Java
帅气的人123
专注 java 领域的各种技术
展开
-
dubbo3 filter(过滤器)自定义过滤器
在 dubbo 中自定义 filter 可以有两种方式。原创 2025-01-11 17:49:51 · 616 阅读 · 0 评论 -
docker 启动 nacos 单机模式
输入部署的 docker ip 地址以及 8848 例如。原创 2025-01-09 21:51:11 · 478 阅读 · 0 评论 -
thrift rpc 的 api 入门学习
/ 定义命名空间,类似于我们在 java 中的包名// 定义 struct4: i64 id// 服务接口定义可以了以后我们可以使用。原创 2024-10-31 06:00:00 · 450 阅读 · 0 评论 -
CompletableFuture allOf 的时候如果出现异常会怎么样
在日常开发中如果使用 CompletableFuture 的时候,如果出现异常,会怎么样呢,会只停止这个线程还是全部停止?会主动抛出异常吗,今天我通过一下案例来以结果来分析。原创 2024-10-29 20:35:13 · 675 阅读 · 0 评论 -
thrift idl 语言基础学习
4: list hobby = [‘codeing’, ‘足球’, ‘篮球’],// 这里的 User 起始对应一个 struct// oneway 他表示客户端不会等待服务端响应直接结束请求,类似于 Java 的异步操作,并且他只能配合 void 使用。原创 2024-10-30 06:00:00 · 1336 阅读 · 0 评论 -
mysql 中临时表
临时表在日常开发中是十分的有大作用的,比如某些查询可能没办法命中索引,但是又要来一次全表查询,但是又不方便建立索引,这个时候可能临时表是一个很好的选择。原创 2024-10-28 22:44:46 · 622 阅读 · 0 评论 -
字节码指令
虚拟机指令是由一个字节的长度的代表着某种操作含义的操作码,以及后面跟上一个操作数。所以由操作码+操作数就构成了我们具体使用的一个指令。也不尽然,也会有一些特殊的操作码不含有操作数构成了一个指令。原创 2023-02-25 17:25:40 · 107 阅读 · 0 评论 -
Redis 所有操作
是一个双端链表的结构,容量是2的32次方减一,大概是40多亿,主要功能是 push 和 pop 等,一般用在栈,队列、消息队列等场景。支持的最大位数是2^32次方,他可以极大的节约存储空间,使用512MB可以存储42.9亿的字节信息。bit array (or simply bitmap,我们可以称之为位图),1个字节是8位。牺牲准确率来统计数据,误差只有0.81%左右,使用内存也很少每个密钥只需要12kb进行计数统计。底层使用 string 数据类型实现的一种统计二值状态的数据类型。原创 2023-02-12 20:29:50 · 118 阅读 · 0 评论 -
redis 在你小脑袋瓜的里的那些问号
redis 在 3.X 中使用的是单线程实现的。原创 2023-02-11 18:33:02 · 116 阅读 · 0 评论 -
两个字符串求和
手动实现对两个字符串的和求解。原创 2022-11-09 16:45:39 · 208 阅读 · 0 评论 -
Java 线程池
自定义七参数线程池new ThreadPoolExecutor(核心线程数量 , 最大核心数量 , 空闲县城销毁等待时间 , 空闲线程销毁等待时间单位 , 任务等待队列 , 拒绝策列)这样我们就创建了一个自定义的线程池我们都知道在、内部的等待队列都是这个阻塞队列,这样会导致我们的等待任务过大导致内存溢出。我们通过刚刚看源码知道内部最大的线程数量为这样会导致我们创建过多的数量的线程导致内存溢出。原创 2022-10-20 22:24:57 · 331 阅读 · 0 评论 -
Sharding-Jdbc 配置主从读写分离模式
我们项目的读写分离的主从模式项目中一般可以分为多种方式来实现,可以手动在代码 Java 中配置多种数据源来实现读写分离的模式,我们也可以通过第三方的框架来实现读写分离例如我们的,也可以是我们的MyCat的来实现读写分离。今天我们就来讲解一下如何使用来实现读写分离。使用YMAL方式来实现配置。配置master数据源和slave数据源。我们这次是的方案是一主多从的方式来实现读写分离,mysql的主从搭建我们这次就不说了。我们这次就是主要来实现的方式来实现读写分离。原创 2022-09-25 00:13:32 · 1818 阅读 · 0 评论 -
Java 动态代理
动态代理其实是Java设计模式中的一种也是各大框架都多多少少会使用到的一种,因为这个设计模式还是比较常用也比较重要的,今天我就把我知道了解的设计模式-动态代理给你分享一下。代理模式我们可以分为动态代理、静态代理。由程序员创建或特定工具自动生成源代码,也就是在编译时就已经将接口,被代理类,代理类等确定下来。在程序运行之前,代理类的.class文件就已经生成。代码案例。原创 2022-09-21 23:07:35 · 205 阅读 · 0 评论 -
Netty 自定义编码解码器
解码器主要是对客户端发送的消息进行解码处理,所以他是一个入栈的处理器,因此他会有一个入栈的标识解码器一般我都们都会基层 Netty 提供给的一个实现类来实现自己的解码逻辑 ->这就是解码的抽象类,默认我们要实现一个抽象方法这个方法有大概三个参数;这个是上下文信息,可以获取通道、管道等信息。客户端发送的消息就是存在这个参数的对象里面我们要通过这个对象的read***方法读取我们需要的数据类型,可以是Long,Byte等类型的数据然后我们可以就可以转换成为我们需要的格式。集合,将解码后的数据传递给下一个。原创 2022-09-18 20:44:48 · 1524 阅读 · 0 评论 -
Netty 的 TaskQueue 学习
简介把花费时间比较长的任务提交到 NioEventLoopGroup 的 TaskQueue 中进行异步执行。原创 2022-09-17 10:43:11 · 271 阅读 · 0 评论 -
Netty 使用 Google 的 ProtoBuf 来传输数据
ProtoBuf 是 google 的一个文件传输的协议。原创 2022-09-15 13:00:00 · 402 阅读 · 0 评论 -
Netty 心跳检测
Netty的心跳检测原创 2022-09-14 22:46:03 · 314 阅读 · 0 评论 -
netty websocket 小 demo
服务端这就可以运行了。然后需要一个客户端来测试。客户端需要直接编写一个 html 的简单的小页面来测试。这样就实现了 netty的 websocket 服务。服务端的逻辑会用到自定义handler的处理器。websocket 是一个全双工的长连接通讯。话不多说直接上代码。原创 2022-09-12 17:36:24 · 406 阅读 · 0 评论 -
netty 的多人聊天群
nio的群聊系统基于netty的实现,可以转发消息,发送消息,退出群聊等功能原创 2022-09-07 18:40:51 · 408 阅读 · 0 评论 -
Netty Http服务器可以配置要访问的资源和静态页资源
可以配置自己要发布的静态页资源或者 vue 资源(但是没有对vue做 hash等陆游的配置)原创 2022-09-06 09:11:36 · 486 阅读 · 0 评论 -
SimpleDateFormate 解析字符串变成 Date 类型
时间字符串解析为Date类型的各种时间匹配原创 2022-07-27 18:19:42 · 308 阅读 · 0 评论 -
fork 项目合并
fork 项目合并命令谨记# git基本操作git add --allgit commit -m "你要提交的信息"# 添加远程你 fork 的地址git remote add upstream git地址# 查看你的所有远程地址列表git remote -v# 拉取你的远程地址代码到本地git fetch upstream# 合并指定分支到本地git merge upstream/合并的目标分支# 基础 pushgit push origin fork的分支...原创 2022-04-10 00:18:35 · 745 阅读 · 0 评论 -
k8s 的 pod
pod运行中的一组容器,是 k8s 应用的最小单位启动一个pod命令行kubectl run 名字 --image=nginxyaml 方式创建version: v1 kind: Podmetadata name: 名字labels: run: Pod 名字namespack: default spec:containers: - image: 镜像名字`` name: Container 名字查看容器启动的描述kubectl describ原创 2022-01-08 16:01:02 · 482 阅读 · 0 评论 -
mysql 8.0 主从搭建
mysql 8.0 主从搭建主库配置主库的 my.cnf#主数据库端ID号server_id = 1 #开启二进制日志 log-bin = mysql-bin #需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可 binlog-do-db = mine#将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中 log-slave-upda原创 2022-01-06 13:45:34 · 638 阅读 · 0 评论 -
k8s 基础操作
kubernetes/k8s基本的操作原创 2022-01-03 00:21:37 · 763 阅读 · 0 评论 -
2021-06-16 方法区优化 学习
方法区方法区和 堆 一样 都会有 OOM 我们可以动态调节 方法区的大小,也可以给他固定的大小,并且方法去也会存在垃圾回收。堆栈方法区的交互关系堆方法对象的栈当前运行的方法已经方法的变量和指向堆内存的地址的服务引用方法区运行需要的所有的字节码文件class Test { public static void main(String[] args) { TestDemo testDemo = new TestDemo(); /*原创 2021-06-25 17:56:37 · 122 阅读 · 0 评论 -
基于逃逸分析的代码优化
代码优化栈上分配逃逸分析以后发现没有逃逸,就可以进行站上分配在栈上分配可以提高性能,减少 GC同步省略带动态编译同步代码块的时候,JIT编译器可以借助逃逸分析来判断同步代码块所使用的锁对象是否只能被一个线程访问到,而没有发布到其他的线程。如果只会被一个线程访问,JIT 在编译的时候就会消除同步锁。就会大大提高并发性和性能。这个消除同步锁的过程叫做,同步省略,也叫做锁消除。标量替换默认jdk是打开的介绍逃逸分析以后发现不会逃逸,则可以优化代码class Test01 {原创 2021-06-16 11:04:26 · 173 阅读 · 0 评论 -
Jvm 逃逸分析
逃逸分析逃逸分析之前我们先思考一下,对象在内存里面的分配一定会在堆内存吗?很显然的答案,不是的。分析和使用逃逸分析解析就是这个对象是否从产生到灭亡都是只在这个方法里面不会出来。我们就可以对其进行栈上分配在 JDK 6u23 之后默认开启逃逸分析。开启逃逸分析如果使用较早的版本,开发人员可以使用一下设置开启-XX:DoEscapeAnalysis 开启逃逸分析查看逃逸分析的筛选结果-XX:PrintEscapeAnalysis 查看逃逸分析的结果结论开发中能使用局部变量原创 2021-06-16 11:03:22 · 279 阅读 · 0 评论 -
Jvm 堆栈参数介绍
Jvm 参数介绍堆堆的起始内存设置-Xms 用来设置堆空间(年轻代+老年代)的初始内存大小X 是 jvm 运行参数ms 是 memory start-Xmx 用来设置堆空间(年轻代+老年代)的最大内存大小X 是 jvm 运行参数mx使用方式Xms/Xmx250k/KXms/Xmx250m/MXms/Xmx250g/G初始内存初始默认内存Xms 是物理内存的1/64Xmx 是物理内存的1/4如何查看设置的参数jps 查看当前的进程jstat原创 2021-06-07 09:28:49 · 430 阅读 · 0 评论 -
2021-01-24
Sentinel简介他可以做什么他是谁开发的集成 SentinelPomJava 类 configapplication.propertier 配置安装 Sentinel 的 Dashboardjar 的 启动如何使用注解使用try 代码块的使用链路使用开启对 feign简介Spring Cloud Alibaba 的一个组件,支持对服务的熔断、限流sentinel 是阿里巴巴的一个开源 cloud 的解决方案方案中的熔断和限流组件。集成原创 2021-01-24 17:53:06 · 145 阅读 · 0 评论 -
Web Socket SSM 版本 简单的入门
服务端消息推送技术-WebSocketWebSocket介绍websocket是一个全双工的高性能的服务端推送技术,基于ws协议实现通讯spring集成webSocketSSM导入依赖<!-- webSocket --><dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId&g原创 2021-01-20 08:59:14 · 114 阅读 · 0 评论