自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

fanfan4569的博客

我有两把键盘,一把用来编织世界,一把用来剖析心灵

  • 博客(445)
  • 资源 (1)
  • 收藏
  • 关注

原创 Kafka 为什么那么快?

那 为什么这么快?如何做到这个高的性能?本篇文章主要从这 3 个角度来分析:先来看下生产端发送消息, 做了哪些优化?先来回顾下 生产者发送消息的流程:首先指定消息发送到哪个 。选择一个 的分区 ,默认是轮询来负载均衡。找到这个分区的 。与所在机器的 的 建立通信。发送 自定义协议格式的请求(包含携带的消息、批量消息)。将思绪集中在消息发送时候,可发现这两个华点:批量消息和自定义协议格式。批量发送:减少了与服务端 处理请求的次数,从而提升总体的处理能力。自定义协议格式:序列化方式和压缩格式都能减

2022-10-21 16:34:16 228 1

原创 【Feign】服务调用安全问题

一、前言微服务之间需要通信,属于内部通讯,同时会有一些安全问题:内部接口不能被外部访问。在传统微服务中,内部通讯默认为安全,不需要鉴权。在工作中,一个外部请求转换内部请求如图:所有的请求通过 api 网关进入,转换为内部请求,会有如下场景:外部请求经过 api 网关,进行鉴权:例如用户登录 token 机制外部请求经过 api 网关,无需鉴权:例如获取平台公共信息,将对应接口地址放入 ignore-urls 配置中内部请求,默认可信,一般不经过网关,由其调用服务进行负载均衡去直接调用

2022-05-01 00:18:42 2027

原创 [wireshark]之 抓包 JDBC

一、实战万物通讯皆可抓环境准备:# 创建数据库CREATE DATABASE test;# 创建表CREATE TABLE IF NOT EXISTS `test`( `id` INT UNSIGNED AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL COMMENT '名字', PRIMARY KEY ( `id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;主要实验:通过 JDBC 插入单

2021-03-12 16:03:50 1140

原创 [wireshark] 之 一个 POST 请求会发多少个请求

文章目录一、概述二、实验(1) 启动服务,端口 8081(2)启动 `wireshark`,过滤对应端口一、概述又看到这篇文章:https://juejin.cn/post/6844903433674178574这边篇文章的结论是:GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200 (返回数据);对于 POST,浏览器先发送 header,服务器响应 100

2021-03-12 11:25:58 1107

原创 [小设计] 之 抽奖算法

文章目录一、概述二、抽奖算法(1)所有数 `random`(2)抽样算法(3)`shuffle` 算法(4)分区算法一、概述应用场景:抽奖活动开奖,可以是手动开奖和定时开奖。抽奖这种活动需要尽可能的公平。算法分为三个部分:Input 输出输入参数:活动参与者列表、奖品数Process 处理选择出中奖人Output 输出中奖名单二、抽奖算法想到的算法有:所有数 random抽样算法shuffle 算法分区算法(1)所有数 ran

2021-01-31 23:15:24 1793 1

原创 【小设计】之 字段排序

文章目录一、需求二、设计实现三、其他设计一、需求需求:可以自定义排序可以将一个记录移动到另一记录的上方或下方可以置顶原型,如下:姓名手机号操作(排序)滴滴+86-13444444444移动啦啦+86-13444444445移动 置顶哈哈+86-13444444446移动 置顶嘻嘻+86-13444444447移动 置顶二、设计实现数据库中,增加 order 字段来标识排序,order_time 辅助排序。数据库设计:

2020-11-12 15:33:09 1283

原创 【Kafka】之 nginx_kafka_module(20.1)

文章目录一、需求二、实现思路三、实现一、需求使用 Kafka 做日志收集。用户点击 HTML,Nginx 用于收集用户的点击数据流,记录日志 access.log,将 Nginx 收集的日志数据发送到 Kafka 主题:tp_individualTips:需要收集的信息:用户ID(user_id)时间(act_time)操作(action,可以是:点击:click,收藏:job_collect,投简历:cv_send,上传简历:cv_upload)对方企业编码(job_code)

2020-09-21 20:06:59 781

原创 【Tomcat】之 总体架构(1.2)

