沉淀再出发:web服务器和应用服务器之间的区别和联系 一.前言 关于后端,我们一般有三种服务器(当然还有文件服务器等),Web服务器,应用程序服务器和数据库服务器,其中前面两个的概念已经非常模糊了,但是在很多场合下面还是非常有用的,因此我们来辨析一下. 二.web服务器和应用服务器之间的区别和联系 2.1.大范围的划分     关于Kerstrel是否web容器,有两种观点: . 由于Kerstrel不提供编写应用的框架,所以它不是容器:asp.net core才是容器,因为它提供了开发应用的框…
沉淀再出发:jetty的架构和本质 一.前言 我们在使用Tomcat的时候,总是会想到jetty,这两者的合理选用是和我们项目的类型和大小息息相关的,Tomcat属于比较重量级的容器,通过很多的容器层层包裹提供了非常强大的web功能,但是可以自我定制的余地就非常小了,有的时候我们希望自己设计更多的请求接收,处理和返回的环节,就可以用更加轻量级的jetty了. 二.jetty的架构和原理 2.1.Jetty 的基本架构 Jetty 是一个Servlet 引擎,它的架构比较简单,是一个可扩展性和非常…
沉淀再出发:dubbo的基本原理和应用实例 一.前言 阿里开发的dubbo作为服务治理的工具,在分布式开发中有着重要的意义,这里我们主要专注于dubbo的架构,基本原理以及在Windows下面开发出来的实例来解释和介绍,从而使得dubbo不再神秘. 二.dubbo的架构和原理 2.1.dubbo的架构 Dubbo框架设计一共划分了10个层,而最上面的Service层留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层.左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提…
沉淀再出发:OpenStack初探 一.前言 OpenStack是IaaS的一种平台,通过各种虚拟化来提供服务.我们主要看一下OpenStack的基本概念和相应的使用方式. 二.OpenStack的框架和使用 2.1.OpenStack简介 OpenStack是一个由NASA(美国国家航空航天局)和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目.OpenStack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作.OpenStack支持几…
沉淀再出发:Spring的架构理解 一.前言 在Spring之前使用的EJB框架太庞大和重量级了,开发成本很高,由此spring应运而生.关于Spring,学过java的人基本上都会慢慢接触到,并且在面试的时候也是经常遇到的,因为这个技术极大地方便了我们的开发和部署,并且由此衍生出来的框架和思想在很多地方都有使用,比如Spring mvc,Spring boot,Spring cloud等等框架以及IoC和AOP这两个Spring最本质的思想.可以说一切的本质都是为了高内聚,松耦合,将不同的事物…
沉淀再出发:spring boot的理解 一.前言 关于spring boot,我们肯定听过了很多遍了,其实最本质的东西就是COC(convention over configuration),将各种框架组装起来,省去了我们配置各种框架的时间,是一种更高层次的封装和抽象,正如maven整合了很多的jar包一样,spring boot整合了很多的框架和操作,我们只需要简单的加载进来就可以使用了,这极大地方便了我们的程序开发效率. 二.spring boot的使用 2.1.Spring Boot核心…
沉淀再出发:Bean,JavaBean,POJO,VO,PO,EJB等名词的异同 一.前言 想必大家都有这样的困惑,接触的东西越多却越来越混乱了,这个时候就要进行对比和深入的探讨了,抓住每一个概念背后的核心,才能彻底的解决问题,形成自己的理念和道理. 二.Bean,JavaBean,POJO,VO,PO,EJB等名词的比较 2.1.Bean Bean的中文含义是“豆子”,Bean的含义是可重复使用的Java组件.所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成.外界不了解其内部信息和运…
沉淀再出发:kafka初探 一.前言 从我们接触大数据开始,可能绕在耳边的词汇里面出现的次数越来越多的就包括kfaka了.kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力.kafka是一个分布式消息队列,具有高性能.持久化.多副本备份.横向扩展能力.生产者往队列里写消息,消费者从队列里取消息进行业务逻辑.一般在架构设计中起到解耦.削峰.异步处理的作用. 二.kafka的使用 2.1.安装jre和zookeeper 在安…
沉淀再出发:Tomcat的实现原理 一.前言 在我们接触java之后,相信大家都编写过服务器程序,这个时候就需要用到Tomcat了.Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet.JSP 程序的首选. 二.Tomcat的基本原理 2.1.Tomcat的架构 Tomcat主要组件:服务器Server,服务Service,连接器Connector.容器Container.   连接器Connector和容器Containe…
沉淀再出发:jvm的本质 一.前言 关于jvm,使用的地方实在是太多了,从字面意思上我们都能明白这也是一个虚拟机,那么其他的虚拟机都会用来运行别的操作系统的,而jvm却是实现了可以在不用的操作系统之上运行同样的字节码文件,以此来实现代码的可移植性,大家可以看一下编译原理,就知道了jvm运行代码的本质其实是根据不同的平台将字节码文件(中间代码)变成最终适合不同平台的机器码.同时jvm中也有很多的概念,肯定也是和编译系统相关的了,数据和代码如何存储,数据分为哪几种数据,需要什么格式存储,堆栈等等,以…