Coder Social home page Coder Social logo

kun3375.github.io's People

Contributors

kun3375 avatar

Watchers

 avatar

kun3375.github.io's Issues

MySQL 主从复制 | 码路狂飙

https://caoziye.top/2019/01/MySQL-%E4%B8%BB%E4%BB%8E%E5%A4%8D%E5%88%B6/

最近工作也比较忙,很久没有写新的日记了。开始重新整理一下知识点,先找一个有意思点开始吧。 复制原理这个原理其实十分简单,只要搜索一下,那些搜索引擎就会给出图示和合理的答案: 主库开启二进制日志(或者叫主机日志)bin-log。这会使得数据库在更新时记录下它的操作动作。 从机开启 slave 模式,使用一个 IO 线程去请求 master 的数据,记录在中继日志 relay-log 中;maste

SpringKafkaListener 增效 | 码路狂飙

https://caoziye.top/2019/04/SpringKafkaConsumer-%E5%A2%9E%E6%95%88/

通过 spring-kafka 的集成,我们可以通过注解 @KafkaListener 以及 spring.kafka.consumer 相关配置轻松的管理 kafka 消费。但是消费速度往往仍然不够理想,需要进一步调整。 在 kafka 的实现中,某个 topic 的 partition 即分区的数量,基本上决定在这个 topic 下的最大并发程度。因为客户端的数量是受限于 partition

TCP 头部选项的理解 | 码路狂飙

https://caoziye.top/2019/10/TCP-Options/

TCP OptionsTCP 报头通常包含 20 字节信息。但是同时可以携带额外的选项用来说明额外的信息(下图 Options)。 每一组选项包含 1 个字节的类型标识,1 个字节的长度声明,n 个字节的具体数据,最大不超过 40 字节。 Kind Length Value 1 Byte 1 Byte (Length - 2) Bytes 以下是典型的几个选项说明: Kin

RocketMQ Consumer 摘要 | 码路狂飙

https://caoziye.top/2018/08/RocketMQ-Consumer-%E6%91%98%E8%A6%81/

结束了对 RocketMQ 组件的初步理解以及配置的简单设定,可以对 RocketMQ 仔细研究一番了。先来看看 RocketMQ 的消费者实现,以及服务端是如何处理消费者客户端的请求,把消息送出去的。 RocketMQ 对于消费者客户端,支持推模型和拉模型。对于推模型,由消息服务端作为主动方,向客户端推送消息(尽管其本质是一个长轮询式的拉模型实现);而拉模型由客户端主动拉取消息。

实现 MyBatis 插件 | 码路狂飙

https://caoziye.top/2018/07/%E5%AE%9E%E7%8E%B0-MyBatis-%E6%8F%92%E4%BB%B6/

MyBatis 作为一个目前很常用的持久化框架,有着丰富的拓展。这些拓展功能常常以插件的形式嵌入到 MyBatis 的运作流程之中,而如何制作实现一个插件?MyBatis 已经为大家设计好了,一个 Interceptor 接口,实现它就够了。 Interceptor 接口的拦截目标,是 MyBatis 运作流程中的几个核心组件: Executor:这是 MyBatis 执行器,控制着所有和数据库

RocketMQ Producer 摘要 | 码路狂飙

https://caoziye.top/2018/08/RocketMQ-Producer-%E6%91%98%E8%A6%81/

上一篇介绍完了 RocketMQ 消费者的默认实现,现在来瞅一瞅生产者的用法。 设置必要的属性同样的,是 DefaultMQProducer,新建实例之后,在使用生产者发送消息之前,需要初始化几个属性: InstanceName 实例名称这是为了当一个 JVM 上启动了多个生产者时,区分不同的生产者实例,系统默认名称为 DEFAULT RetryTimesWhenSendFailed 重试次数当

Netty ByteBuf 相关参数意义 | 码路狂飙

https://kun3375.com/2020/02/Netty-ByteBuf-%E7%9B%B8%E5%85%B3%E5%8F%82%E6%95%B0%E6%84%8F%E4%B9%89/

这里仅记录一下 ByteBuf 相关的一下内存配置参数和默认情况,分析一下 Allocator 的组成,为分析 ByteBuf 做一些概念上的铺垫。 首先看几个 PooledByteBifAllocator 中的静态变量,挑了几个说明一下: 12345678910// 默认的 arena 数量,一个对应 HeapBuf 一个对应 DirectBufprivate static final int

AQS 浅析 | 码路狂飙

https://caoziye.top/2018/07/AQS-%E6%B5%85%E6%9E%90/

java.util.concurrent 包中提供了许多易用而有效的工具类,诸如 ReentrantLock,CountDownLatch,Semaphore 等等,给日常的并发编程带来了许多便利。他们都使用了同样的框架来完成基本的同步过程:AbstractQueuedSynchronizer (AQS)来实现基本功能,比如获取资源和释放的步骤。

ES 操作-索引管理 | 码路狂飙

https://caoziye.top/2018/09/ES-%E6%93%8D%E4%BD%9C-%E7%B4%A2%E5%BC%95%E7%AE%A1%E7%90%86/

新建索引新建索引很简单,但是需要注意的是: ES 中索引名称不能包含大写字母 不能再次 PUT 一个已经存在的索引 ES 默认给索引设置 5 个分片和 1 个副本,该值可以通过 setting 参数域进行修改。其中副本数在索引创建之后支持修改,而分片数无法修改!12345678910PUT /person# 可选项,不附加请求体的情况下统一使用默认值{ "settings": &

Docker 挂载与数据存储 | 码路狂飙

