02 2021 档案

亿级流量架构之网关设计思路、常见网关对比
摘要:本文准备围绕七个点来讲网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关对比,对基础概念熟悉的朋友可以根据目录查看自己感兴趣的部分。 什么是网关 网关,很多地方将网关比如成门, 没什么问题, 但是需要区分网关与网桥的区别, 网桥工作在数据链路层,在不同或相同类型的L 阅读全文

posted @ 2021-02-26 18:59 ExplorerMan 阅读(354) 评论(0) 推荐(0)

mysql索引优化策略有哪些
摘要:一、前言 本文基于mysql8.0的innodb测试,建表在做对应的优化策略测试时记得加索引,由于文中太多查询例子不一一针对建立索引了,只挑几个建索引举例。 CREATE TABLE `user` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT 阅读全文

posted @ 2021-02-26 16:04 ExplorerMan 阅读(278) 评论(0) 推荐(0)

Mysql什么是回表查询和覆盖索引
摘要:一、前言 本文主要解释以下几个问题: 1.什么是回表查询? 2.什么是索引覆盖? 3.如何实现索引覆盖? 4.那些场景可以利用索引覆盖优化sql? 本文实验基于8.0版本innodb 二、回表查询 1.建表 CREATE TABLE `user` ( `id` int(11) NOT NULL, ` 阅读全文

posted @ 2021-02-26 16:02 ExplorerMan 阅读(829) 评论(0) 推荐(0)

在 MongoDB 中使用覆盖索引查询
摘要:你可能听说过列索引是通过最大限度地减少查询所需的磁盘访问次数来优化查询性能的好方法。MongoDB 有一个字段索引的特定应用程序,称为覆盖索引查询(Covered Queries),其中查询的所有列都被进行索引。因为 MongoDB 不必检查除索引之外的任何文档,所以覆盖索引查询非常快。在今天的文章 阅读全文

posted @ 2021-02-26 15:58 ExplorerMan 阅读(239) 评论(0) 推荐(0)

又长又细,万字长文带你解读Redisson分布式锁的源码
摘要:上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢。趁年前项目忙的差不多了,反正闲着也是闲着,不如把Redisson的源码也学习一遍好了。 虽说是一时兴起,但仔细研究之后发现Redisson的源码解读工作量还是挺大的, 阅读全文

posted @ 2021-02-26 10:47 ExplorerMan 阅读(227) 评论(0) 推荐(0)

redis面试题汇总
摘要:1 什么是redis Redis 是一个使用 C 语言写成的,开源的 key-value 数据库。。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。 这些 阅读全文

posted @ 2021-02-25 23:18 ExplorerMan 阅读(623) 评论(0) 推荐(0)

消息队列面试题
摘要:1.为什么要使用消息队列 解耦、异步、削峰 (1)解耦 传统模式的缺点: 系统间耦合性太强,如下图所示,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦! 中间件模式(消息队列)优点: 将消息写入消息队列,需要消息的系统自己从消息队列中订阅,从而系统A不 阅读全文

posted @ 2021-02-25 23:16 ExplorerMan 阅读(542) 评论(0) 推荐(0)

MongoDB面试题
摘要:1.什么是MongoDB MongoDB是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON.相对于json多了date类型和二进制数组。 2.MongoDB的优势有哪些 面向文档的存储:以 阅读全文

posted @ 2021-02-25 23:15 ExplorerMan 阅读(1138) 评论(0) 推荐(0)

高并发系统限流-漏桶算法和令牌桶算法
摘要:参考: http://www.cnblogs.com/LBSer/p/4083131.html https://blog.csdn.net/scorpio3k/article/details/53103239 http://jinnianshilongnian.iteye.com/blog/2305 阅读全文

posted @ 2021-02-25 18:05 ExplorerMan 阅读(512) 评论(0) 推荐(0)

RedisCluster的rename机制失败报错,解决又是数据倾斜问题
摘要:需求说明:spring session中的用户session更新是更新key的名字,所以对于key的操作时需要用newkey 替换oldkey value值只允许存在一个,这里用到rename就很合适,单机是没问题的,但是redis的集群模式下,由于采用了虚拟槽进行数据存储,所以修改时会报错 Red 阅读全文

posted @ 2021-02-25 16:53 ExplorerMan 阅读(415) 评论(0) 推荐(0)

开发如何避免redis集群访问倾斜和数据倾斜
摘要:概述 redis 集群部署方式大部分采用类 Twemproxy 的方式进行部署。即通过 Twemproxy 对 redis key 进行分片计算,将 redis key 进行分片计算,分配到多个 redis 实例中的其中一个。tewmproxy 架构图如下: 由于 Twemproxy 背后的多个 r 阅读全文

posted @ 2021-02-25 15:43 ExplorerMan 阅读(697) 评论(0) 推荐(1)

Pika 连接 rabbitmq 集群
摘要:原文:https://blog.csdn.net/Tech_Salon/article/details/82890431 使用 Pika 连接 rabbitmq 集群使用 python 编程经常会用到 pika 来向 rabbitmq 发送消息,单个 rabbitmq 节点连接比较简单,本文介绍使用 阅读全文

posted @ 2021-02-25 11:54 ExplorerMan 阅读(416) 评论(0) 推荐(0)

RabbitMQ概念及环境搭建(三)RabbitMQ cluster
摘要:测试环境:VMS00781 VMS00782 VMS00386 (centos5.8)1.先在三台机器上分别安装RabbitMQ Server2.读取其中一个节点的cookie,并复制到其他节点(节点间通过cookie确定相互是否可通信)两者之一均可:sudo vim /var/lib/rabbit 阅读全文

posted @ 2021-02-25 11:24 ExplorerMan 阅读(358) 评论(0) 推荐(0)

Rabbitmq安装过程和踩过的坑( 二 集群搭建 )
摘要:Rabbitmq 集群配置: 我这用普通用户启动后,在本用户的目录下边有个:.erlang.cookie 文件,我用rabbitmq用户启动就是在/home/rabbitmq目录下边有这个文件,如果rpm包安装的,这个文件目录在:/var/lib/rabbitmq 目录下边。 这点,如果重启使用RO 阅读全文

posted @ 2021-02-25 11:22 ExplorerMan 阅读(480) 评论(0) 推荐(0)

给RABBITMQ发送消息时,设置请求头HEADER。
摘要:消费者的请求头 生产者设置请求头 由于消费者那里,@Payload是接受的消息体,使用了@Header注解,需要请求头,生产者这边就要设置请求头,然后rabbitTemplate再调用convertAndSend方法发送,如下代码: 这是RabbitTemplate中的converAndSend(e 阅读全文

posted @ 2021-02-25 11:07 ExplorerMan 阅读(865) 评论(0) 推荐(0)

pyspark Sparkconf()参数配置
摘要:from pyspark import SparkContext, SparkConf from pyspark.sql import SparkSession def create_sc(): sc_conf = SparkConf() sc_conf.setMaster('spark://mas 阅读全文

posted @ 2021-02-24 18:59 ExplorerMan 阅读(1534) 评论(0) 推荐(0)

rabbitmq basicReject / basicNack / basicRecover区别
摘要:channel.basicReject(deliveryTag, true); basic.reject方法拒绝deliveryTag对应的消息,第二个参数是否requeue,true则重新入队列,否则丢弃或者进入死信队列。 该方法reject后,该消费者还是会消费到该条被reject的消息。 ch 阅读全文

posted @ 2021-02-24 15:32 ExplorerMan 阅读(1265) 评论(1) 推荐(0)

AUC (ROC曲线下方的面积大小)
摘要:AUC(Area Under Curve)被定义为ROC曲线下与坐标轴围成的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。AUC越接近1.0,检测方法真实性越高;等于0.5时,则真实性最低,无应用价值。 AUC(Area U 阅读全文

posted @ 2021-02-23 12:00 ExplorerMan 阅读(2875) 评论(0) 推荐(0)

Windows利用SSH - X远程登录Linux主机(X11-forwarding)
摘要:pediawiki对X11的定义如下: The X window system (commonly X Window System or X11, based on its current major version being 11) is a computer software system a 阅读全文

posted @ 2021-02-22 18:14 ExplorerMan 阅读(1594) 评论(0) 推荐(0)

Linux工作笔记-ssh中-X属性的使用(Linux传界面)
摘要:-x禁止x11转发 -X允许x11转发 命令如下: ssh -X username@ipaddress A机器通过ssh登录到B机器,把B机器运行的某界面程序放到A机器上! 如下例子: 执行assistant后,就可以调用101机器上的assistant程序显示到本机器的界面了! 如下图所示: 阅读全文

posted @ 2021-02-22 18:00 ExplorerMan 阅读(1563) 评论(0) 推荐(0)

opendistro 试用
摘要:以前转载过一篇别人的关于opendistro的文章,还好使用docker-compose 运行,很方便,所以自己也跑下 环境准备 docker-compose 文件 version: '3' services: odfe-node1: image: amazon/opendistro-for-ela 阅读全文

posted @ 2021-02-22 17:44 ExplorerMan 阅读(151) 评论(0) 推荐(0)

《RabbitMQ》如何保证消息的可靠性
摘要:一条消费成功被消费经历了生产者->MQ->消费者,因此在这三个步骤中都有可能造成消息丢失。 一 消息生产者没有把消息成功发送到MQ 1.1 事务机制 AMQP协议提供了事务机制,在投递消息时开启事务支持,如果消息投递失败,则回滚事务。 自定义事务管理器 @Configuration public c 阅读全文

posted @ 2021-02-03 11:51 ExplorerMan 阅读(189) 评论(0) 推荐(0)

sparkContext的addFile和addPyFile
摘要:addFile(path, recursive=False) 把文件分发到集群中每个worker节点,然后worker会把文件存放在临时目录下,spark的driver和executor可以通过pyspark.SparkFiles.get()方法来获取文件的路径,从而能够保证driver和每个wor 阅读全文

posted @ 2021-02-02 19:22 ExplorerMan 阅读(1208) 评论(0) 推荐(0)

一位大龄程序员所经历的面试的历炼和思考
摘要:引子准备工作面试历炼小结 从每一段经历中学习,在每一件事情中修行。善于从失败中学习。 引子 我今年 36 岁,已有 8 年 JAVA 开发经验。在阿里云三年半,有赞四年半,已是标准的大龄程序员了。 在多年的读书、学习和思考中,我的价值观、人生观和世界观也逐步塑造成型。我意识到自己的志趣在于做教育文化 阅读全文

posted @ 2021-02-02 11:46 ExplorerMan 阅读(213) 评论(0) 推荐(0)

Spark Streaming简介及原理
摘要:简介: SparkStreaming是一套框架。 SparkStreaming是Spark核心API的一个扩展,可以实现高吞吐量的,具备容错机制的实时流数据处理。 支持多种数据源获取数据: Spark Streaming接收Kafka、Flume、HDFS等各种来源的实时输入数据,进行处理后,处理结 阅读全文

posted @ 2021-02-01 19:07 ExplorerMan 阅读(180) 评论(0) 推荐(0)

Spark 以及 spark streaming 核心原理及实践
摘要:阅读目录 Spark 特点 Spark的适用场景 Spark成功案例 导语 spark 已经成为广告、报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到大家的青睐,我自己最近半年在接触spark以及spark streaming之后,对spark技术的使用有一些自己的经验 阅读全文

posted @ 2021-02-01 19:06 ExplorerMan 阅读(291) 评论(0) 推荐(0)

Spark executor中task的数量与最大并发数
摘要:每个task处理一个partition,一个文件的大小/128M就是task的数量 Task的最大并发数 当task被提交到executor之后,会根据executor可用的cpu核数,决定一个executor中最多同时运行多少个task。 默认情况下一个task对应cpu的一个核。如果一个exec 阅读全文

posted @ 2021-02-01 18:54 ExplorerMan 阅读(3266) 评论(0) 推荐(0)

如何在Spark集群的work节点上启动多个Executor?
摘要:如何在Spark集群的work节点上启动多个Executor? 默认情况下,Spark集群下的worker,只会启动一个Executor,只运行了一个 CoarseGrainedExecutorBackend 进程。Worker 通过持有 ExecutorRunner 对象来控制 CoarseGra 阅读全文

posted @ 2021-02-01 18:41 ExplorerMan 阅读(980) 评论(0) 推荐(0)

Spark 外部变量和BroadCast变量的区别
摘要:spark里面算子里面使用外部变量和BroadCast变量的区别: 1、如果在算子里面使用外部变量,spark会将外部变量复制多个副本,通过网络传输到每一个task里面去(也就是说,此时的外部变量是task级别的) 2、BroadCast变量,使用spark的广播功能进行广播,广播之后保障每个exe 阅读全文

posted @ 2021-02-01 18:32 ExplorerMan 阅读(200) 评论(0) 推荐(0)

Spark 广播变量(broadcast)更新方法
摘要:Spark 广播变量(broadcast)更新方法更新方法spark 广播变量可以通过unpersist方法删除,然后重新广播 1 2 3 4 5 6 7 val map = sc.textFile("/test.txt").map(line => { val arr = line.split(", 阅读全文

posted @ 2021-02-01 17:54 ExplorerMan 阅读(333) 评论(0) 推荐(0)

fold()操作和reduce()操作的区别
摘要:reduce()——规约操作,包含reduceLeft()和reduceRight()两种操作。 fold()——折叠操作,包含foldLeft()和foldRight()两种操作。 两者功能相似,不同之处在于: fold()操作需要从一个初始值开始,并以该值作为上下文,处理集合中的每个元素。 re 阅读全文

posted @ 2021-02-01 17:26 ExplorerMan 阅读(353) 评论(0) 推荐(0)

flatmap和MapPartition和Map的区别
摘要:背景 map和flatmap,从字面意思或者官网介绍,可能会给一些人在理解上造成困扰【包括本人】,所以今天专门花时间来分析,现整理如下: 首先做一下名词解释 我的理解 map:map方法返回的是一个object,map将流中的当前元素替换为此返回值; flatMap:flatMap方法返回的是一个s 阅读全文

posted @ 2021-02-01 17:12 ExplorerMan 阅读(462) 评论(0) 推荐(0)

pyspark教程
摘要:Apache Spark是用 Scala编程语言 编写的。为了用Spark支持Python,Apache Spark社区发布了一个工具PySpark。使用PySpark,您也可以使用Python编程语言中的 RDD 。正是由于一个名为 Py4j 的库,他们才能实现这一目标。 它将创建一个目录 spa 阅读全文

posted @ 2021-02-01 15:22 ExplorerMan 阅读(1442) 评论(0) 推荐(0)

Spark 中的join方式(pySpark)
摘要:spark基础知识请参考spark官网:http://spark.apache.org/docs/1.2.1/quick-start.html 无论是mapreduce还是spark ,分布式框架的性能优化方向大致分为:负载均衡、网络传输和磁盘I/O 这三块。而spark是基于内存的计算框架,因此在 阅读全文

posted @ 2021-02-01 11:47 ExplorerMan 阅读(858) 评论(0) 推荐(0)

Spark性能优化指南——高级篇
摘要:前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。 数据倾斜调优 调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作 阅读全文

posted @ 2021-02-01 11:08 ExplorerMan 阅读(244) 评论(0) 推荐(0)

Spark性能优化指南——基础篇
摘要:详细原理见上图。我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。根据你使用的部署模式(deploy-mode)不同,Driver进程可能在本地启动,也可能在集群中某个工作节点上启动。Driver进程本身会根据我们设置的参数,占有一定数量的内存和 阅读全文

posted @ 2021-02-01 11:06 ExplorerMan 阅读(138) 评论(0) 推荐(0)

pyspark-combineByKey详解
摘要:最近学习Spark,我主要使用pyspark api进行编程, 网络上中文的解释不是很多,api官方文档也不是很容易明白,我结合自己的理解记录下来,方便别人参考,也方便自己回顾吧 本文介绍的是pyspark.RDD.combineByKey combineByKey(createCombiner,  阅读全文

posted @ 2021-02-01 10:54 ExplorerMan 阅读(410) 评论(0) 推荐(0)

导航