一、请求处理大致过程(1)原始Tomcat 是一个 Http 服务器能够接收并且处理 http 请求, 所以 tomcat 是一个 http 服务器使用浏览器向某一个网站发起请求, 发出的是 Http 请求, 那么在远程, Http 服务器接收到这个请求之后, 会调用具体的程序(Java类)进行处理, 往往不同的请求由不同的 Java 类完成处理。如图:如果 HTTP 服务器(tomcat)直接调用业务处理类完成业务处理的话存在一定问题:tomcat 和 业务类耦合在一起了。

2020-09-13 21:44:55 180

原创 【Redis】之 搭建集群三主三从 / 动态(20)

文章目录一、需求二、思路三、实现步骤(1) 搭建集群(三主三从)1)`Redis` 安装2)搭建集群(2)动态添加一主一从(`7007` 和 `7008`)1) 添加主节点2)添加从节点(3)写 `JedisCluster` 访问集群一、需求需求如下:搭建 Redis 5.0 集群,要求三主三从添加一主一从(Master4 和 Slave4)通过 JedisCluster 向 RedisCluster 添加数据和取出数据二、思路思路如下:搭建集群(三主三从)另起2个服务(70

2020-09-09 20:06:43 367

原创 【Hbase】之 好友关系(20)

文章目录一、需求二、实现思路三、实现代码四、实验结果一、需求需求:在社交网站,社交 APP 上会存储有大量的用户数据以及用户之间的关系数据。比如: A用户的好友列表会展示出他所有的好友,现有一张 Hbase 表,存储就是当前注册用户的好友关系数据。使用 Hbase 相关 API 创建一张结构如上的表删除好友操作实现(好友关系双向,一方删除好友,另一方也会被迫删除好友)例如:uid1 用户执行删除 uid2 这个好友,则 uid2 的好友列表中也必须删除 uid1二

2020-09-03 03:07:41 734 4

原创 【Azkaban】之 作业依赖并定时调入hive表(20)

文章目录一、需求二、数据准备(1)`Hive` 表三、开发思路四、开发步骤五、结果一、需求现有用户点击行为数据文件,每天产生会上传到 hdfs 目录,按天区分目录。现在需要每天凌晨两点定时导入 Hive 表指定分区中,并统计出今日活跃用户数插入指标表中。日志文件 clicklog用户点击行为数据,三个字段是用户 id, 点击时间,访问页面userId click_time indexuid1 2020-06-21 12:10:10 a.html ui

2020-09-03 03:04:08 1196

原创 【Zookeeper】之 实现简易版配置中心(动态连接数据库)

基于 Zookeeper 实现简易版配置中心一、需求创建一个Web项目,将数据库连接信息交给Zookeeper配置中心管理即:当项目Web项目启动时,从 Zookeeper 进行 MySQL 配置参数的拉取要求项目通过数据库连接池访问MySQL(连接池可以自由选择熟悉的)当 Zookeeper 配置信息变化后 Web 项目自动感知,正确释放之前连接池,创建新的连接池二、实现思路总体思路:启动 SpringBoot 项目启动时,从 Zookeeper 拉

2020-08-31 09:37:46 1727

原创 【Impala】之 作业 - 用户连续点击打标(20)

题目:根据需求统计指标文章目录一、需求(1)业务背景(2)需求二、实现(1)加载数据(2)思路(3)实现步骤一、需求(1)业务背景现有收集到用户的页面点击行为日志数据,数据格式如下:用户id, 点击时间user_id click_timeA,2020-05-15 01:30:00A,2020-05-15 01:35:00A,2020-05-15 02:00:00A,2020-05-15 03:00:10A,2020-05-15 03:05:00B,2020-05-15 02:0

2020-08-26 19:24:38 357

原创 【Hive】之 作业-3连贯队伍(20.1)

题目:找出全部夺得3连贯的队伍数据集如下:team,year活塞,1990公牛,1991公牛,1992公牛,1993火箭,1994火箭,1995公牛,1996公牛,1997公牛,1998马刺,1999湖人,2000湖人,2001湖人,2002马刺,2003活塞,2004马刺,2005热火,2006马刺,2007凯尔特人,2008湖人,2009湖人,2010创建表 和 导入数据create table t1( team string, year

2020-08-23 18:06:39 486

原创 【Hive】之 概述(一)

一、Hive 简介Hive 是基于 Hadoop 的一个数据仓库工具, 可以将结构化的数据文件映射为一张表(类似于 RDBMS 中的表), 并提供类 SQL 查询功能;Hive 是由 Facebook 开源, 用于解决海量结构化日志的数据统计。Hive 本质是: 将 SQL 转换为 MapReduce 的任务进行运算底层由 HDFS 来提供数据存储可以将 Hive 理解为一个:将 SQL 转换为 MapReduce 任务的工具数据仓库(Data Warehouse)是一个面向主题的、集成的、

2020-08-23 18:03:07 227

原创 【ELK】之 Logstash &Filebeat 收集日志

一、Filebeat 配置filebeat.prospectors:# 一台机器上部署多个应用服务,1个filebeat收集这些应用服务的日志# type对应一个应用服务,并填写 `fields.source`来标识是哪个服务- type: log enabled: true include_lines: ['^\[ERROR', '^\[WARN'] multiline: pattern: '^\[' negate: true match: after p

2020-07-31 23:40:00 977

原创 【Elasticsearch】之 编译源码

挑选对应版本, 从release中选择:https://github.com/elastic/elasticsearch/releasesElasticsearch 版本:6.1.2环境准备:Java 8零、国内镜像加速修改配置(可不修改)$ cd elasticsearch-6.1.2/benchmarks$ vim build.gradle buildscript { repositories { maven { url 'http

2020-06-24 10:01:38 1163

原创 【JVM】之 动手模拟 FullGC

文章目录一、环境二、分析(1)代码片段1(2)代码片段2(3)代码片段3一、环境public class Demo { public static void main(String[] args) { byte[] array1 = new byte[4 * 1024 * 1024]; array1 = null; byte[] array2 = new byte[2 * 1024 * 1024]; byte[] array

2020-05-25 00:14:56 1237 3

原创 【JVM】之 动手模拟 老年代GC

文章目录零、背景简介一、前半部分代码gc日志分析(1)分析二、后半部分gc日志分析(2)分析(3)分析 GC日志回顾下,对象进入老年代的 4 个常见的时机:躲过15次 GC,年龄达到 15岁时。动态年龄判定规则,如果Survivor区域内年龄1 + 年龄2 + 年龄n 的对象总和大于 Survivor区的50%,此时年龄n以上的对象会进入老年代,不一定要达到15岁如果一次 Young GC后存活对象太多无法放入Survivor区,此时直接计入老年代大对象直接进入老年代零、背景简介本主题

2020-05-25 00:10:10 382

原创 【JVM】之 动手模拟 YoungGC

文章目录一、动手模拟`YoungGC`(1)示例代码(2)运行过程(3)运行后,分析gc日志二、GC日志说明(1)堆使用情况一、动手模拟YoungGC以下是 :JDK 1.8版本// JVM 参数运行-XX:NewSize=5242880 -XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:SurvivorRatio=8 -XX:PretenureSizeThreshold=1048576

2020-05-17 19:01:53 882

原创 【K8s】之 10. Pod基本用法

一、简介一个 Pod 是 Kubernetes 最基本的构建单元,也是最小、最简单的构建单元。Pod 也是扩缩容的基本单位,Kubernetes 的扩容和缩容都是直接对 Pod 进行操作的,直接增加 Pod 或是减少 Pod。一个 Pod 包含一个应用容器(有的时候有多个)、存储资源、唯一的网络 IP、以及其它容器运行所必须的资源。Pod 在 Kubernetes 集群中主要有两种使用方式:运行一个单独的容器:这是最常用的方式;在这种情况下,可以认为一个 Pod 封装了一个单独的容器,Kuber

2020-05-17 10:10:19 1060

原创 【Docker】之 Namespace 和 Cgroups

文章目录零、简介(容器其实是一种特殊的进程而已)一、`Namespace` 资源隔离(1)6种 `Namespace` 隔离(2)`Namespace` 操作二、`Cgroup`零、简介(容器其实是一种特殊的进程而已)一、`Namespace` 资源隔离(1)6种 `Namespace` 隔离(2)`Namespace` 操作二、`Cgroup`三、容器的创建过程(1)系统调用`clone`创建新...

2020-04-25 14:48:16 641

原创 【seafile】之 预览电子发票PDF显示不全问题

文章目录一、问题来源二、解决三、题外话近期在处理网盘和在线文件相关问题,面对的事比较多且杂,记录下。问题:seafile自身预览PDF文件,部分不显示图片显示如下:一、问题来源seafile版本:7.0.5原因:原文件pdf,字体没有嵌入,所以需要本系统的字体渲染seafile 使用 pdf.min.js,而把对应map集成了。解决这个问题,关键点在 seafi...

2020-04-12 16:49:29 16301

原创 【Websocket】之 Chrome 解析 Websocket

文章目录一、实战(1)栗子1(2)栗子2二、分析一、实战(1)栗子1访问:http://demos.kaazing.com/jms/index.html打开两个页面,执行如下:网页A登录(点击Connect)订阅(点击Subscribe)网页B登录(点击Connect)编辑文本发送消息(点击send)网页A,如图:(2)栗子2访问:http://dem...

2020-04-10 08:28:18 2356

原创 【MapReduce】之 工作原理

文章目录一、编程模型`WordCount` 计算过程二、计算框架(1)`MR`作业启动(2)`MR`数据合并与连接机制大数据计算的核心思路是移动计算比移动数据更划算MapReduce 既是一个编程模型,又是一个计算框架开发人员必须基于 MapReduce 编程模型进行编程开发,然后将程序通过 MapReduce 计算框架分发到 Hadoop 集群中运行MapReduce 可进行关系代数...

2020-03-02 00:47:21 291

原创 【HDFS】之 架构

文章目录一、核心概念(1)块(2)名称节点(NameNode)名称节点启动(3)数据节点(DataNode)(4)第二名称节点(SecondaryNameNode)Hadoop由三个模块组成:分布式存储 HDFS分布式计算 MapReduce资源调度引擎 YarnHDFS 架构图:一、核心概念(1)块为了提高磁盘读写效率,以数据块为单位,而不是以字节为单位(数据块...

2020-02-09 10:32:44 847

原创 【Network】之 UDP

文章目录一、特性(1)优点(2)带来的问题二、应用场景$ nslookup> baidu.comServer: 127.0.0.53Address: 127.0.0.53#53Non-authoritative answer:Name: baidu.comAddress: 220.181.38.148Name: baidu.comAddress: 39.156.69.7...

2020-01-21 17:37:13 384

原创 【Linux】之 上下文切换(排查实战)

文章目录一、简介(1)问题1)CPU为什么要进行上下文切换?2)上下文切换主要消耗什么资源,为什么说上下文切换次数过多不可取?3)上下文切换分几种?4)什么情况下会触发上下文切换?5)线程上下文切换和进程上下文切换的最大区别?6)中断上下文切换,如何理解?7)有哪些减少上下文切换的技术用例?(2)上下文切换二、实战(1)模拟多线程调度的瓶颈一、简介CPU 指令寄存器(IR)*:是 CPU ...

