摘要: 目前刚入职了一家公司,要求替换当前系统(单体应用)以满足每日十万单量和一定系统用户负载以及保证开发质量和效率。由我来设计一套基础架构和建设基础开发测试运维环境,github地址。 出于本公司开发现状及成本考虑,我摒弃了市面上流行的Spring Cloud以及Dubbo分布式基础架构,舍弃了集群的设计 阅读全文
posted @ 2019-08-20 12:08 地主AE86 阅读(660) 评论(2) 推荐(2) 编辑
摘要: 一次偶然,博主在浏览docs.oracle.com/javase的时候发现了《Hotspot虚拟机垃圾收集调优指南》这篇文档。内心百感交集,之前在看完了周志明的《深入理解Java虚拟机 JVM高级特性与最佳实践(第二版)》也有比较长篇的学习记录博客发表。不过那也是基于JDK7进行编写的。后续的8、9 阅读全文
posted @ 2018-09-11 18:24 地主AE86 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 我们可以吧JVM的基本结构分为四块:类加载器、执行引擎、运行时数据区和本地接口。一般来说Java程序在JVM中的执行流程如下: ①、首先我们会利用javac命令将我们所编写的.java源代码文件变异成.class文件 ; ②、类加载器将.class文件加载到运行时数据区; ③、利用执行引擎调用本地接 阅读全文
posted @ 2018-06-11 15:55 地主AE86 阅读(178) 评论(0) 推荐(1) 编辑
摘要: AOP(面向切面编程)在Spring中是被广泛应用的(例如日志,事务,权限等),而它的基本原理便是动态代理。 我们知道动态代理有两种:基于JDK的动态代理以及基于CGlib动态代理。以下是两种动态代理的实现方式: 1 //JDK动态代理 2 public class JDKProxy impleme 阅读全文
posted @ 2018-06-06 18:53 地主AE86 阅读(1041) 评论(0) 推荐(1) 编辑
摘要: 众所周知,单纯按照IPv4地址结构与分类是不满足我们现在大量个人电脑的使用需求的。为了应对这种问题,产生了构成子网与构成超网这么两个变种。 构成子网是在原IP(Net id+Host id)上加入了Subnet id(变成了Net id+Subnet id+Host id)。我们在分析这类IP的时候 阅读全文
posted @ 2018-05-28 14:28 地主AE86 阅读(547) 评论(0) 推荐(0) 编辑
摘要: 在Spring Boot官方介绍中,首一段话是这样的(如下图)。我们可以大概了解到其所表达的含义:我们可以利用Spring Boot写很少的配置来创建一个非常方便的基于Spring整合第三方类库的单体企业级应用。相信使用过Spring Boot的人都知道,她在这方面从前到后的一系列整合。本篇文字将带 阅读全文
posted @ 2018-05-23 17:50 地主AE86 阅读(923) 评论(0) 推荐(1) 编辑
摘要: 网络信息的传输在最底层总是依托于物理介质来进行传输的,这里的传输介质分为两种: 局域网LAN(LAN=Local Area Network)予许一些独立设备在受限的地理方位内彼此能够直接通信,不需要第三方转发。在局域网中各主机通信是基于共享介质(总线),一种广播式的信息发送模式。局域网有三种实现方式 阅读全文
posted @ 2018-05-22 15:06 地主AE86 阅读(243) 评论(0) 推荐(0) 编辑
摘要: TCP/IP协议族简称TCP/IP。这么命名是因为该协议家族中的两个核心协议:TCP(传输控制协议)和IP(网际协议),为该家族中最早通过的标准。TCP/IP提供点对点的链接机制,将数据应该如何封装,定址,传输,路由以及在目的地如何接收,都加以标准化。它将软件通信的过程抽象为四个抽象层,采用协议堆栈 阅读全文
posted @ 2018-05-21 10:00 地主AE86 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 由概念启发学习,引导学习。本篇文章中包含了一些最基本的概念和底层知识。虽然零碎,但是这是基础。 一、协议和标准 协议指的是一组控制数据通信的规则。协议有三要素:语法(syntax),语义(semantics),时序(Timing)。具体说明请参考百度百科。 标准是一致同意的规则。标准分为两种:事实的 阅读全文
posted @ 2018-05-16 16:26 地主AE86 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 在上篇文章当中,我们实现了底层为数组的顺序栈。在我之前的文章中也提到过:以数组为数据结构基础在存储数据方面需要一整块连续的内存来存放数据,一旦遇到需要可以动态扩展的功能需求时如果数据量大可能会给虚拟机很大的压力导致频繁GC来获取足够大的内存块。现在,为了避免这种问题的发生,我们通过另外一种方式实现栈 阅读全文
posted @ 2018-05-12 20:22 地主AE86 阅读(262) 评论(0) 推荐(0) 编辑