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

java、Spring、技术分享

专栏成员
53
文章
61718
阅读量
14
订阅数
Netty Unpooled 内存分配
Netty里的内存管理是通过ByteBuf这个类作为桥梁连接着业务代码与jdk底层的内存。所以理解ByteBuf的结构就很有必要了。
良辰美景TT
2018-12-25
1.8K0
Netty 新连接的接入
本文通过源码分析Netty是如何一步步的将接收客户端的新连接,然后将连跟NioEventLoop绑定,并注册相应的Read事件。
良辰美景TT
2018-12-19
7020
ChannelPipeline源码分析
AbstractChannelHandlerContext
良辰美景TT
2018-12-19
4820
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
2K0
Spring集成TestNG测试MVC Controller
  在项目中需要写单元测试,如何保证写的单元测试的质量是比较高的。有以下几个原则。
良辰美景TT
2018-12-07
1.1K0
JMH基准测试
  OpenJDK 中的开源项目 JMH(Java Microbenchmark Harness)。JMH 是一个面向 Java 语言或者其他 Java 虚拟机语言的性能基准测试框架。它针对的是纳秒级别、微秒级别、毫秒级别,以及秒级别的性能测试。
良辰美景TT
2018-12-04
1.1K0
java SSL
防止抵赖,能够检查签名之后内容是否有更改。通过单向散列算法对内容进行求值,相当于对内容进行提取了指纹。
良辰美景TT
2018-10-08
1.9K0
java字节码
  我们都知道Java字节码是JVM所使用的指令集。java字节码可以分为如下几类:
良辰美景TT
2018-09-11
1.5K0
Eureka 服务提供者与消费者
1:修改pom.xml文件,与服务提供都不同的是这里需要引入spring-cloud-starter-ribbon 用于做负载均衡。服务提供都可能会部署多个实例,调用过程就涉及到负载均衡问题了。
良辰美景TT
2018-09-11
9550
Spring Boot读取配置文件与配置文件优先级
1)通过注入ApplicationContext 或者 Environment对象来读取配置文件里的配置信息。
良辰美景TT
2018-09-11
7460
Eureka Server
从图中可以看出Eureka服务器提供服务注册与服务查找功能。多台服务器可以形成Eureka服务器集群,以提供高可用的服务。 Eureka 服务器并没有提供后台的存储, 这些注册的服务实例被保存在内存的注册中心, 它们通过心跳来保持其最新状态, 这些操作都可以在内存中完成。 客户端存在着相同的机制, 同样在内存中保存了注册表信息, 这样的机制提升了Eureka 组件的性能, 每次服务的请求都不必经过服务器端的注册中心。
良辰美景TT
2018-09-11
6980
Zuul详解
  微服务具有系统小(一个程序员可以独立完成开发),可以独立部署,能快速进行迭代等优点。因为系统切分的小,必然也就意味着会有更多的系统需要进行维护。在实际应用中,相关的系统一般部署在同一个机房,内部之间通过Eureka的服务发现机制与Ribbon客户端负载便可以很好的实现系统间的调用。而外部的应用如何来访问公司内部各种各样的微服务呢?在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。(功能上应该和Nginx差不多,Zuul基于Eureka的服务发现功能动态实现路由的功能)
良辰美景TT
2018-09-11
1.7K0
Spring Import 三种用法与源码解读
  最近在看Spring Cloud相关的源码,每次引入一个新的starter,发现都会加一些enable的注解,比如:@EnableDiscoveryClient,用于将应用注册到Eureka Server并将Eureka Server有的服务拉取到微服务系统。点开EnableDiscoveryClient源码,便会发现里面用到了@import注解。源码如下:
良辰美景TT
2018-09-11
3.1K0
wireshark
1) src host 192.168.1.1 && dst port 80 抓取源地址为192.168.1.1目地为80端口的流量
良辰美景TT
2018-09-11
1.4K0
Spring Cloud里的服务提供者如何与注册中心进行通信
从这张图我们知道,无论是服务提供者还是服务的调用者,他们都需要与Eureka服务器进行通信。他们之间是如何进行消息传递的呢?通过wireshark抓包工具可以很清楚的看到他们之间的通讯信息。步骤如下: 1:让wireshark能够抓取本机的包,默认就无法抓取本机的包的,方法在https://www.jianshu.com/p/486d1c063861 这篇文章里有介绍。
良辰美景TT
2018-09-11
4560
Netty NioEventLoop源码解读
  NioEventLoop中维护了一个线程,线程启动时会调用NioEventLoop的run方法,执行I/O任务和非I/O任务:I/O任务:即selectionKey中ready的事件,如accept、connect、read、write等,由processSelectedKeys方法触发。非IO任务:添加到taskQueue中的任务,如register0、bind0等任务,由runAllTasks方法触发。两种任务的执行时间比由变量ioRatio控制,默认为50,则表示允许非IO任务执行的时间与IO任务的执行时间相等。以下是NioEventLoop的构造方法。
良辰美景TT
2018-09-11
8500
深入分析Spring Formatter
  在Web项目中,通常需要将数据转换为具有某种格式的字符串进行展示,因此Spring3引入了格式化转换器(Formatter SPI) 和格式化服务API(FormattingConversionService)从而支持这种需求。现在来看看格式转换器相关的接口定义:
良辰美景TT
2018-09-11
8990
Netty中Channel与Unsafe源码解读
  Channel是netty网络操作抽象类,包括网络的读,写,链路关闭,发起连接等。我们拿出NioServerSocketChannel来进行分析,NioServerSocketChannel的类图如下所示:
良辰美景TT
2018-09-11
7540
Netty ChannelHandler与ChannelPipeline源码解读
  ChannelHandler基本上是我们第一次接触Netty就会碰到的对象,我们自定义的各种ChannelHandler主要用于处理我们系统的各种业务逻辑,比如发生了active事件后的处理逻辑,发生了读事件的处理逻辑,下面先来看一下ChannelHandler的类继承图:
良辰美景TT
2018-09-11
5210
java线程
  从操作系统的角度,可以简单认为,线程是系统调度的最小单元,一个进程可以包含多个线程,作为任务的真正运作者,有自己的栈(Stack)、寄存器(Register)、本地存储(Thread Local)等,但是会和进程内其他线程共享文件描述符、虚拟地址空间等。   具体实现中,线程还分为内核线程、用户线程,Java 的线程实现其实是与虚拟机相关的。对于我们最熟悉的 Sun/Oracle JDK,其线程也经历了一个演进过程,基本上在 Java 1.2 之后,JDK 已经抛弃用户调度的线程,现在的模型是一对一映射到操作系统内核线程。
良辰美景TT
2018-09-11
1.1K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档