05 2021 档案

Netty——心跳机制
摘要:前言 所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性。 心跳包还有另一个作用,经常被忽略,即:一个连接如果长时间不用,防火墙或者路由器就会断开该连接。 操作系统内核心跳 Netty 是 基于 TCP 协议开发的 阅读全文

posted @ 2021-05-22 18:52 曹伟雄 阅读(2251) 评论(0) 推荐(0) 编辑

Netty——自定义协议通信
摘要:前言 为了满足自己业务场景的需要, 应用层之间通信需要实现各种各样的网络协议。本文记录如何设计一个高效、可扩展、易维护的自定义通信协议,以及如何使用 Netty 实现自定义的通信协议。 一、通信协议设计 所谓的协议,就是通信双方事先商量好的接口“暗语”, 在 TCP 网络编程中,发送方和接收方的数据 阅读全文

posted @ 2021-05-22 18:51 曹伟雄 阅读(7408) 评论(1) 推荐(0) 编辑

Netty——发送消息流程&高低水位
摘要:相关概念 SO_SEND_BUF和SO_REC_BUFF SO_SEND_BUF是操作系统内核的写缓冲区,所有应用程序需要发送到对端的信息,都会放到该缓冲区中,等待发往对端 SO_REC_BUFF是操作系统内核的读缓冲区,所有对端发过来的数据都会放到该缓冲区中,等待应用程序取走 ChannelOut 阅读全文

posted @ 2021-05-22 18:50 曹伟雄 阅读(1723) 评论(0) 推荐(1) 编辑

Netty——Protostuff编解码
摘要:前言 java的序列的机制,一种是默认的java序列化机制,这种方式效率太低。另外一种是谷歌的protobuf,但是这种我们还要写proto文件,并且我们还要使用工具来编译生成java文件,实在太麻烦。 但是protostuff却不一样,能够很好的解决上面两者的问题。 什么是Protostuff? 阅读全文

posted @ 2021-05-22 18:49 曹伟雄 阅读(932) 评论(0) 推荐(0) 编辑

Netty——Protobuf编解码
摘要:什么是protocol buffers? Protocol buffers是谷歌的语言中立,平台中立的,可扩展机制的序列化数据结构框架,可以看作是xml,但是体积更小,传输速率更快,使用更加简单。 一旦你定义了你的数据格式,你可以使用生成源代码去轻松地从各种数据流读和写你的结构化数据并且使用不同的语 阅读全文

posted @ 2021-05-22 18:48 曹伟雄 阅读(1139) 评论(1) 推荐(0) 编辑

Netty——编解码
摘要:Netty编解码 Netty 涉及到编解码的组件有 Channel 、 ChannelHandler 、 ChannelPipe 等,我们先大概了解下这几个组件的作用。 ChannelHandler ChannelHandler 充当来处理入站和出战数据的应用程序逻辑容器。 例如,实现 Channe 阅读全文

posted @ 2021-05-22 18:47 曹伟雄 阅读(582) 评论(0) 推荐(0) 编辑

Netty——粘包和拆包
摘要:Netty粘包拆包 TCP 粘包拆包是指发送方发送的若干包数据到接收方接收时粘成一包或某个数据包被拆开接收。 如下图所示,client 发送了两个数据包 D1 和 D2,但是 server 端可能会收到如下几种情况的数据。 上图中演示了粘包和拆包的三种情况: D1和D2两个包都刚好满足TCP缓冲区的 阅读全文

posted @ 2021-05-22 18:46 曹伟雄 阅读(1151) 评论(0) 推荐(2) 编辑

Netty——参数说明
摘要:Netty参数 ALLOCATOR Netty参数。ByteBuf的分配器 ByteBufAllocator,对象池化。可选值(Netty4.x):ByteBufAllocator.DEFAULT、PooledByteBufAllocator.DEFAULT、UnpooledByteBufAlloc 阅读全文

posted @ 2021-05-22 18:44 曹伟雄 阅读(5414) 评论(0) 推荐(1) 编辑

