Fork me on GitHub
摘要: 来源:《How Tomcat Works》 Servlet容器的工作原理: 1、创建一个request对象并填充那些有可能被所引用的servlet使用的信息,比如参数、头部、cookies、查询字符串、URL等。而一个request对象是javax.servlet.ServletRequest或ja 阅读全文
posted @ 2020-06-02 11:17 lovejune 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 本博来源:《linux高性能服务器编程》 TCP/IP协议族是一个四层协议系统。 可以看到该协议族是由多个协议组成的。其中重要的是IP协议、TCP协议、UDP协议。 同时可以清楚的看到,socket套接字处于应用层和传输层的中间,充当一个调度者的角色。 1.数据链路层:实现了网卡接口的网络驱动程序。 阅读全文
posted @ 2020-05-24 10:29 lovejune 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 概念: 同步、异步、阻塞、非阻塞的概念 同步:所谓同步,发起一个功能调用的时候,在没有得到结果之前,该调用不返回,也就是必须一件事一件事的做,等前一件做完了,才能做下一件。 提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 异步:调用发出后,调用者不能立刻得到结果,而是实 阅读全文
posted @ 2020-03-26 09:51 lovejune 阅读(1578) 评论(0) 推荐(0) 编辑
摘要: 这个图很形象的展示了OSI的五层架构之间的关系。 OSI被称为开放式互联,是国际标准组织制定的网络模型,本来是七层,后来把表现层和会话层加到应用层里面了。 那么五层模型中的每一层具体都是干什么的呢? 在标准的网络模型中,每一层都有它不同的用处,而且每一层都只提供向上和向下的接口,而不会垮层去通信。 阅读全文
posted @ 2020-03-26 09:45 lovejune 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解法 该题目属于查找的类型。查找优化条件在于数组中的数据是按顺序排列的,那么一种方法是二分法,另 阅读全文
posted @ 2020-03-26 09:27 lovejune 阅读(241) 评论(0) 推荐(0) 编辑
摘要: JDK、JRE、JVM的关系 从上面这个图可以知道,jdk提供将.java的源代码转换为.class的字节码,并提供一些jRE相关的监控工具,而jre则是java的运行环境,是运行class文件的,而JVM就在JRE里面。 所谓一次编写,到处运行的含义就是:可以编写一次.java文件或者转换过得.c 阅读全文
posted @ 2020-03-19 11:39 lovejune 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 并发是个系统的知识体系,有理论上的,有语言上的,有概念上的,这份总结力求简单,看的懂,而不是用一大堆源码和概念去描述 java的内存模型 java的内存模型被称为JMM,从上图可以看出,java内存模型主要是针对多线程。 为什么要先说java的内存模型,事实上,涉及到线程之间通信的两种模型; 第一种 阅读全文
posted @ 2020-03-18 11:07 lovejune 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 使用集群,比如zk来控制注册中心,当一个服务有多个请求地址的时候,会返回多个地址。 那么就需要负载均衡来控制我们要请求哪台机器来得到请求。 方案一:随机 传入key值和key所包含的ip地址值,该地址值存入TreeSet中(有序存储) 获得TreeSet的长度,然后随机得到其索引,挑出随机的一个。 阅读全文
posted @ 2020-03-11 19:26 lovejune 阅读(1628) 评论(0) 推荐(0) 编辑
摘要: 使用模板模式,对注册中心进行设计,可以方便后续添加注册中心 模板抽象类,提供注册中心必要的方法。 public abstract class ServiceRegistry { //这是一个模板的抽象类,规定了注册中心对外提供的方法 //开始注册服务,参数map中应该包含注册中心要启动所需的参数 p 阅读全文
posted @ 2020-03-11 19:24 lovejune 阅读(1271) 评论(0) 推荐(0) 编辑
摘要: 手写一个高性能的rpc框架 模拟服务端,运行main函数,相当于启动服务器 public class ServerApplication { public static void main(String[] args) throws Exception { //开启服务端,然后等待客户端发出请求,然 阅读全文
posted @ 2020-03-11 19:23 lovejune 阅读(1544) 评论(0) 推荐(0) 编辑