2020-01-20 15:03:15 2878

原创 【Linux】之 平均负载(排查实战)

文章目录一、简介(1)什么是平均负载?(2)平均负载会导致什么结果?(3)什么会导致平均负载增高?二、实战(1)CPU 密集型进程(2)I/O 密集型进程(3)大量进程的场景一、简介系统变慢时,执行 top 或 uptime命令,来了解系统的负载情况$ uptime23:11:16 up 9 min, 1 user, load average: 0.38, 0.47, 0.30...

2020-01-19 14:29:13 297

原创 搭建 NFS

文章目录一、搭建 NFS二、客户端环境:Ubuntu 18 LTS一、搭建 NFS在服务端安装sudo apt-get install nfs-kernel-server启动sudo /etc/init.d/nfs-kernel-server start或者sudo service nfs-kernel-service start修改配置sudo ...

2020-01-19 02:06:25 230

原创 用 Wireshark 抓包 挂载 NFS

文章目录一、用 `Wireshark` 抓包 挂载 NFS1. 客户端找到服务器的 `portmap` 进程,向它查询 `NFS` 进程的端口号。2. 尝试连接3. 查找 `mount` 端口4. 挂载二、查看网络分层三、资料NFS 服务端 IP:192.168.199.196NFS 客户端 IP:192.168.199.174一、用 Wireshark 抓包 挂载 NFSWire...