JVM——参数说明
摘要:前言 本文对常用 JVM 常用参数做了一个整理,但是参数的使用很复杂,本文仅仅提供常用参数的查阅,具体的使用还是需要根据具体的情况。 JVM 是一个开放的标准,谁可以来实现 JVM,这导致不同 JVM 实现的参数有所不同,本文基于 Hotspot 虚拟机。 JVM 参数很多,总体上可以分成三类: - 阅读全文

posted @ 2021-05-22 18:43 曹伟雄 阅读(2268) 评论(0) 推荐(0) 编辑

应用性能监控——NewRelice
摘要:前言 New Relic 是一个很强大的服务器性能监控工具,New Relic目前专注于SaaS和App性能管理业务,它支持支持agent和API传送数据,能够对部署在本地或在云中的web应用程序进行监控、故障修复、诊断、线程分析以及容量计划。 New Relic APM将你没有发现的问题暴漏出来, 阅读全文

posted @ 2021-05-22 18:36 曹伟雄 阅读(6219) 评论(0) 推荐(2) 编辑

分布式服务调用链路跟踪——Spring Cloud Sleuth + Zipkin
摘要:前言 微服务架构下,会有很多微服务,服务之间调用关系会非常复杂,就非常有必要对每个请求的完整调用链进行跟踪,了解调用了那些服务,当出现问题时可以快速定位。 Spring Cloud Sleuth 为 Spring Cloud 实现了一个分布式跟踪解决方案,该组件大量借签了 Dapper、Zipkin 阅读全文

posted @ 2021-05-22 18:35 曹伟雄 阅读(1303) 评论(0) 推荐(0) 编辑

分布式服务调用链路追踪——Pinpoint
摘要:1. Pinpoint架构 官网地址:https://github.com/pinpoint-apm/pinpoint 从下图来看,Pinpoint主要分成几个部分: Agent,负责从应用服务端收集数据,上传到collector; Collector,负责接收Agent上传的数据,并存储到Hbas 阅读全文

posted @ 2021-05-22 18:34 曹伟雄 阅读(7315) 评论(0) 推荐(1) 编辑

分布式服务调用链路追踪——方案选型
摘要:前言 目前大多数分布式追踪系统的思想模型都来自 Google's Dapper 论文。 全链路追踪工具一览: Drapper(google--未开源):最早的APM; 鹰眼(阿里--未开源): CAT(大众点评--开源):跨服务的跟踪功能与点评内部的RPC框架集成,这部分未开源且项目在2014.1已 阅读全文

posted @ 2021-05-22 18:33 曹伟雄 阅读(8748) 评论(1) 推荐(4) 编辑

分布式服务调用链路追踪——Skywalking
摘要:SkyWalking是什么? SkyWalking是一个可观测性分析平台和应用性能管理系统,提供分布式跟踪、服务网格遥测分析、度量聚合和可视化一体化解决方案,并支持多种开发语言。 官网:http://skywalking.apache.org/ 特点: 性能好 针对单实例5000tps的应用,在全量 阅读全文

posted @ 2021-05-22 18:32 曹伟雄 阅读(10995) 评论(1) 推荐(4) 编辑

JVM——jhat命令
摘要:概述 Java Virtual Machine Heap Analysis Tool 虚拟机堆转储快照分析工具,用于分析heapdump文件,它会建立一个HTTP/HTML服务器,让用户可以在浏览器上查看分析结果。 Sun JDK提供了jhat(JVM Heap Analysis Tool)命令与j 阅读全文

posted @ 2021-05-20 10:36 曹伟雄 阅读(3094) 评论(0) 推荐(0) 编辑

JVM——jmap命令
摘要:概述 命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。 jmap 用法 [root@mesb01 ~]# jmap -help Usage: jmap [option 阅读全文

posted @ 2021-05-20 10:35 曹伟雄 阅读(959) 评论(0) 推荐(0) 编辑

JVM——jstack命令
摘要:概述 jstack是JVM自带的Java堆栈跟踪工具,它用于打印出给定的java进程ID、core file、远程调试服务的Java堆栈信息,它可以非常方便的做java进程的thread dump。 一、jstack 介绍 jstack 功能 jstack命令用于生成虚拟机当前时刻的线程快照。 线程 阅读全文

