摘要: 概述 从入门Web开始一直在使用Tomcat,随着对网络相关的知识的进一步了解,觉得越有必有去阅读一下常用的开源服务器的整个工作流程,以及使用场景,对比几款服务器的优劣势、最终根据合适的业务场景进行优化。于是有了这一篇启动相关的源码分析,使用到的 Tomcat版本为 9.0.6 ,技术有限,难免出现 阅读全文
posted @ 2019-03-13 23:49 coding400 阅读(894) 评论(2) 推荐(1) 编辑
摘要: 1.概述 AQS( AbstractQueuedSynchronizer ) 是一个用于构建锁和同步器的框架,许多同步器都可以通过AQS很容易并且高效地构造出来。如: ReentrantLock 和 Semaphore都是基于AQS构建的,还包括CountDownLatch、ReentrantRea 阅读全文
posted @ 2019-02-28 22:55 coding400 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 1.概述 通过对AQS源码的熟悉,我们可以通过实现AQS实现自定义的锁来加深认识。 2.实现 1.首先我们确定目标是实现一个独占模式的锁,当其中一个线程获得资源时,其他线程再来请求,让它进入队列进行公平的等待。于是,我们用 Sync 代表子类,来实现 AbstractQueuedSynchroniz 阅读全文
posted @ 2019-02-28 22:55 coding400 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 前言 Rpc( Remote procedure call):是一种请求 - 响应协议。RPC由客户端启动,客户端向已知的远程服务器发送请求消息,以使用提供的参数执行指定的过程。远程服务器向客户端发送响应,应用程序继续其进程。当服务器正在处理该调用时,客户端被阻塞(它等待服务器在恢复执行之前完成处理 阅读全文
posted @ 2018-10-31 14:17 coding400 阅读(1171) 评论(1) 推荐(1) 编辑
摘要: 阻塞模式 IO 我们已经介绍过使用 Java NIO 包组成一个简单的客户端-服务端网络通讯所需要的 ServerSocketChannel、SocketChannel 和 Buffer,我们这里整合一下它们,给出一个完整的可运行的例子: 这里看一下新的线程需要做什么,SocketHandler: 阅读全文
posted @ 2018-10-24 21:02 coding400 阅读(1341) 评论(0) 推荐(0) 编辑
摘要: 前言 Navicat作为比较老牌的数据库连接工具知名度比较广,功能也比较完善,但对入门的广大初学者来讲,怎么去找安装的资源包是一大难题,虽然经过一些“渠道”能找到可以正常使用的绿色安装包,但从长期来讲不太合适,不可能每次官网更新之后,又得去找新的安装包?可能有人会说,那就用之前老版本的呀,但是我想说 阅读全文
posted @ 2018-09-27 21:52 coding400 阅读(13623) 评论(1) 推荐(0) 编辑
摘要: 1. Consul 是什么? Consul是一种多服务解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全服务网格。Consul需要数据平面并支持代理和本机集成模型。Consul附带一个简单的内置代理,因此一切都可以开箱即用,但 阅读全文
posted @ 2018-07-31 17:55 coding400 阅读(341) 评论(0) 推荐(0) 编辑
摘要: gRPC简介 gRPC是一种RPC框架技术,采用Protocal Buffers(协议缓存) 作为其接口定义的语言(就是Proto来写接口)和基础的消息交换格式。 在gRPC中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的方法,就像它是本地对象一样,使您可以更轻松地创建分布式应用程序和服 阅读全文
posted @ 2018-07-31 17:33 coding400 阅读(9899) 评论(0) 推荐(1) 编辑
摘要: 什么是Protocol Buffers? 官方翻译:协议缓冲区是Google的语言中立,平台中立,可扩展的机制,用于序列化结构化数据 - 像XML,但更小,更快,更简单。 您可以定义数据的结构化时间,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据。(类似xml,js 阅读全文
posted @ 2018-07-31 17:08 coding400 阅读(666) 评论(0) 推荐(0) 编辑
摘要: Mysql 吞吐量 吞吐量指的是单位时间内的事务处理数。常用测试单位是每秒事务数(TPS),有些采用每分钟事务数(TPM)。 响应时间或者延迟 这个指标用于测试任务需要的整体时间。根据具体应用,测试时间单位可能是微秒、毫秒、秒、分钟。根据不同的时间单位可以计算出平均响应时间、最小响应时间、最大响应时 阅读全文
posted @ 2018-07-19 11:37 coding400 阅读(268) 评论(0) 推荐(0) 编辑