https://caoziye.top/2018/07/Docker/

Docker 镜像是层层分离的,分为只读的底层和可读写的当前层。容器在运行时候如果有文件改动,会自动从含有该文件的底层拷贝并更新在当前层。如果容器在 commit 之前被销毁,那么有这个镜像重新生成的容器是不包含改动的内容的。

G1GC 解读 | 码路狂飙

https://caoziye.top/2019/06/G1GC-%E8%A7%A3%E8%AF%BB/

之前对 G1 之前的垃圾回收器进行了整理《JVM 垃圾回收器小记》,但是留下了 G1 的坑长久未填,现在把相关的概念、配置参数以及 G1 的流程进行了整理。 基本概念Region不同于之前的垃圾回收按照连续的物理内存空间进行划分产生 Yong、Tenured、MetaSpace 区域并使用分代垃圾回收处理。G1 将整个堆空间切分成若干个小型的区域 Region 来存放对象,每个 Region 可以

Ribbon 摘要 | 码路狂飙

https://caoziye.top/2018/07/Ribbon/

主要构成Ribbon 是由 netflix 开源的一个客户端负载均衡组件。从客户端的角度取维护服务间请求的负载均衡,并进行一定的容错处理。自然的它的核心接口就是:com.netflix.loadbalancer.ILoadBalancer。 在配置 Ribbon 之前,了解一下 Ribbon 完成负载均衡的几个重要组成部分: IRule:负载均衡的策略。 IPing:检测服务存活的策略。 Ser

RocketMQ 服务端消息过滤 | 码路狂飙

https://caoziye.top/2018/08/RocketMQ-%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%B6%88%E6%81%AF%E8%BF%87%E6%BB%A4/

在服务端进行消息过滤,可以减少不必要的流量,提高带宽利用度和吞吐量。RocketMQ 支持多种方式来进行服务端的消息过滤 消息使用 Tag 标签作为一条 Message,它有着特定的 Topic,同时也可以指定唯一的 Tag 标记子分类。消费方在订阅消息时候,Broker 可以在指定 Topic 的 ConsumeQueue 下按 Tag 进行过滤,只从 CommitLog 中取出 Tag 命中的

ES 分片路由 | 码路狂飙

https://caoziye.top/2018/10/ES-%E5%88%86%E7%89%87%E8%B7%AF%E7%94%B1/

分片路由ES 在创建新文档时候时如何选择具体存储在哪个分片上?这就是一个文档分片路由的机制。ES 使用路由值(routing)的哈希散列进行分片的路由:index_of_shards = hash(routing) % num_of_shards。 ES 查询请求过程假设在一个多分片的 ES 进行查询,会有以下几个步骤: 请求被某个节点接受 接受请求的节点将该请求广播到所有节点 每个分片进行搜索

JVM 垃圾回收器小记 | 码路狂飙

https://caoziye.top/2019/02/JVM-%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8%E5%B0%8F%E8%AE%B0/

能力各异的垃圾回收器SerialSerial 收集器是一个新生代串行垃圾回收器,单线程执行,使用复制算法,整个流程会 STW。在单核环境下可能会不存在线程切换的问题而有略高的效率。也是之前 client 模式下的默认垃圾回收器。 ParNewParNew 收集器是一个新生代并行垃圾回收器,多线程执行,使用复制算法,整个流程会 STW。除了使用多个线程进行垃圾回收之外,其余和 Serial 一致。

网络配置参数和调优的一些总结 | 码路狂飙

https://kun3375.com/2019/10/%E7%BD%91%E7%BB%9C%E9%85%8D%E7%BD%AE%E5%8F%82%E6%95%B0%E5%92%8C%E8%B0%83%E4%BC%98%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%BB%E7%BB%93/

内核配置先来了解几个关于网络的内核配置。 目录以 CentOS 7 为例,目录 /proc/sys/ 存放着内核相关配置,其中网络相关的主要集中在 /proc/sys/net/core/、/proc/sys/net/ipv4/、/proc/sys/net/ipv6/ 几个目录下。在这几个目录下,不同参数名称对应一个文件,修改文件值可以调整对应参数。 同时,想要修改 /proc/sys/ 下参数也可

虚拟机中的锁膨胀 | 码路狂飙

https://caoziye.top/2018/06/%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%AD%E7%9A%84%E9%94%81%E8%86%A8%E8%83%80/

尽管当下几乎所有的服务器环境都以集群为主,在考虑并发问题的时候通常会使用分布式技术,如 redis 等中间件来维护全局的资源和锁。但是对于一些实例层面上的资源,依旧需要使用传统的锁来维护。所以我觉得,理解 JVM 对锁的处理还是有价值的。 JVM上针对锁的处理(这里只描述内部锁,即 synchronized 的处理情况),除了有自旋锁,锁粗化,锁消除等简单的自动优化机制(不探讨啦),还可以从锁的维

ES 数据类型、元字段与映射 | 码路狂飙

https://caoziye.top/2018/11/ES-%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%85%83%E5%AD%97%E6%AE%B5%E4%B8%8E%E6%98%A0%E5%B0%84/

在 ES 中所有的字段都是由映射规则所控制,这将输入的数据信息转化成对应的数据格式来进行索引或保存。配置合理的映射规则有助于维护文档,增加操作效率。在了解映射相关配置之前需要了解一下 ES 的数据类型和元字段的意义。 字段类型 text文本类型,十分常用的类型,通常作用于需要被全文检索的字段上。这样的字段内容会被分词器拆成词项后生成倒排索引,它不用于排序,也很少用于聚合。 keyword关键字类型

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.