hqfBlog


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

实现一个自己的RPC框架2.0

发表于 2019-08-11 | 分类于 RPC

前言


在不同服务部署在不同的机器上的前提下,服务器之间存在大量的网络通信,这时候就需要写大量的网络通信的代码,十分不方便。如果能够让服务器调用远程方法就像是调用本地方法一样,将会大大减少工作量,这种方法的实现其实就是RPC。

阅读全文 »

实现一个自己的RPC框架1.0——知识储备

发表于 2019-08-11 | 分类于 RPC

前言


在实现一个自己的RPC框架之前,需要先了解动态代理和反射,反射可以参考这篇文章 java反射。动态代理和反射可以说是RPC的精髓所在,正是通过它们,才能使远程调用“本地化”。代理模式是基本的设计模式之一,其中动态代理更为重要。代理模式的目的就是为其他对象提供一个代理以控制对某个对象的访问。代理类负责为委托类预处理消息,过滤消息并转发消息,以及进行消息被委托类执行后的后续处理。

阅读全文 »

Arthas初识

发表于 2019-08-09 | 分类于 Arthas

前言


在看JVM性能调优和故障处理工具的时候JDK提供了一些比较好用的工具,比如说jps是一个用来监控虚拟机的进程状况的工具,jstat是一个虚拟机统计信息监视的工具,jinfo是一个Java配置信息工具,jmap是一个Java内存映像工具,jstack是一个堆栈跟踪工具等等,这些工具都十分小巧实用。但是最近发现一个阿里开源的Java在线诊断工具Arthas(阿尔萨斯),可堪称诊断利器。官方文档是这么介绍的:

当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:

  1. 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  2. 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  3. 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  4. 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  5. 是否有一个全局视角来查看系统的运行状况?
  6. 有什么办法可以监控到JVM的实时运行状态?

这么强大的功能,看起来就十分吸引人,赶紧学起来。

先放上官方的链接 Arthas用户文档

阅读全文 »

JVM笔记——垃圾收集与内存分配

发表于 2019-08-04 | 分类于 JVM

前言


垃圾收集(GC)与内存动态分配,是JVM中很重要的一块内容,与C++语言不同的是,Java语言能够自己对内存进行回收以及动态分配,但是仍然可能产生内存的溢出或者内存泄漏的问题,所以了解垃圾收集与内存分配的原理是必须的。从JVM的内存划分区域来看,栈区(由于是以HotSpot虚拟机为例,将Java虚拟机栈以及本地方法区栈统称为栈区)、程序计数器是线程私有的,随着线程的消亡而消失,这几个区域的内存分配与回收都存在确定性,所以这几个区域就不必去过多考虑回收的问题。但是,堆和方法区就不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中多个分支需要的内存可能也不一样,我们只有在程序运行的过程中才会知道创建哪些对象,这部分的内存分配和回收是动态的,所以这两个区域是垃圾回收和内存分配所重点关注的区域。其中Java堆区是垃圾收集器主要管理的区域。

阅读全文 »

Redis笔记——基本数据结构与对象

发表于 2019-07-22 | 分类于 Redis

前言


Redis是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称),一般为分布式而分布式一般遵循 CAP 定理。

阅读全文 »

SSH端口转发

发表于 2019-07-18 | 分类于 Linux

前言


SSH是Secure Shell protocal的缩写,它是一种网络协议,用于计算机之间的加密登录。SSH命令也是一个非常常用且有用的命令,一般会用于远程登录。

最简单的,如果你想以用户名root登录远程主机host,只需要执行如下命令中的任意一条,第一条是常用的。

1
2
ssh root@host
ssh -l root host
阅读全文 »

JVM笔记——JVM内存区域

发表于 2019-06-13 | 分类于 JVM

前言


之后会更新一些JVM的博客,来记录JVM的学习笔记。
阅读全文 »

Logstach日志文件管理工具的搭建与使用

发表于 2019-06-04 | 分类于 Logstash

前言


由于实验室需要搭建一个类似于后台运维的平台,其中涉及到了日志的收集这一项。需要的是从不同的服务器中收集到有用的信息,并统一进行处理展示。这里的日志收集我主要是用Logstash来进行的,下面简单介绍一下logstach的搭建与使用。

阅读全文 »

线程与线程池

发表于 2019-04-11 | 分类于 Java并发编程

前言


本篇主要叙述线程的基础知识。线程的几个实现方式以及线程池的实现方式。
阅读全文 »

基于Neo4j搭建图谱可视化应用(二)

发表于 2018-12-13 | 分类于 Neo4j

前言


在使用或者搭建neo4j的时候会产生一些问题,这边记录一下。
阅读全文 »
<1…456>
hqf1996

hqf1996

51 日志
17 分类
44 标签
© 2020 hqf1996
博客全站共字 |
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4