posted @ 2021-05-20 10:34 曹伟雄 阅读(3038) 评论(0) 推荐(0) 编辑

JVM——jstat命令
摘要:概述 Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下, 主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状 阅读全文

posted @ 2021-05-20 10:33 曹伟雄 阅读(1206) 评论(0) 推荐(0) 编辑

JVM——jinfo命令
摘要:概述 jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。 当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息。 jinfo 用法 [ 阅读全文

posted @ 2021-05-20 10:32 曹伟雄 阅读(1853) 评论(0) 推荐(0) 编辑

JVM——jps命令
摘要:概述 jps主要用来输出JVM中运行的进程状态信息。 jps 用法 [root@push ~]# jps -help usage: jps [-help] jps [-q] [-mlvV] [<hostid>] Definitions: <hostid>: <hostname>[:<port>] 参 阅读全文

posted @ 2021-05-20 10:31 曹伟雄 阅读(332) 评论(0) 推荐(0) 编辑

RabbitMQ——CLI 管理工具 rabbitmqadmin
摘要:前言 一般情况下,我们会使用 rabbitmq_management 插件,通过 Web UI 的方式来监控和操作 RabbitMQ(端口 15672),但有时候命令的方式会更加方便一些, RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其实就是基于 RabbitMQ 的 阅读全文

posted @ 2021-05-17 23:30 曹伟雄 阅读(1646) 评论(0) 推荐(0) 编辑

RabbitMQ——Fedration插件
摘要:前言 Fedration插件用来在不同的RabbitMQ集群之间复制队列消息,集群可以是内网也可以是公网,而这些对应用来说是透明的,即应用不会感知到,也不需要编写相关代码。 应用场景: 集群间复制队列消息 集群升级 特点: 松耦合性(Loose coupling) federation 插件能够在分 阅读全文

posted @ 2021-05-17 22:40 曹伟雄 阅读(880) 评论(0) 推荐(0) 编辑

RabbitMQ——使用Shovel插件迁移数据
摘要:前言 公司的RabbitMQ集群要升级最新稳定版本,升级方案:新搭建一套集群,将数据迁移到新的集群,应用连接到新的集群。 因为系统可以接受短暂停机时间,所以采用Shovel插件将旧集群的数据迁移到新集群。经过分析,需要迁移的数据主要有两种: 队列中积压的消息; 延迟队列的消息; 安装插件 启动插件 阅读全文

posted @ 2021-05-16 23:23 曹伟雄 阅读(1713) 评论(1) 推荐(0) 编辑

Http——HttpClient使用
摘要:HttpClient简介 为了更好地处理向Web站点请求,包括处理Session、Cookie等细节问题,Apache开源组织提供了一个HttpClient项目, 看它的名称就知道,它是一个简单的HTTP客户端(并不是浏览器),可以用于发送HTTP请求,接收HTTP响应。 但不会缓存服务器的响应,不 阅读全文

posted @ 2021-05-01 11:50 曹伟雄 阅读(696) 评论(0) 推荐(0) 编辑

Http——Keep-Alive机制
摘要:前言 HTTP keep-alive 也称为 HTTP 长连接。它通过重用一个 TCP 连接来发送/接收多个 HTTP请求,来减少创建/关闭多个 TCP 连接的开销。 1. HTTP中的keep-alive 1.1 为什么HTTP是短连接 众所周知,HTTP是短连接,client向server发送一 阅读全文

posted @ 2021-05-01 11:49 曹伟雄 阅读(36013) 评论(2) 推荐(10) 编辑

Http——HttpURLConnection详解
摘要:HttpURLConnection简介 在JDK的 java.net 包中已经提供了访问HTTP协议的基本功能的类:HttpURLConnection。 HttpURLConnection是Java的标准类,它继承自URLConnection,可用于向指定网站发送GET请求、POST请求。 它在UR 阅读全文

posted @ 2021-05-01 11:48 曹伟雄 阅读(35130) 评论(2) 推荐(5) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示