2020-01-19 02:01:50 2313 1

原创 【Electron】之 初识

文章目录一、简介二、架构(1)`Chronmium` 架构(2)`Electron` 架构三、安装三、参考资料一、简介Electron 是 使用Web技术构建跨平台桌面应用的技术。Electron = Chronmium + Node.js + Native APIElectron 最小组成:electron-app ├─package.js # 包体描述 ├─index.h...

2020-01-10 23:38:09 249

原创 【Elasticsearch】地理位置(geo_point)

文章目录一、建立 `geo_point` mapping二、写入 `geo_point` 三种方式(1)对象形式(2)字符串形式(3)数组形式三、查询(1)`geo_bouding_box` 查询(2)`geo_distance` 当前位置一定范围内ES 支持基于地理位置的搜索和聚合分析经纬度:lat: latitude 维度lon: longitude 经度一、建立 geo_po...

2020-01-01 17:31:44 1779

原创 【Elasticsearch】更新 Mapping 的列

只能增加 Mapping 的列,而不能修改已存在的列的属性脚本:# -*- coding: utf-8 -*-import jsonimport argparsefrom elasticsearch import Elasticsearchdef parse(): parser = argparse.ArgumentParser(description="update es...

2019-12-31 23:57:13 504

原创 【Elasticsearch】之 创建索引(Index)

