首页
学习
活动
专区
工具
TVP
发布

java、Spring、技术分享

专栏作者
53
文章
59522
阅读量
14
订阅数
kafka学习笔记
kafka相关概念图 重点: kafka里的副本针对的是分区来做的, 副本不提供对外的服务,只记录消息数据,kafka通过对topic分区来实现消息系统的负载。
良辰美景TT
2022-05-13
3100
计算机编码相关问题
整数在计算机中是以补码的形式存储的, 补码和原码的区别在负数上。 下面代码上展示了10这个整数在计算机中的二进制是怎么表示的。
良辰美景TT
2022-03-26
3430
Elasticsearch基本使用
可以在https://www.elastic.co/cn/downloads/elasticsearch这个页面找到elasticsearch对应系统的安装包,elasticsearch用java开发的, 最新的版本内置了对应的jdk, 通过下面的方式能快速启动:
良辰美景TT
2020-12-14
5970
Tomcat spring boot 项目启动慢的问题
首先我们要做的是删除掉 webapps 文件夹下不需要的工程,一般是 host-manager、example、doc 等这些默认的工程,可能还有以前添加的但现在用不着的工程,最好把这些全都删除掉。如果你看过 Tomcat 的启动日志,可以发现每次启动 Tomcat,都会重新布署这些工程。
良辰美景TT
2020-07-02
1.7K0
Disruptor简单使用
  Disruptor从功能上来说,可以实现队列的功能,也可以把它当成单机版的JMS来看待。从性能上来说,它比ArrayBlockingQueue有更好的性能表现,对于生产者消费者模型的业务,Disruptor是一个更好的选择可以很好的实现业务的分离。
良辰美景TT
2019-03-29
7700
Netty Recycler源码解读
Recycler是一个轻量级的对象缓存池,用来实现对象的复用。下面是使用Recycler的一个简单实例:
良辰美景TT
2018-12-26
1.1K0
Netty Unpooled 内存分配
Netty里的内存管理是通过ByteBuf这个类作为桥梁连接着业务代码与jdk底层的内存。所以理解ByteBuf的结构就很有必要了。
良辰美景TT
2018-12-25
1.7K0
Netty 模拟百万连接
  我们知道单机的端口最多65536,除去系统使用的端口, 留给程序使用的也就6万个端口, 在需要对单机做长连接压力测试的时候,如果要测60W的长连接并发,就得找10台机器,而一般情况下我们并没有这么多的空闲机器去做这种规模的测试,那如何用两台机器模拟百万连接呢?对于TCP的连接,系统用一个4四元组来唯一标识:{server ip, server port,client ip,client port}。这里有两个变量是固定的, server ip与clinet ip。能做文章的也就是两台服务器的端口号了。如果server port 只开启一个端口的话, 那一台client最多也就 6W个连接能连上,多了因为端口的限制无法创建新的连接。如果server端多开几个端口,根据TCP的唯一标识,我们便能够模拟超过6W的连接测试了。处面是具体的代码,项目依赖netty,版本为4.1.25.Final。
良辰美景TT
2018-12-24
1.9K0
Netty 解码器
  Netty里的解码通过抽象类ByteToMessageDecoder进行统一规划。ByteToMessageDecoder继承了ChannelInboundHandlerAdapter,解码器也是一个ChannelHandler下面是ByteToMessageDecoder解码的过程
良辰美景TT
2018-12-24
8440
FastThreadLocal
JDK提供了ThreadLocal,用于构造线程安全的对象,ThreadLocal通过Thread的ThreadLocalMap内部属性来保证线程安全,而ThreadLocalMap的key是ThreadLocal。通过map这种数据结构来存储线程相关的数据。而Netty里的FastThreadLocal是如何做到比ThreadLocal有更快的速度的呢。下面来分析Netty里FastThreadLocal的实现:
良辰美景TT
2018-12-24
6040
Netty 编码与数据的写入
业务里的数据最终需要通过socket写回到客户端,我们写的业务方法都是面向对象来进行编码的,而channel底层传输的是字节,Netty通过定义encoder来完成对象到字节的转换。自定义的encode可以通过继承MessageToByteEncoder(encoder也是ChannelHandler),下面是MessageToByteEncoder的处理流程。
良辰美景TT
2018-12-24
7730
Java中弱引用、软引用、虚引用、强引用、 Finalizer引用
在Java层面,一共有四种引用:强引用、软引用、弱引用、虚引用,这几种引用的生命周期由强到弱。转换关系大致如下图所示:
良辰美景TT
2018-12-24
2K0
Netty 新连接的接入
本文通过源码分析Netty是如何一步步的将接收客户端的新连接,然后将连跟NioEventLoop绑定,并注册相应的Read事件。
良辰美景TT
2018-12-19
6770
ChannelPipeline源码分析
AbstractChannelHandlerContext
良辰美景TT
2018-12-19
4730
Elasticsearch6.4安装
下载地址:https://www.elastic.co/cn/downloads 假设系统安装好了对应的jdk,且jdk的版本要高于8。下面是具体的安装步骤。
良辰美景TT
2018-12-13
8490
JVM监控及诊断工具
jstat用法 其中-gc可以换成-class 、-gcnew、-gcold等参数;而54992表示的JVM的进程id(可能通过上面的jps命令查看) ;4s表求每4秒打印一次,后面的3表求共打印三次。 打印的各参数含义如下: 1:S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used) 2:EC、EU:Eden区容量和使用量 3:OC、OU:年老代容量和使用量 4:MC、MU:元数据区容量和使用量 5:CCSC、CCSU:压缩类空间容量和使用量 5:YGC、YGT:年轻代GC次数和GC耗时 6:FGC、FGCT:Full GC次数和Full GC耗时 7:GCT:GC总耗时 jstat可以用来判断系统是否出现了内存泄漏,方法是通过一短长时间的观察OU的增长情况,如果OU稳定增长,则有可能出现内存泄漏。
良辰美景TT
2018-12-10
1.9K0
Spring集成TestNG测试MVC Controller
  在项目中需要写单元测试,如何保证写的单元测试的质量是比较高的。有以下几个原则。
良辰美景TT
2018-12-07
1K0
JMH基准测试
  OpenJDK 中的开源项目 JMH(Java Microbenchmark Harness)。JMH 是一个面向 Java 语言或者其他 Java 虚拟机语言的性能基准测试框架。它针对的是纳秒级别、微秒级别、毫秒级别,以及秒级别的性能测试。
良辰美景TT
2018-12-04
1K0
记一次unable to create new native thread错误处理过程
unable to create new native thread,看到这里,首先想到的是让运维搞一份线上的线程堆栈(可能通过jstack命令搞定的)。发现线上的堆栈竟然有5M多大,打开文件后线程数量居然达到了8000多个。有大量的线程堆栈如下图所示:
良辰美景TT
2018-11-21
4K0
数据结构--堆
堆有两个特性: 堆是一个完全二叉树 堆中所有父节点都大于(最大堆)或者小于(最小堆)子结点。 在一般的实现中,我们可以用数组来存储堆中的元素,数组的索引用于实现结点左右孩子的查找。 最小堆的实现代码如下: import java.util.ArrayList; import java.util.List; import java.util.Random; /** * * 功能描述: 最小堆的实现 * * @version 2.0.0 * @author zhiminchen */ pu
良辰美景TT
2018-10-08
5420
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档