手写MQ框架(三)-客户端实现】的更多相关文章

一.背景 书接手写MQ框架(二)-服务端实现  ,前面介绍了服务端的实现.但是具体使用框架过程中,用户肯定是以客户端的形式跟服务端打交道的.客户端的好坏直接影响了框架使用的便利性. 虽然框架目前是通过web的形式提供功能的,但是某的目标其实是通过socket实现,所以不仅需要有客户端,还要包装一下,让用户在使用过程中不需要关心服务端是如何实现的. 简单来说,就是客户端使用必须方便. 二.客户端实现 1.HttpUtil 目前客户端的核心功能是HttpUtil这个类,使用httpClient实现的…
一.背景 很久以前写了DAO框架和MVC框架,前段时间又重写了DAO框架-GDAO(手写DAO框架(一)-从“1”开始,源码:https://github.com/shuimutong/gdao.git)和MVC框架-GMVC(手写MVC框架(一)-再出发,源码:https://gitee.com/simpleha/gmvc.git). 之前也尝试过写RPC框架(源码:https://github.com/shuimutong/grpc_beta.git),客户端.服务端的方法调用写完了,但是网…
一.起航 书接上文->手写MQ框架(一)-准备启程 本着从无到有,从有到优的原则,所以计划先通过web实现功能,然后再优化改写为socket的形式. 1.关于技术选型 web框架使用了之前写的gmvc框架(手写MVC框架(一)-再出发),消息存储采用存在数据库的方式,使用的框架也是前段时间写的gdao(手写DAO框架(一)-从“1”开始 ). 2.项目搭建 项目本来是单项目的形式,但是考虑到将服务端.客户端分开不是很友好,所以采用了maven父子模块的形式. 其中,父pom配置如下: <?xm…
一.背景 书接上文手写MQ框架(三)-客户端实现,前面通过web的形式实现了mq的服务端和客户端,现在计划使用netty来改造一下.前段时间学习了一下netty的使用(https://www.w3cschool.cn/netty4userguide/52ki1iey.html).大概有一些想法. netty封装了socket的使用,我们通过简单的调用即可构建高性能的网络应用.我计划采用以下例子来对gmq进行改造. 本文主要参考:https://www.w3cschool.cn/netty4use…
-------前篇:手写DAO框架(二)-开发前的最后准备--------- 前言 上一篇主要是温习了一下基础知识,然后将整个项目按照模块进行了划分.因为是个人项目,一个人开发,本人采用了自底向上的开发. 本篇会介绍连接层的代码,包括三部分:pom配置.数据库连接和数据库连接池. pom配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSc…
续接前文 手写SpringMVC框架(二)结构开发设计 本节我们来开始具体方法的代码实现. doLoadConfig()方法的开发 思路:我们需要将contextConfigLocation路径读取过来的配置文件springmvc.properties加载到内存中来. 实现:使用properties及类加载器. 代码如下: import java.io.InputStream; import java.util.Properties; private Properties properties=…
手写SpringMVC框架 细嗅蔷薇 心有猛虎 背景:Spring 想必大家都听说过,可能现在更多流行的是Spring Boot 和Spring Cloud 框架:但是SpringMVC 作为一款实现了MVC 设计模式的web (表现层) 层框架,其高开发效率和高性能也是现在很多公司仍在采用的框架:除此之外,Spring 源码大师级的代码规范和设计思想都十分值得学习:退一步说,Spring Boot 框架底层也有很多Spring 的东西,而且面试的时候还会经常被问到SpringMVC 原理,一般…
-------前篇:手写DAO框架(一)-从“1”开始 --------- 前言:前篇主要介绍了写此框架的动机,把主要功能点大致介绍了一下.此篇文章主要介绍开发前最后的一些准备.主要包括一些基础知识点,和模块的拆分. 话说磨刀不误砍材工,知其然,还要只其所以然.因为很久没有学习相关的知识了,为了避免一些明显错误,所以先把相关基础知识了解一下. (因个人水平有限,如有纰漏,还请指出) 基础知识点 一.Statement和PrepareStatement 1.PrepareStatement a.预…
-------前篇:手写DAO框架(三)-数据库连接--------- 前言 通过上一篇写的方法,可以灵活的获取.释放数据库连接,拿到连接之后,我们就可以执行sql了!所以,本篇介绍的就是SQL执行器. SQL执行器主要功能就是执行sql,返回结果.如新增.更新.删除.查询,其中也涉及到了事务的开启.关闭.回滚. 这一层的定位是为接下来的DAO层提供底层支持,同时也支持自行编写SQL进行直接调用. 涉及技术 本篇主要涉及技术有:泛型.匿名内部类. 泛型 说到泛型,先简单的对比一下python和j…
我们从两个方面了解springmvc执行原理,首先我们去熟悉springmvc执行的过程,然后知道原理后通过手写springmvc去深入了解代码中执行过程. (一)SpringMVC流程图 (二)SpringMVC流程 1.  用户发送请求至前端控制器DispatcherServlet. 2.  DispatcherServlet收到请求调用HandlerMapping处理器映射器. 3.  处理器映射器找到具体的处理器(可以根据xml配置.注解进行查找),生成处理器对象及处理器拦截器(如果有则…