自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(281)
  • 资源 (22)
  • 问答 (6)
  • 收藏
  • 关注

原创 RocketMQ存储层原理

1.1 topic、订阅组group、消费进度consumerOffset1.2 多个配置文件config,故障恢复的存储Checkpoint和Filelock1.3 记录主备备份Epoch/SNtopic对应多个逻辑分区(Partition),称为队列(MessageQueue)其中ConsumeOffset用于管理订阅组消费进度(如Map)RocketMQ采...

2022-07-02 19:42:16 485 1

原创 FastThreadLocal源码解析

Netty为什么要用自己的FastThreadLocal?threadLocal Hash冲突,检索时间长。Netty自己定义的fastThreadLocal用的是数组,直接数组下标检索快。下面以ftl作为FastThreadLocal的简称例子ftl只有在FastThreadLocalThread线程中运行才生效,不然会走SlowGet模式(jdk threadLocal方式)public class Demo { public static void main(String[] args

2022-05-28 16:47:01 293

原创 Tomcat长轮训原理解析

长轮询长轮询基于HTTP,用于数据更新的实时通知广泛用于中间件配置实时同步通知如Apollo、Nacos什么是长轮询客户端向服务器请求,服务器接到请求后hold住连接,并等待数据返回(Java可以用AsyncContext来实现,spring中可以用DeferredResult来hold住请求),直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。缺点:客户端需要一直保持着这个链接,相当于这个资源一直在占用着。Spring实现异步请求客户端发起请求到To

2022-05-14 19:59:25 548

原创 Apollo Server服务端解析

如需参考源码解析,请访问:https://gitee.com/lidishan/apollo-code-analysis阅读前声明:本文不做相关用法说明,只解析Apollo源码Apollo整体架构图Apollo服务端的核心作用在于什么?配置变更和发现配置变更与发现配置的变更与发现基于一张表处理ReleaseMessage实现步骤Admin Service发布配置后,插入数据到ReleaseMessage表数据格式:AppId+Cluster(集群名称)+NameSpace(命名空间)

2022-02-26 23:40:25 923

原创 Retry注解源码解析

@Retry注解是Spring提供的一个重试注解,使用简单(这里是为了分析其原理,其实个人认为guava的重试好用多了)。使用例子引入pom.xml依赖<dependency> <groupId>org.springframework.retry</groupId> <artifactId>spring-retry</artifactId> <version>1.3.1</version>&

2022-01-28 21:39:33 2100 2

原创 Transactional注解原理解析

什么是@Transactional? @Transactional是Spring这种用于处理事务的注解,基于拦截器进行commit或rollback使用例子下面举一个加了@Transactional注解的方法addUser(),并且调用了另一个隔离级别为NESTED的addUser2()方法@Servicepublic class UserService { // .. 省略其他 @Transactional public void addUser() {

2022-01-02 21:10:37 3999 1

原创 RocketMQ NameServer启动流程解析

具体分析可参考Gitee项目NameServer解析部分 =》代码地址什么是NameServer简易Topic路由注册中心,用于支持Broker的服务注册与发现。类似Dubbo的zookeeper主要能力Broker集群管理:管理Broker集群注册信息,心跳检测broker存活路由信息管理:保存Broker集群路由信息,然后producer、consumer通过nameserver获取路由信息进行投递、消费NameServer启动流程步骤创建controller解析命令及配置文

2021-11-30 22:52:14 1514

原创 RocketMQ调试环境搭建

参考资料:rocketmq那些事儿之本地调试环境搭建编译代码下载下载地址:Github地址单点部署执行步骤:先将三个xml文件拷贝到本地对应目录文件夹下。我这里放到D:\code\opensource\rocketmq\conf目录下,启动时会指定这个配置文件将broker.conf修改为如下(具体路径根据自己文件来)brokerClusterName = DefaultClusterbrokerName = broker-abrokerId = 0deleteWhen =

2021-10-05 20:34:57 212

原创 Hystrix执行目标与断路执行分析

依赖如下<dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>1.5.18</version></dependency>什么是Hystrix2018.11发布了最后一个版本,目前处理维护阶段,不再升级版本用途:停止级联故障。

2021-10-05 10:49:22 260

原创 Hystrix数据收集及滑动窗口机制解析

依赖如下<dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>1.5.18</version></dependency>什么是Hystrix2018.11发布了最后一个版本,目前处理维护阶段,不再升级版本用途:停止级联故障。

2021-09-27 21:46:29 1333

原创 Hystrix配置插件化源码解析

依赖如下<dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-core</artifactId> <version>1.5.18</version></dependency>什么是Hystrix2018.11发布了最后一个版本,目前处理维护阶段,不再升级版本用途:停止级联故障。

2021-09-04 17:38:24 3575

原创 Hystrix Plugins插件机制解析

Hystrix Plugins插件机制Hystrix通过SPI提供了插件扩展机制,有如下几种插件:HystrixConcurrencyStrategy:并发HystrixEventNotifier:通知HystrixMetricsPublisher:度量HystrixPropertiesStrategy:Properties配置HystrixCommandExecutionHook:回调函数HystrixDynamicProperties:配置以上插件都由HystrixPlugins统一

2021-08-22 22:57:39 4037

原创 TransmittableThreadLocal原理解析

theme: channing-cyanhighlight: a11y-dark参考文章:https://github.com.cnpmjs.org//alibaba/transmittable-thread-local/issues/123TransmittableThreadLocal是什么?TransmittableThreadLocal(简称TTL)是alibaba提供的一个工具包中的类,主要作用就是解决线程池场景下的变量传递问题。继承自InheritableThreadLocal主要用.

2021-08-21 00:42:55 4070 1

原创 TransmittableThreadLocal使用JavaAgent动态代理机制分析

本文不提及TTL的作用,仅从源码层面分析TTL是怎么使用JavaAgent来动态代理的依赖如下:<dependency> <groupId>com.alibaba</groupId> <artifactId>transmittable-thread-local</artifactId> <version>2.11.4</version></dependency>JavaAge.

2021-08-13 18:58:22 1399

原创 Apollo-client加载数据解析

如需参考源码解析,请访问:https://gitee.com/lidishan/apollo-code-analysis阅读前声明:本文不做相关用法说明,只解析Apollo-client源码阅读本文前请参考《Apollo-client 初始化入口流程解析》上面解析到了initialize()初始化,其是通过ConfigService.getConfig()来加载数据,那这个调用方式是怎么加载的?见下面实时获取apollo配置解析ConfigService.getConfig()如何使用?例子如下

2021-07-24 22:54:55 654 1

原创 Apollo-client 初始化入口流程解析

如需参考源码解析,请访问:https://gitee.com/lidishan/apollo-code-analysis阅读前声明:本文不做相关用法说明,只解析Apollo-client源码apollo中有一个注解,接下来先看一下这个启动注解@EnableApolloConfig 为什么要使用这个注解?系统启动时,会检索对应xml配置信息,并拉取apollo数据在postProcessAfterInitialization阶段进行覆盖配置注解初始化流程如下:第一步:在启动类上添加注解@

2021-07-24 22:51:49 1260 6

原创 Java插件扩展机制 - SPI

什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。其为框架提供了一个对外可扩展的能力。与 接口类-实现类 提供的RPC 方式有什么区别?传统的接口类实现形式为如下public interface AdOpFromApolloService {}public class AdOpFromDbServiceImpl implements AdOpFromDbService {}假设我们需要实现RPC,是怎么做的?RPC会在对应的接口

2021-07-24 17:05:21 691 2

原创 mybatis查询过程源码解析

本文只讲解mybatis的源码 ,不涉及过多的用法讲解,用法请百度。mybatis查询执行步骤(举SELECT分析)第一步:获取mapperProxy第二步:获取mapperMethod第三步:找到对应的执行类型(SELECT\UPDATE\INSERT\DELETE)第四步:查询前的缓存处理,判断是否需要从二级、一级缓存中取数据(先二级再一级)第五步:真正调用用jdbc调数据库,先预编译、再注入参数第六步:进行结果集解析填充...

2021-07-04 11:04:55 3738

原创 Guava cache源码解析

下面源码地址为:https://gitee.com/lidishan/guava-code-analysis/blob/master/guava/src/com/google/common/cache/LocalCache.java涉及依赖 <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId>

2021-07-02 23:57:29 421 1

原创 三色标记法及跨代引用

参考链接:https://www.jianshu.com/p/12544c0ad5c1、https://juejin.cn/post/6859931488352370702前言垃圾回收算法有标记整理、标记清除、复制等。但是垃圾怎么标记处理?这就涉及到标记算法,下面会仔细讲解三色标记算法三色标记法什么是三色标记法?垃圾回收过程大致如下:- 第一步:根据标记算法找到对应的待回收对象- 第二步:根据对应的回收算法如标记整理、标记清楚等来进行回收已标记好的待回...

2021-06-26 17:41:44 750

原创 ByteBuddy基本用法

ByteBuddy是一种字节码技术框架,其广泛用于中间件

2021-06-20 22:01:56 1968

原创 ThreadLocal原理解析

什么是ThreadLocal?ThreadLocal是线程本地副本,就是每个线程都会有自己私有的副本值,互不干扰。典型的一种空间换时间的做法。基本流程如下:第一步:首先通过threadLocal.set("xxxx")获取当前线程副本值-- 大体流程:获取当前线程->拿到当前线程的threadLocals变量->根据map是否有来设置值还是创建值第二步:通过threadLocal.get()直接获取当前线程的本地副本值-- 大体流程:获取当前...

2021-06-13 16:15:12 245

原创 线程池源码简析

本文不讲解线程池执行过程过状态的判断,如要阅读可留言索要源码分析代码基本流程:用一个AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNING, 0))的原子类来保存线程数量和线程池状态,共32位,高3位保存运行状态,低29位保存线程数量。其中根据运行状态和线程数量来判断是否需要添加工作线程池。然后调用addWork()创建工作线程Work,每个Work包含thread、firstTask、completedTasks。工作线程创建会调用r...

2021-06-05 01:01:42 471

原创 Xxl-Job调度器原理解析

项目解析源码地址:https://gitee.com/lidishan/xxl-job-code-analysisxxl-job版本:2.3.0Xxl-Job分为执行器、调度器。而我们平时的客户端就属于一个执行器,执行器启动的时候会自动注册到调度器上,然后调度器进行远程调度。调度器初始化过程步骤如下1 国际化相关配置参数: xxl.job.i18n=zh_CN,这里设置为中文简体2 初始化快线程fastTriggerPool、慢线程池slowTr...

2021-06-01 22:48:43 3534 1

原创 Xxl-Job执行器原理解析

xxl-job版本:2.3.0Xxl-Job分为执行器、调度器。而我们平时的客户端就属于一个执行器,执行器启动的时候会自动注册到调度器上,然后调度器进行远程调度。执行器初始化过程步骤如下1通过加了@Conguration注解的XxlJobConfig初始化,并生成beanName=xxlJobExecutor的Bean2注册的BeanName=XxlJobConfig,会进行初始化,步骤如下:-扫描所有bean,加载加了@XxlJob注解类,并记录在job...

2021-05-31 22:49:40 7682

原创 Spring @Configuration如何注入

业务代码一般用拦截器拦截注解,并作相应定义。但Spring的注解如@Conguration是通过XxxxPostProcessor来进行注入。@Configuration有独属的postProcessor处理器 -ConfigurationClassPostProcessor@Configuration作用及使用案例作用:类型以前的XML配置注入对应的Bean,将比如application.properties的属性注入到对应的Bean实体类使用案例(比如下面...

2021-05-29 21:48:22 2239

原创 Redis AOF持久化原理解析

Redis版本:Redis 4.0.1Redis是一个键值对数据库服务器,存储在内存中,如果重启没进行持久化,数据会丢失。所以需要持久化策略RDB和AOF。涉及Redis源码解析:https://gitee.com/lidishan/redis-source-code-analysis/blob/master/src/aof.cAOF与RDB的区别- AOF保存Redis所执行的写命令来记录数据库状态,RDB是直接保存键值对数据- AOF纯文本,RDB二进制...

2021-05-27 23:25:58 592 2

原创 Redis RDB持久化原理解析

Redis版本:Redis 4.0.1Redis是一个键值对数据库服务器,存储在内存中,如果重启没进行持久化,数据会丢失。所以需要持久化策略RDB和AOF。涉及Redis源码解析:https://gitee.com/lidishan/redis-source-code-analysis/blob/master/src/rdb.c前提知识归纳RDB用于保存和恢复数据库所有键值对使用save或bgsave报错,其中bgsave是fork子进程不会造成阻塞rdb文...

2021-05-23 11:54:25 384

转载 Apollo客户端源码解析

本节主要对 Apollo 客户端设计原理进行解析。设计原理简要描述了 Apollo 客户端的实现原理注册bean spring启动时调用bean初始化 获取namespace并初始化配置并写一份配置到文件中,开启线程长轮训+定时拉取配置 添加监听listener 扫描字段、方法转化成SpringValue,保存在SpringValueRegistry中 http长轮训+定时拉取服务端配置 更新SpringValue准备工作利用EnableApolloConfig...

2021-05-17 21:57:48 1025

原创 Redis服务端初始化流程

参考链接:https://redissrc.readthedocs.io/en/latest/init/server.html https://www.jianshu.com/p/1166288c6d32?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation https://bl...

2021-05-16 09:10:21 3638

原创 Redis对象及其类型与编码

Redis对象包含多种数据结构和类型,其组成如RedisObjecttypedef struct redisObject { unsigned type:4;// 类型:字符串、列表、哈希、集合、有序集合 /** * 编码:long类型的整数、embstr编码的简单动态字符串、简单动态字符串、字典、双端链表、压缩列表、整数集合、跳表 * ** 不同类型对应的编码 * **** 字符串:long类型的整数、embstr编码的简单动态字符串、简单...

2021-05-15 19:52:23 560

原创 Redis压缩列表ziplist的实现

参考链接:-- 《Redis设计与实现》-- 源码解析:https://www.cnblogs.com/yinbiao/p/11249161.html关键代码位置:src/ziplist.c数据结构概述说明:-ziplist是 列表list 或 hash 的底层实现之一,只有数据量小的时候才会用,举个例子如下:-- hash结构:键值均<64字节 && 键值对数量 < 512-目的是为了节省内存,在数据量少的时候就省内存。由一系列特...

2021-05-14 21:26:19 611

原创 Redis整数集合的实现

参考链接:-- 《Redis设计与实现》-- 源码解析:https://www.cnblogs.com/yinbiao/p/11249161.html--结构说明:https://redissrc.readthedocs.io/en/latest/compress-datastruct/intset.html关键代码位置:src/intset.c数据结构概述说明:-是集合的底层实现之一-底层实现是数组(连续的内存结构),有序、无重复-整数集合类型可升级(16位-&...

2021-05-09 18:36:46 678

原创 Redis跳表数据结构

参考链接:-- 《Redis设计与实现》-- 源码解析:https://www.cnblogs.com/yinbiao/p/11238374.html关键代码位置:src/ t_zset.c时间复杂度:O(logN)数据结构概述说明:-每个跳表层高1~32层-跳跃表是有序集合的实现之一-按照分值升序排序其核心结构源码如下:typedef struct zskiplistNode {// 保存当前跳跃表的节点信息 sds ele;...

2021-05-08 21:47:37 188

原创 Redis字典数据结构

参考链接:-- 源码解析:https://www.cnblogs.com/yinbiao/p/10766357.html--结构说明:https://redissrc.readthedocs.io/en/latest/datastruct/dict.html关键代码位置:src/dict.h字典是一种键值对映射,但C语言无这种数据结构,Redis自己实现了一套。另外字典是hash的底层实现之一。数据结构概述说明:- ht数组有两个元素,没有rehash情况下,默认...

2021-05-08 21:44:22 314

原创 Redis列表数据结构

关键代码位置:src/adlist.h列表作为一种常用的数据结构,Redis也有,其数据结构含:- 头节点、尾节点、节点值复制函数、节点值释放函数、节点值对比函数、链表长度记录、dup复制函数、free释放函数、match匹配函数相关函数如下(随便看下就好了):源码分析如下:typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 st...

2021-05-08 21:40:29 276

原创 RocketMQ设计原理简析

参考连接:https://github.com/apache/rocketmq/tree/master/docs/cn一、消息存储1消息存储整体架构CommitLog:消息主体以及元数据的存储主体(可包含多个topic)-- 定长,文件默认1G,文件名为20位,为偏移量的数值来命名。文件顺序写(性能几乎等于内存读)。---- 比如第一个文件名:00000000000000000000,由于第一个文件大小为1G=1073741824,第二个文件名应该为:00...

2021-04-27 23:05:43 286

原创 Skywalking启动加载过程

搭建文档:https://www.jianshu.com/p/ec8ef2b91e92本次讲解版本:apache-skywalking-apm-8.5.01 Skywalking整体架构主要组成:UI(数据显示)、Storage(存储层)、Agent(客户端数据收集)、OAP(服务端数据接受处理)2源码解析如下首先skywalking用的是javaagent技术,入口为:org.apache.skywalking.apm.agent.SkyWalkingAge...

2021-04-24 15:36:59 2203

原创 Redis常用数据结构及其场景归纳

1 mset、mget、msetnx批量处理字符串更新、获取、加锁场景:文章的标题、内容、作者等多个key 批量发布和查看(对于这种可以直接用序列化反序列化。。)2 strlen、getrange统计文章字数、预览文章(截取文章)场景:博客字数统计和文章预览3 append拼接字符串场景:日志拼接(也是很少用)4 hset、hget场景:记录生成次数5 lindex、lset、linsert、ltrim、lrem、lpus...

2021-04-18 10:30:11 551

原创 Redis String底层数据结构

参考链接: https://www.jianshu.com/p/160fb0f73841如想看源码就看上面的链接就好~~~~~~~~~~~~~~~~~~~1 Redis底层存储是一个hash结构,与HashMap差不多,都是一个数据+链表组成的,然后拉链法解决冲突2 其hash节点含key、value、next指针,如下:/** 哈希表节点*/typedef struct dictEntry {// 键void *key;// 值...

2021-04-18 10:23:13 1549

Linux高性能服务器编程.pdf

面向服务器的应用开发一直是Linux软件开发领域的重点,而Linux高性能服务器应用的开发则是重点中的难点,软件开发工程师们不仅需要深入钻研很多理论技术,还需要在实际的生产环境中积累经验。因此,不仅这方面的从业人员奇缺,而且这方面的图书资料也极为少见,本书算是弥补了这个领域市场的空白。作者将自己多年来从事Linux服务器端编程的经验进行了总结和梳理,从原理到实践,从底层的网络协议到上层的服务器性能优化与监测,系统地讲解了开发高性能服务器端应用的方法、技巧和编程思想。 全书一共分为三大部分:第一部分对Linux服务器编程的核心基础TCP/IP协议进行 了深刻的解读和阐述;第二部分对高性能服务器编程的核心要素进行了深入且全面的剖析,原理、技术与方法并重;第三部分从侧重实战的角度讲解了高性能服务器的优化与监测。

2018-12-18

Maven权威指南中文版pdf(高清带完整目录).pdf

Maven是一种构建工具,一种项目管理工具,一种用来运行构建任务的抽象容器。对于那些成熟的,希望用一致的方式来管理和构建大虽相互依赖的模块和类库,并且使用了数千第三方组件的项目来说,Maven已经证明了它是一一个不可缺少的工具。它帮助数百万的工程师从日常工作中减轻维护第三方依赖的负担,它帮助很多组织从构建管理的泥潭中挣脱出来,步入新的台阶,构建和维护软件所需要的工作不再是限制软件设计的因素。 本书首次尝试来全面解释Maven这一主题。它结合了所有之前Maven书籍作者的经验和工作,并且这还不是最终的结果,目前只是第一 一个版本而已,以后还会有更多的更新。虽然Maven已经出现有很多年了,但本书的作者们相信它还仅仅是刚开始兑现自己做的大胆的承诺。所有的作者,以及本书后面的公司,Sonatype', 相信本书的出版标志着围绕Maven变革和开发,以及其周围软件生态系统的一个新的阶段的开始。

2018-12-17

构建高性能Web站点(修订版).pdf

本书是畅销修订版,围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,几乎涵盖了Web站点性能优化的所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库IO优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。在这些内容中充分抓住本质并结合实践,通过通俗易懂的文字和生动有趣的配图,让读者充分并深入理解高性能架构的真相。同时,本书充分应用跨学科知识和科学分析方法,通过宽泛的视野和独特的角度,将本书的内容展现得更加透彻和富有趣味。

2018-12-16

TOMCAT权威指南(中文版).pdf

本书是-本万能工具,其主题涵盖了Apache Tomcat这广受欢迎的开源servlet、JSP容器和高性能的web server.《Tomcat权 威指南》对管理员和web站点管理员而言,具有较强的参考价值;对在开发或产品中要使用Tomcat作为web应用程序服务器的开发者而言,这是一本有用的指南书;对Tomcat感兴趣的人而言,这是一本优秀的介绍工具。 本书是最新Tomcat版本的更新,这是第二版,提供了关于servlet容器安装、配置、维护和安全防护的完整指南。实际上,鉴于具有如此多的最新信息,这本书本质上是一本新书,而不是原书的简单翻版。通过本书,您会了解到在所有主要操作系统(Windows、 Linux、 OS X、Solaris和FreeBSD) 上使用Tomcat的详细信息,包括关于Tomcat配置文件以及部署和运行web应用程序的交互建议的详细信息。

2018-12-16

架构探险 从零开始写Java Web框架.pdf

本书首先从一个简单的Web应用开始,让读者学会如何使用IDEA、Maven Git等开发工具搭建Java web应用:接着通过一个简单的应用场景,为该Web应用添加若干业务功能,从需求分析与系统设计开始,带领读者动手完成该Web应用,完善相关细节,并对已有代码进行优化:然后基于传统Servlet框架搭建一款轻量级Java Web框架,一-切都是从零开始,逐个实现类加载器、Bean容器、loC框架、MVC框架,所涉及的代码也是整个框架的核心基础。为了使框架具备AOP特性,从代理技术讲到AOP技术,从ThreadLocal技术讲到事务控制技术。最后对框架进行优化与扩展,通过对现有框架的优化,使其可以提供更加完备的功能,并以扩展Web服务插件与安全控制插件为例,教会读者如何设计款可扩展的Web应用框架。

2018-12-16

程序员的SQL金典(完整清晰版).pdf

第1章数据库入门11.1 数据库概述1 1.1.1 数据库与数据库管理系统11.1.2 数据库能做什么2 1.1.3主流数据库管理 系统介绍21.2数据库基础概念5 1.2.1 Catalog 512.2 表(Table) 61.23 列(Column) 7 12.4数据类型(DataType) 81.2.5 记录(Record) 9 1.2.6主键(PrimaryKey) 91.2.7索引(Index) 101.2.8 表关联 12 1.2.9数据库的语言一 SQL 131.2.10 DBA与程序员 ........... ...........

2018-12-16

大数据概念介绍.pdf

大数据的前景以及大数据在企业中的开发运用 大数据的前景以及在企业中的运用 编者话:这是一篇从大数据从业者角度看大数据的文章,主要面向对象是大数据学习,准备转行大数据的工程师,准备面试大数据工程师或者大数据初级入门等人员。所以没有过多地从技术层面分析大数据架构,而是从大数据工程师的实用的角度给出一些建议。

2018-12-16

深入分析Java Web技术内幕修订版书籍.pdf

本书园绕Java Web相关技术从三方面全面、深入地进行了阐述.首先介绍前端知识。主要介绍在JavaWeb开发中涉及的- .些基本知识。包括Web请求过程、HTTP. DNS技术和CDN技术。其次深入介绍了Java技术,包括1/O技术、中文编码问题、Javac 编译原理、class 文件结构解析。Classl oader工作机制及JVM的内存管理等。最后介绍了Java服务端技术。主要包括Servlet. Session 与Cookie. Tomcat 与Jety服务器、Spring 容器、iBatis 柜架和Vvelocity框架等原理介绍,并介绍了服务端的一些优化技术。本书不仅介绍这些技术和框架的工作原理,面且结合示例来讲解,通过通俗易懂的文字和丰富、生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。

2018-12-16

七周七并发模型_PDF电子书下载 带书签目录 高清完整版

先前的《七周七语言:理解多种编程范型》讲述了一个面向对象编程语言的故事,这是很适应当时的环境的。但在多核架构的驱动下.软件复杂度的增长和并发技术的发展所带来的压力,将函数式编程推到舞台之上,并对今后的编程方式有着深远的影响。Paul Butcher 是《七周七语言》最给力的审校者之一,相识四年后,我开始理解其中原因。

2018-12-16

《操作系统精髓与设计原理(原书第6版)》PDF中文版

操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。本书不仅全面地讲述了操作系统的基本概念、原理和方法,还清楚地展现了当代操作系统的本质和特点。全书分为八个部分,由浅人深地介绍了计算机系统、操作系统、进程描述和控制、线程、微内核、并发性、内存管理,虚拟内存、单处理器调度、多处理器和实时调度、vO管理和磁盘调度、文件管理、嵌人式操作系统、计算机安全技术以及分布式操作系统等内容。 本书内容丰富,具有很强的实用价值,适合作为高等院校计算机及相关专业本科生的操作系统课程教材,也可供专业技术人员参考。

2018-12-15

《算法导论》课后习题完整答案(包含思考题)

该书是一本十分经典的计算机算法书籍,与高德纳(Donald E.Knuth)的《计算机程序设计艺术》(The Art Of Computer Programming)相媲美。 《算法导论》由Thomas H.Cormen、Charles E.Leiserson、Ronald L.Rivest、Clifford Stein四人合作编著(其中Clifford Stein是第二版开始参与的合著者)。本书的最大特点就是将严谨性和全面性融入在了一起。

2018-12-15

Java面试宝典2017版

目录 HTML&CSS;部分... 1、HTML中定义表格的宽度用80px和80%的区别是什么?.... 2、CSS 样式定义优先级顺序是? 3、div 和span的区别? ........... 4、CSS选择器包括? 11 5、用Css3语法中,如何实现一个矩形框的圆角效果和50%红色透明效果?,请写出关键脚本. ...............................

2018-12-15

Java面试题总览

JAVA面试题总览, 包含如下: 1. JAVA中的几种基本数据类型是什么,各自占用多少字节。 2. String类能被继承吗,为什么。 3. String,Stringbuffer,StringBuilder的区别。 4. ArrayList和LinkedList有什么区别。 5. 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字 段,当new的时候,他们的执行顺序。

2018-12-15

swoole websocket实现五子棋

swoole实现的五子棋,详情及最新版请查看https://github.com/Lidisam/swoole-for-five-in-a-row

2017-05-11

swoole实现的你画我猜

以上是swoole实现的一个简单的你画我猜的小游戏,简单的用法可以到我的github上去看使用说明 https://github.com/Lidisam/swoole-for-nhwc

2017-03-28

swoole实现的websocket小推送

一直久仰swoole大名,但总忙于其他就没多研究,最近研究了下,以下是简单的推送实例

2016-12-21

nodejs简单留言板

环境要求:expressjs 4.* 功能:包含简单的增、查、删功能

2016-12-14

express mvc简单实例

超简单的小实例。适合小白,具体教程去看我的博客。

2016-07-30

nodejs基于express简易聊天室

nodejs基于express简易聊天室,搭建nodejs express环境,搭建方法在http://blog.csdn.net/qq_28666081/article/details/51308581 ,另外启动方法就是解压直接node app.js,其他的可以看看源码,本源吗来自:《nodejs权威指南》

2016-07-27

JS简易计算器

js实现简易计算器

2016-07-06

关于curl简单操作封装类

实现了curl常用的post请求,上传,获取验证码,下载图片操作的封装

2016-06-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除