个人成长博客

纸上得来终觉浅,绝知此事要躬行

0%

前言

博客很久不更新了,一晃就 2023 年了。这一年多,发生了很多的事情,也有很多的变化,换了新的工作,认识了很多新的朋友,同时也成功奔了三。2022年有很多难忘的事情,比如经历了上海疫情封城3个月,第一次感受到物质匮乏下的绝望,同时也感受到了互帮互助的温暖。也有很多圆梦时刻,DEFT和梅西都完成了各自的夙愿,让人又相信了奇迹,点燃了很多人心中的光。也有很多的遗憾和迷茫,这些可能都是人生路上必须要经历的,慢慢都会释然和懂得。有时候会想一些人生的意义,以及如何才能过好这一生。最近看了一本书,这方面有些启发,特此记录。

——写于2023年元旦

阅读全文 »

简介

《月亮与六便士》是英国小说家毛姆的三大长篇力作之一,成书于1919年。在这部小说里,毛姆用第一人称叙述了整个故事。一个英国证券交易所的经纪人,本已有牢靠的职业和地位、美满的家庭,但却迷恋上绘画,像“被魔鬼附了体”,突然弃家出走,到巴黎去追求绘画的理想。他的行径没有人能够理解。他在异国不仅肉体受着贫穷和饥饿煎熬,而且为了寻找表现手法,精神亦在忍受痛苦折磨。通过这样一个一心追求艺术、不通人性世故的怪才,毛姆探索了艺术的产生与本质、个性与天才的关系、艺术家与社会的矛盾等等引人深思的问题,也引发了人们对摆脱世俗束缚逃离世俗社会寻找心灵家园这一话题的思考。

——返沪途中,无意翻到,整理摘录成文

阅读全文 »

简介

前面已经了解了RPC 框架的基础架构和一系列治理功能,以及一些与集群管理相关的高级功能,如服务发现、健康检查、路由策略、负载均衡、优雅启停机等等。有了这些知识储备,应该对 RPC 框架有了较为充分的认识。但如果想要更深入地了解 RPC,更好地使用 RPC,就必须从 RPC 框架的整体性能上去考虑问题了。得知道如何去提升 RPC 框架的性能、稳定性、安全性、吞吐量,以及如何在分布式的场景下快速定位问题等等。

异步RPC

阅读全文 »

简介

RPC入门中已经详细介绍了RPC中的各个功能组件,用一句话概括RPC,其实 RPC 就是把拦截到的方法参数,转成可以在网络中传输的二进制,并保证在服务提供方能正确地还原出语义,最终实现像调用本地一样地调用远程的目的。知道了各个功能组件只是迈出了第一步,接下来你必须要清楚各个组件之间是怎么完成数据交互的,这就需要一起搞清楚 RPC 的架构设计。

架构设计

阅读全文 »

简介

RPC 的全称是 Remote Procedure Call,即远程过程调用。RPC 是帮助我们屏蔽网络编程细节,实现调用远程方法就跟调用本地(同一个项目中的方法)一样的体验,我们不需要因为这个方法是远程调用就需要编写很多与业务无关的代码。RPC的主要作用体现在这两个方面,第一点是屏蔽远程调用跟本地调用的区别,让我们感觉就是调用项目内的方法;第二点是隐藏底层网络通信的复杂性,让我们更专注于业务逻辑。

RPC基础

阅读全文 »

概述

IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。Java中的BIO、NIO和 AIO 可以理解为是 Java 语言对操作系统的各种 IO 模型的封装。程序员在使用这些 API 的时候,不需要关心操作系统层面的知识,也不需要根据不同操作系统编写不同的代码,只需要使用Java的API就可以了。

BIO

阅读全文 »

概述

计算机网络主要由一些通用的、可编程的硬件互连而成,通过这些硬件,可以传送不同类型的数据,并且可以支持广泛和日益增长的应用。计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。

计算机网络的性能指标

阅读全文 »

概述

数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。这里主要介绍关系型数据库。关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有Mysql,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。数据库的设计主要分为存储系统和程序实例两部分,程序实例又分为存储管理、缓存实例、SQL解析、日志管理、权限划分、容灾机制、索引管理、锁管理等。

索引模块

阅读全文 »

概述

集合可以看作是一种容器,用来存储对象信息。主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection 接口又有 3 种子类型,List、Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap 等等。其中List代表了有序可重复集合,可直接根据元素的索引来访问;Set代表无序不可重复集合,只能根据元素本身来访问;Queue是队列集合;Map代表的是存储key-value对的集合,可根据元素的key来访问value。所有集合类都位于java.util包下,但支持多线程的集合类位于java.util.concurrent包下。

集合框架

阅读全文 »

概述

Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM),用于屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的并发效果,JMM规范了Java虚拟机与计算机内存是如何协同工作的:规定了一个线程如何和何时可以看到由其他线程修改过后的共享变量的值,以及在必须时如何同步的访问共享变量。

Java内存模型

阅读全文 »