文章目录一、简介二、创建索引(0)HTTP(1)索引模板1. 编写模板2. `python` 脚本3. 问题一、简介Elasticsearch 是一个实时分布式搜索和分析引擎在 Elasticsearch中,每一个字段的数据都是默认被索引的也就是说,每个字段专门有一个反向索引用于快速检索节点说明index文档存储的地方type文档代表的对象的类i...

2019-11-22 15:25:51 5855

原创 【Spring】之 RestTemplate浅析

文章目录一、源码解读(1)`HttpAccessor`(2)`InterceptingHttpAccessor`(3)`RestOperations`二、`RestTemplate`请求流程(1) `createRequest(url, method);`1)`new InterceptingClientHttpRequestFactory(super.getRequestFactory(), i...

2019-10-12 20:26:49 415

原创 【Seata】之 初识(四种模式)

文章目录一、简介二、四种模式(1)AT1)过程2)优点(2)TCC1)过程2)三种异常处理3)优点(3)Sage1)过程2)适用场景3)三种异常4)优点(4)XA1)过程2)优点三、问题(1)如何选择模式?四、资料一、简介Seata(Simple Extensible Autonomous Transaction Architecture):简单可扩展自治事务框架Seata提供全方位分布...

2019-10-12 16:07:15 15924 10

原创 【Kafka】之 概念(2)

文章目录一、简介(1)消息(2)`Topic` 主题(3)`Partition` 分区(4)`offset` 位移(5)`replica` 副本(6)`ISR`(in-sync replica,保持同步的 replica 集合)(7)`Broker`(8)`Producer` 生产者(9)`Consumer` 消费者(10)` Consumer Group` 消费者组一、简介Kafka的标...

2019-10-11 20:26:38 3295

原创 【分布式理论】之 分区(1)

文章目录一、简介(1)问题1)为什么要分区?2)为什么要将分区数据库分布、扩展到多台机器上?二、分区方法(1)基于关键字区间的分区1)缺点(2)哈希分区1)缺点(3)复合键一、简介面对一些海量数据集或非常高的查询压力,复制技术还不够,还需要将数据拆分成为分区,也称为分片分区,在不同系统有着不同的称呼。MongoDB、Elasticsearch、SolrCloud 的 shard,H...

2019-10-11 17:39:10 482

原创 【分布式事务】之 XA

文章目录一、简介(1)问题1)什么是 XA?二、限制(存在问题)(1)非高可用(2)事务协调者所在的应用服务器不再是无状态(3)无法检测死锁(4)容错一、简介分布式事务概念:数据库内部的分布式事务某些分布式数据库(例如那些标配支持复制和分区的数据库)支持跨数据库节点的内部事务。例如,VoltDB和MySQL Cluster的 NDB 存储引擎就是支持这样的内部分布式事务此时,...

2019-10-08 19:39:54 404

UML基础教程

通过本书,读者将能够使用统一建模语言(UML)进行软件的设计、分析与开发。本书秉承“基础教程” (Beginner's Guide)丛书的一贯风格,使用了丰富的图形来表现用户的软件设计思想,以便最终创建结构良好的、更加稳定的产品。通过本书,你将会了解到软件设计和分析中的用例图和面向对象的概念。减少为了创建正确的设计和结构文档而花费的开发时间。了解活动图、顺序图和类图,使用集成图检查系统结构。不管你是程序员、工程师、软件开发者、软件构造师,还是计算机科学专业的学生,本书都是你开始学习UML的良师益友。

2016-11-14

空空如也

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

TA关注的人

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