自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

codezhuyc的博客

要是努力就好了

  • 博客(199)
  • 收藏
  • 关注

原创 (二)应用层协议、HTTP、电子邮件、DNS

目录一 应用层协议1.1 网络应用程序体系结构CS体系结构P2P体系结构1.2 进程通信客户和服务器进程进程与计算机网络之间的接口进程寻址1.3 可供应用程序使用的运输服务可靠数据传输吞吐量定时安全性1.4 因特网提供的运输服务TCP服务UDP服务因特网运输协议不提供的服务1.5 应用层协议二 Web和HTTP2.1 HTTP概况2.2 非持续连接和持续连接2.3 HTTP报文格式2.4 Web缓...

2020-05-21 21:50:18 1742 1

原创 ElasticSearch笔记(3)常用搜索用法

1.1 基于TermTerm是表达语义的最小单位。Term查询在ES中,Term查询对输入不作分词处理.所以是精确查询.因此不要用term查询去查text类型的字段。GET /ent_search/_search{ "query": { "term": { "xxx.keyword": {//查询多字段的keyword是可以的 "value": "...

2020-05-10 17:36:19 258

原创 MySQL45讲笔记(二)索引、锁、事务的可见性

一 索引索引是数据库中为了提高查询效率的一种数据结构。1.1 常见模型哈希表一种以键-值(key-value)存储数据的结构,当哈希冲突时,会产生链表适用于只用来等值查询的场景有序数组在等值查询和范围查询场景下都非常优秀缺点往中间插入数据时,必须挪动后面所有的记录。所以适用于静态存储引擎,数据表里的数据不会再修改了二叉搜索树二叉树是搜索效率最高的,但是实际上大多数的...

2020-05-07 15:37:09 626

原创 (一)计算机网络和因特网

目录一 因特网2.1 构成分组通信链路分组交换机因特网服务提供商ISP协议1.2 服务描述是一个平台1.3 协议二 网络边缘2.1 接入网家庭接入:DSL、电缆、FTTH、拨号和卫星企业(和家庭)接入:以太网和wifi广域网无线接入:3G和LTE2.2 物理媒体三 网络核心3.1 分组交换存储转发传输排队时延和分组丢失转发表和路由选择协议3.2 电路交换电路交换网络中的复用3.3 分组交换和电路交...

2020-05-04 16:39:06 1800

原创 MyBatis从入门到精通笔记(7)MyBatis插件

一 简介MyBatis提供了插件机制,我们可以在sql语句执行过程中拦截,进行自定义扩展。常用的拦截对象执行器Executor(update、query、commit、rollback等方法)参数处理器ParameterHandler(getParameterObject、setParameters方法)结果集处理器ResultSetHandler(handleResultSets、h...

2020-05-03 08:58:12 443

原创 ElasticSearch笔记(2)索引、分词、DSL、聚合

一 倒排索引1.1 什么是倒排索引类似一些书籍后面的Index(一般以字母排序),倒排索引(Inverted Index)也叫反向索引,有反向索引必有正向索引。通俗地来讲,正向索引是通过key找value,反向索引则是通过value找key1.2 核心组成单词词典(Term Dictionary)记录所有文档的单词,记录单词到倒排列表的关联关系倒排列表(Posting)记录了单...

2020-04-29 16:01:26 897

原创 MySQL45讲笔记(一)逻辑架构、redolog、binlog

目录一 MySQL逻辑架构图1.1 连接器小结1.2 查询缓存1.3 分析器1.4 优化器1.5 执行器执行过程参考一 MySQL逻辑架构图大体来说,MySQL可以分为Server层和存储引擎层两部分1.1 连接器负责和客户端简历连接、获取权限、维持和管理连接比如通过命令行连接到MySQL权限问题一个用户成功建立连接后,即使这个用户的权限修改了,也不会影响到已经连接的权限。小结...

2020-04-25 09:44:53 443

原创 MyBatis从入门到精通笔记(6)MyBatis缓存

目录一 简介二 一级缓存三 使用默认二级缓存3.1 全局配置3.2 配置效果/参数默认效果回收参数3.3 Mapper.xml中配置二级缓存注意脏数据注意和一级缓存共同生效3.4 Mapper 接口中配置二级缓存只使用了接口,没有映射文件同时使用了接口和映射文件使用参照缓存参考一 简介MyBatis的缓存有一级缓存和二级缓存。一级缓存默认开启(sqlsession级别);二级缓存默认不开启,...

2020-04-22 21:15:59 217

原创 ElasticSearch笔记(1)elk搭建与基本操作

目录一 介绍1.1 目录结构1.2 es安装集群安装1.3 kibana安装插件1.4 docker中安装ELK Stack参考一 介绍1.1 目录结构1.2 es安装参考:https://blog.csdn.net/msllws/article/details/102807605?depth_1-utm_source=distribute.pc_relevant.none-task&a...

2020-04-14 23:26:35 843

原创 MyBatis从入门到精通笔记(5)高级映射

目录一 一对一映射1.1 嵌套结果映射。1.2 resultMap 支持映射继承1.3 使用resultMap 的association 标签配置一对一映射1.4 association 标签的嵌套查询1.5 lazyLoadTriggerMethods 参数经常在一对一、一对多关系的场景下使用.当然上面的需求,也可以通过多次查询获取。如果是中小型应用还是用高级映射比较方便,但对于分库分表的应...

2020-04-12 22:08:36 192

原创 Netty(4)编解码器和粘包、拆包

一 自定义编解码器1.1 出入站处理ChannelHandler充当了处理入站和出站数据的应用程序逻辑的容器。例如,实现ChannelInboundHandler接口(或ChannelInboundHandlerAdapter),你就可以接收入站事件和数据,这些数据会被业务逻辑处理。当要给客户端发送响应时,也可以从ChannelInboundHandler冲刷数据。业务逻辑通常写在一个或者...

2020-04-07 21:02:06 490

原创 MyBatis从入门到精通笔记(4)动态SQL

目录一 简介二 if2.1 where中使用if2.2 update更新列中使用if2.3 insert时动态插入三 choose四 where、set、trim4.1 where4.2 set用法4.3 trim 用法五 foreach5.1 实现in集合5.2 标签属性5.3 collection的属性设置规则5.4 实现批量插入5.5 动态update六 bind七 多数据支持八 OGNL用...

2020-04-07 16:27:31 372

原创 MyBatis从入门到精通笔记(3)注解方式的用法

一 说明我觉得MyBatis最佳实践方式仍是配合xml。当然注解也有使用场景,我们简单了解下。二 @Select注解注解中的值可以传字符串或字符串数组我更喜欢数组方式,因为换行。代码更容易阅读 @Select({"select id,role_name roleName, enabled, create_by createBy, create_time createTime", ...

2020-04-07 11:05:32 168

原创 MyBatis从入门到精通笔记(2)XML方式的基本用法

现在大多数时候都是用SpringBoot来整合Mybatis了,很多细节也都被隐藏掉了。而XML是Mybatis最原始的用法,学习这些用法。有助于我们理解Mybatis的底层运行机制一 权限控制需求权限管理的需求:一个用户拥有若干角色,一个角色拥有若干权限,权限就是对某个资源(模块〉的某种操作(增、删、改、查),这样就构成了“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间、角色与...

2020-04-07 10:06:48 415

原创 SpringCloud整理(1)Eureka篇

本文主要记录一些总结,入门教程可以参考其他资料。本文基于Greenwich.SR5版本一 集群搭建正常情况下,我们肯定是要搭建集群的。搭建集群时,注意defaultZone配置项的地址,不能使用localhost。否则Eureka管理界面就不会有下面的信息server1server: port: 8001 #指定运行端口spring: application: name...

2020-04-07 09:14:52 181

原创 Netty(3)心跳检测、WebSocket、Protobuf

一 心跳检测当连接数很大时,我们想要释放部分空闲连接;或者连接已经断了但服务端没检测到。我们都可以使用Netty自动的心跳检测类IdleStateHandler来实现1.1 类介绍IdleStateHandler 是netty 提供的处理空闲状态的处理器.我们一般直接在ChannelInitializer中配置即可。该类会当channel一段时间没有执行读或写或读写时,触发一个IdleSta...

2020-04-02 18:33:11 2226

原创 MyBatis从入门到精通笔记(1)入门

一 创建maven项目项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo...

2020-03-30 09:19:57 198

原创 Netty(2)核心组件介绍、实现Http服务器

一 Netty实现HTTP服务1.1 需求Netty 服务器在 6668 端口监听,浏览器发出请求 "http://localhost:6668/ "服务器可以回复消息给客户端 "Hello! 我是服务器 5 " , 并对特定请求资源进行过滤.目的:Netty 可以做Http服务开发,并且理解Handler实例和客户端及其请求的关系.1.2 编写Channel的初始化类之前的Ch...

2020-03-28 09:59:03 441

原创 Netty(1)基本用法与介绍

目录一 介绍1.1 定义1.2 应用场景1.3 数据模型1.4 znode分类二 使用2.1 cli命令三 总体架构3.1 session3.2 Quorum模式3.3 数据一致性四 API4.1 方法说明4.2 代码异常处理4.3 watch一 介绍1.1 定义分布式协同服务系统,对协同服务进行抽象,得到一个高效可靠的原语集。1.2 应用场景配置服务DNS服务组成员管理分布式锁...

2020-03-26 22:55:06 324 1

原创 Spring Security的过滤器链

一 简介我们只要学过Spring Sercurity,就知道这个框架其实是靠多个过滤器来实现。过滤器是servlet规范中的一种组件。我刚学的时候,也会想SpringSecurity就是把多个过滤器直接放入了过滤器链吗?还是说做了其他处理?二 过滤器首先我们先复习一下servlet中的过滤器,看下在常见的Spring框架下是如何运行的。...

2020-03-23 11:57:49 2299

原创 Java核心技术36讲笔记(3)线程池、CAS、堆的结构

一 线程池1.1 常用线程池Executors目前提供了5种不同的线程池创建配置:newCachedThreadPool() ,它是一种用来处理大量短时间工作任务的线程池,具有几个鲜明特点:它会试图缓存线程并重用,当无缓存线程可用时,就会创建新的工作线程;如果线程闲置的时间超过60秒,则被终止并移出缓存;长时间闲置时,这种线程池,不会消耗什么资源。其内部使用SynchronousQueue...

2020-03-23 08:16:34 263

原创 zookeeper集群注意点

本文记录了学习过程中的部分知识点,部分知识点自己也没看懂。需要保持怀疑的态度一 Paxos二2.1 基于Raft的复制状态机系统架构下图展示了执行一条客户端写命令的过程(z←6表示把6写入z):客户端3发送一个状态机命令z< -6给服务器C的一致性算法模块。一致性算法模块把状态机命令写入服务器C的日志,同时发送日志复制请求给服务器A和服务器的一致性算法模块。服务器A和服务器B的...

2020-03-17 19:14:03 509

原创 redis笔记(3)哨兵模式

目录一 介绍1.1 客户端定义1.2 架构1.3 部署注意点1.4 小结二 客户端三 基本原理3.1 定时任务3.2 主观下线3.3 客观下线3.4 选举领导者哨兵节点3.5 故障转移3.6 整体流程3.7 问题整理四 配置与实践建议4.1 配置4.2 实践建议参考参考资料更加详细,本文是笔记和个人解读,可以用来参考,也加入了哨兵的缺点一 介绍Redis Sentinel,即Redis哨兵...

2020-03-17 11:15:57 463

原创 Java核心技术36讲笔记(2)String优化、动态代理、IO复制、线程状态以及注意点

目录一 String、StringBuffer、StringBuilderStringBuffer选择合适的初始化大小自动编译优化一 String、StringBuffer、StringBuilderString是一个不可变(Imutable)对象StringBuffer线程安全StringBuilder线程不安全(速度快)StringBuffer选择合适的初始化大小为了实现修改字...

2020-03-16 11:53:08 151

原创 RocketMq知识记录整理

目录一 文件过期策略详解二 读写分离注意点三 消费组说明四 广播模式五 消费进度六 新增消费组时从哪消费七 顺序消费一 文件过期策略详解默认情况下,无论是正常消息还是死信队列中的消息。都可能在3天后被清除参考:RocketMQ文件过期策略详解二 读写分离注意点默认不支持读写分离参考:RocketMQ 主从同步读写分离机制注意点rocketmq只保证消息至少被消费一次,所以消费进度...

2020-03-15 22:30:13 171

原创 AQS临界场景分析

一 背景之前在b站看了些AQS的视频。在看的过程中,总是在想:当遇到一些比较临界的场景时。AQS时如何保证并发安全的,于是就对这些场景进行模拟。通过debug来搞清楚逻辑,在实验前,有几点说明:之后的代码时基于jdk8公平锁(我觉得两个锁的区别不是很大`)我的理解中,并发编程时宏观上并行,微观上串行AQS中对一些关键字段(用来判断状态)作了volatile修饰,保证了只要数据被修改。就...

2020-03-09 22:32:11 477 2

原创 redis笔记(2)主从复制

目录一 作用和概述二 如何使用主从复制2.1 建立复制2.2 取消复制三 实现原理3.1 连接建立阶段步骤1-保存主节点信息步骤2-建立socket连接步骤3-发送ping命令步骤4-身份验证步骤5-发送从节点端口信息3.2 数据同步阶段3.3 命令传播阶段延迟与不一致!!!四 【数据同步阶段】全量复制和部分复制4.1 全量复制参考参考资料更详细,本文只是笔记和个人解读一 作用和概述主从复制...

2020-03-07 16:48:01 240

原创 redis笔记(1)持久化方式

目录一 持久化二 RDB持久化2.1 触发条件手动触发自动触发2.2 bgsave执行流程2.3RDB文件2.4 启动时加载2.5 RDB常用配置总结三 AOF持久化3.1 开启AOF3.2 执行流程参考本文主要是对参考资料的整理记录,加入一些自己的思考和理解。一 持久化主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。Redis持久化分为RDB持久化和AOF持久化:...

2020-03-04 20:01:24 204

原创 深入理解Java虚拟机笔记(一)JVM内存模型和先行发生原则

一 概述多任务处理在现代计算机操作系统中几乎已是项必备的功能了。 在许多情况下,让计算机同时去做几件事情,不仅是因为计算机的运算能力强大了,还有一个很重要的原因是计算机的运算速度与它的存储和通信子系统·速度的差距大大·,大量的时间都花费在磁盘IO、网络通信或者数据库访向上。二 硬件的效率与一致性物理计算机中的并发问题与虚拟机的情况很相似,具有相当大的参考意义。绝大多数计算任务都不可能只靠处...

2020-02-29 22:04:01 480

原创 深入拆解Java虚拟机笔记(3)对象的内存布局、垃圾回收的三种方式、Minor GC

一 Java对象的内存布局在 Java 程序中,我们拥有多种新建对象的方式。除了最为常见的 new 语句之外,我们还可以通过反射机制、Object.clone方法、反序列化以及Unsafe.allocateInstance 方法来新建对象。其中,Object.clone 方法和反序列化通过直接复制已有的数据,来初始化新建对象的实例字段。Unsafe.allocateInstance 方法则没...

2020-02-29 14:47:39 279

原创 深入拆解Java虚拟机笔记(2)JVM中的重载和重写/虚方法/反射机制

目录一 JVM执行方法调用过程1.1 重载1.2 重写1.3 JVM 的静态绑定和动态绑定重载加重写方法的符号引用解析结果1.4 调用相关的字节码指令二 虚方法动态绑定静态绑定方法表一 JVM执行方法调用过程示例:重载可变长参数方法void invoke(Object obj, Object... args) { ... }void invoke(String s, Object ob...

2020-02-13 20:17:39 455

原创 深入拆解Java虚拟机笔记(1)虚拟机介绍、类的加载

@toc(目录)一 Java 虚拟机具体是怎样运行Java 字节码的以标准JDK 中的HotSpot 虚拟机为例虚拟机视角从虚拟机视角来看,执行Java 代码首先需要将它编译而成的class 文件加载到Java 虚拟机中。加载后的Java 类会被存放于方法区(Method Area)中。实际运行时,虚拟机会执行方法区内的代码Java 虚拟机同样也在内存中划分出堆和栈来存储运行时数据Ja...

2020-02-11 21:46:54 192

原创 tomcat(3)web应用配置、管理配置、jvm配置

目录一 web应用配置1.1 简介1.2 ServletContext初始化参数1.3 会话配置1.4 Servlet配置1.5 监听器Listener1.6 Filter1.7 欢迎页和错误页面二 管理配置2.1 host-manager2.2 manager三 JVM配置参考一 web应用配置1.1 简介web . xml是web应用的描述文件,它支持的元素及属性来自于servlet规范...

2020-02-09 17:40:01 270

原创 tomcat(2)Jasper和服务器配置

目录一 Jasper引擎简介编译方式运行时编译编译结果预编译一 Jasper引擎简介对于基于JSP的web应用来说,我们可以直接在Jsp页面中编写Java代码 ,添加第三方的标签库,以及使用EI表达式。但是无论经过何种形式的处理,最终输出到客户端的都是标准的HTMI页面(包含js , css… ) , 并不包含任何的java相关的语法。也就是说 ,我们可以把jsp看做是一-种运行在服务端的脚...

2020-01-30 16:52:14 564

原创 SpringCloud(6)SpringCloud Config 分布式配置中心

目录一 简介面临的问题介绍SpringCloud Config分为服务端和客户端两部分。二 服务端demo配置文件部分创建服务端项目配置读取规则三 客户端demo步骤测试bootstrap.yml参考一 简介面临的问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行,所以一套集中式的、动态的配置管...

2020-01-29 20:14:12 180

原创 SpringCloud(5)zuul网关

目录一 简介二 demo三 路由访问映射规则四 更多用法参考/推荐阅读一 简介Zuul包含了对请求的路由和过滤两个最主要的功能:其中路由功能负责将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础过滤器功能则负责对请求的处理过程进行干预,是实现请求校验、服务聚合等功能的基础.Zuul和Eureka进行整合,将Zuul自身注册为Eureka服务治理下的应用,同时从Eurek...

2020-01-29 13:20:29 108

原创 tomcat(1)基础与架构

目录一 web概念资源分类web服务器常见web服务器软件二 tomcat简介下载目录结构源码环境HTTP原理三 Tomcat整体架构Http服务器请求处理Servlet容器工作流程整体架构四 连接器- Coyote架构介绍IO模型与协议Service组件coyote组件和谁对接EndPointProcessor五 容器-catalina(最大的)地位catalina结构Tomcat是怎么管理这些...

2020-01-28 20:06:16 457

原创 SpringCloud(4)Hystrix断路器

目录一 分布式系统面临的问题服务雪崩服务依赖的保护的3种解决方案二 简介设计原则特性流程说明三 熔断demo创建新项目@HystrixCommand注解@EnableCircuitBreaker四 feign整合FallbackFactory步骤参考一 分布式系统面临的问题复杂分布式体系结构中的应用程序有数十个依赖关系,每个依赖关系在某些时候将不可避免地失败。服务雪崩多个微服务之间调用的...

2020-01-28 12:42:58 173

原创 SpringCloud(3)Ribbon组件和Feign

目录一 Ribbon历史作用资料二 Ribbon配置初步pom修改修改yml增加注解@LoadBalanced启动类增加@EnableEurekaClient修改controller启动顺序与测试小结一 Ribbon历史Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供...

2020-01-27 15:35:12 169

原创 SpringCloud(2)Eureka组件

目录一 简介来历架构二 构建步骤部署服务注册中心pom依赖yaml启动类服务提供方注册pomyaml启动类新增注解服务发现通过DiscoveryClient 获取信息这里没看到如何整合消费端!!!三 actuator与注册微服务信息完善主机名称:服务名称修改访问信息有IP信息提示微服务info内容详细信息四 eureka自我保护机制五 集群配置原理步骤六 对比Zookeeper作为服务注册中心,E...

2020-01-24 19:47:09 141

空空如也

空空如也

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

TA关注的人

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