dasein58_个人页

dasein58
个人头像照片 个人头像照片
970
0
0

个人介绍

暂无个人介绍

擅长的技术

获得更多能力
通用技术能力:

暂时未有相关通用技术能力~

云产品技术能力:

暂时未有相关云产品技术能力~

阿里云技能认证

详细说明
暂无更多信息

2021年11月

  • 11.05 21:01:54
    发表了文章 2021-11-05 21:01:54

    很详细Redis入门教程

    这篇文章主要介绍了很详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 【redis是什么】 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。 redis的官网地址,非常好记,是redis.io。(特意查了一下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地) 目前,Vmware在资助着redis项目的开发和维护。 【redis的作者何许人也】 开门见山,先看照片: 是不是出乎了你的意料,嗯,高手总会有些地方与众不同的。 这
  • 11.05 21:00:55
    发表了文章 2021-11-05 21:00:55

    一次HBase读超时的调优

    现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
  • 11.05 21:00:24
    发表了文章 2021-11-05 21:00:24

    一次HBase读超时的调优

    现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
  • 11.05 20:59:52
    发表了文章 2021-11-05 20:59:52

    HBase 性能调优第一弹:内存篇

    这是使用 HBase 最不可避免的一个话题,就是 HBase 的性能调优,而且通常建立在我们对 HBase 内部运行机制比较了解的基础上进行的,因此无论怎么说,调优这块都是一个相对复杂的事情。这一篇我们先来介绍与 HBase 内存最相关的调优内容。 1. 合理配置 JVM 内存 这里首先涉及 HBase 服务的堆内存设置。一般刚部署的 HBase 集群,默认配置只给 Master 和 RegionServer 分配了 1G 的内存,RegionServer 中 MemStore 默认占 0.4 即 400MB 左右的空间,而一个 MemStore 刷写阈值默认 128M,所以一个 Regi
  • 11.05 20:58:21
    发表了文章 2021-11-05 20:58:21

    mongodb 基于oplog的时间点恢复

    本文简单介绍mongodb时间点恢复的过程: 1.首先创建hezi集合,并插入10000条数据; MongoDB Enterprise liuhe_rs:PRIMARY>use liuwenhe MongoDB Enterprise liuhe_rs:PRIMARY>for ( var i = 0; i < 100000; i++) { db.hezi.insert({id: i}); } MongoDB Enterprise liuhe_rs:PRIMARY> db.hezi.count(); 100000 2.执行备份操作,使用参数 --oplog ,会在备份路径下产生oplog.b
  • 11.05 20:57:05
    发表了文章 2021-11-05 20:57:05

    MongoDB的选举过程

    MongoDB的复制集具有自动容忍部分节点宕机的功能,在复制集出现问题时时,会触发选举相关的过程,完成主从节点自动切换. 每个复制集成员都会在后台运行与复制集所有节点的心跳线程,在两种情况下会触发状态检测过程: 1).复制集成员心跳检测结果发生变化,比如某个节点挂了或者新增节点. 2).超过4s没有执行状态检测过程. 在状态检测过程大致包含以下步骤: 1).检测自身是否处于选举过程,如果是,退出本次过程. 2).维护一个主节点的备用列表,列表中所有节点都可能被选举为主节点,每个节点都会检测自身以及全局条件是否满足: a.是否看见复制集中是否有Majority在线. b.自身
  • 11.05 20:56:04
    发表了文章 2021-11-05 20:56:04

    Redis 21问,你接得住不?

    1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现
  • 11.05 20:55:31
    发表了文章 2021-11-05 20:55:31

    《Redis 使用手册》:一网打尽

    今天想要自来水式地推荐一本去年的新书《Redis 使用手册》。Redis 可算是现今内存数据库的实施标准,拥有丰富的数据结构和强大的功能,适用于各种不同的开发场景。对于泛化的大数据研发工程师来说,Redis 是职业生涯中绕不过去的一道坎。这本书由超过十年经验的 Redis 专家,擅长技术协作的黄健宏先生撰写,至少有以下几个特点,使得它非常适合大数据研发方向的新手。 内容详尽,循序渐进 全书一共分为三个部分总二十章。第一章仅用八页就介绍完安装 redis 和 redis-py 等准备工作,毫不拖泥带水混页数。第二章到第十章针对 Redis 开箱即用的数据结构从基础到复杂,从常用到专用一一列举
  • 11.05 20:55:00
    发表了文章 2021-11-05 20:55:00

    Hive、Hbase、mysql的区别

    1、Hive和HBase的区别   1)hive是sql语言,通过数据库的方式来操作hdfs文件系统,为了简化编程,底层计算方式为mapreduce。   2)hive是面向行存储的数据库。   3)Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。   4)HBase为查询而生的,它通过组织起节点內所有机器的內存,提供一個超大的內存Hash表 。   5)hbase不是关系型数据库,而是一个在hdfs上开发的面向列的分布式数据库,不支持sql。   6)hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引
  • 11.05 20:53:44
    发表了文章 2021-11-05 20:53:44

    CockroachDB之本地以及分布式查询处理

    译者注:本文详细介绍了CockroachDB的两种查询处理方式:本地及分布式,其中详细描述了设计分布式引擎的目的,为了达到分布式,还存在哪些遗留问题。以下为译文。 当CockroachDB节点接收到查询SQL时,大概会发生什么事情呢: pgwire模块负责与客户端应用通信,从客户端接收查询请求。将SQL文本分析并转换为抽象语法树(Abstract Syntax Tree,简称AST)。然后进一步分析并将其转换为逻辑查询计划,该计划是关系运算符的树,如过滤器,渲染(项目),连接。 顺便说一下,逻辑计划树是由EXPLAIN语句报告的数据。 然后将逻辑计划交给负责执行查询的back-end层
  • 11.05 20:52:57
    发表了文章 2021-11-05 20:52:57

    HBase 1.0 之后在最近两年加的一些新功能

    HBase作为BigTable的开源实现(之一,但也是应用最广的),其架构应该很多人即使完全没看过HBase的代码也都很清楚,毕竟干这个的几乎没人没读过BigTable的论文。但一个系统除了最基础的架构外还需要有一些细节的优化和实用的功能,很多功能大家就不见得了解了。因此感觉有必要介绍下最近两年HBase新增的一些比较重要的功能。以0.98为基准,在此假设0.98所包含的功能是大家所了解的,毕竟0.98.0是2014年2月发布了的。 HBase 1.0.0 在2015年2月发布后,首先最直观的改变是版本号采用了semantic versioning的语义,a.b.c的版本号,a major
  • 11.04 22:17:10
    发表了文章 2021-11-04 22:17:10

    Apache Storm与Apache Spark对比

    随着实时数据的增加,对实时数据流的需求也在增长。更不用说,流技术正在引领大数据世界。使用更新的实时流媒体平台,用户选择一个平台变得很复杂。Apache Storm和Spark是该列表中最流行的两种实时技术。 让我们根据它们的功能比较Apache Storm和Spark,并帮助用户做出选择。本文的目的是Apache Storm Vs与Apache Spark无关,不是要对两者进行判断,而是要研究两者之间的异同。 什么是Apache Storm与Apache Spark? 要了解Spark Vs Storm,让我们首先了解两者的基础! Apache Storm Apache Storm是一个
  • 11.04 22:15:33
    发表了文章 2021-11-04 22:15:33

    Docker的优缺点有哪些?

    对比一下,同样要安装运行一个软件,用Docker和不用Docker的差异: 下载安装: Docker:pull一个image下来就可以了。 包管理:用发行版自带命令,直接apt-get或者yum install。但很多时候,需要同时下载安装依赖的库,不过发行版的包管理系统通常会帮你搞定——前提是不要跟你现在的包发生冲突,否则有你搞的。 源码编译:发行版仓库里面的有可能版本有点老,你需要用最新版的功能。怎么办?去官网/Github下载源码,编译安装——等等,不要说的那么轻巧,你有对应的编译环境么?没有的话要先安装配置好编译环境。你知道用什么命令什么参数编译么?你装好编译依赖的底层库了么?
  • 11.04 22:14:46
    发表了文章 2021-11-04 22:14:46

    一次HBase读超时的调优

    现象:因为系统实时性要求比较高,HBase超时时间设置为2秒。偶尔会出现(几个小时)出现一波超时的情况,看了监控IO、CPU等并没有出现明显大波动。不过集群是高读写的,每秒几万的请求。就开始参与协助帮忙集群的排查、调优工作。 汗,最关键的是集群都用上了SSD,这是开大的节奏。 先来看看HBase主要的几个参数: 1、major compaction(大合并操作,几天执行一次,或者手动执行。对IO影响很大,对性能影响也很大) 2、memstore:regions数量、列簇数量有影响 ,一个列簇就需要一个memstore ,会占用region server的内存。 3、负载均衡:是不是某
  • 11.04 22:14:03
    发表了文章 2021-11-04 22:14:03

    Linux下3种常用的网络测速工具

    不管你用的是什么操作系统,网速都是你非常关心的一个性能指标,毕竟,谁都不想看个视频结果网速卡到你怀疑人生。本文介绍三个 Linux 命令行下的网络测速工具,让你随时随地知道你的网络状况。 fast fast 是 Netflix 提供的一项服务,它不仅可以通过命令行来使用,而且可以直接在 Web 端使用:fast.com。 我们可以通过以下命令来安装这个工具: $ npm install --global fast-cli 不管是网页端还是命令行,它都提供了最基本的网络下载测速。命令行下最简单的使用方法如下: $ fast 93 Mbps ↓ 从以上结果可以看出,直接使用 fa
  • 11.04 22:13:24
    发表了文章 2021-11-04 22:13:24

    优秀的程序员真的不写注释吗?

    我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。” 动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!” 我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我们程序员同行。但不是每个程序员在一开始都能写出“高标准”的代码的,就好像不是所有君王
  • 11.04 22:12:54
    发表了文章 2021-11-04 22:12:54

    五分钟零基础介绍 spark

    相信大家都听说过火的不能再火、炒得不能再炒的新一代大数据处理框架 Spark. 那么 Spark 是何方神圣?为何大有取代 Hadoop 的势头?Spark 内部又是如何工作的呢?我们会用几篇文章为大家一一介绍。 Hadoop:我不想知道我是怎么来的,我就想知道我是怎么没的? 还是从 Hadoop 处理海量数据的架构说起,一个 Hadoop job 通常都是这样的: 从 HDFS 读取输入数据; 在 Map 阶段使用用户定义的 mapper function, 然后把结果写入磁盘; 在 Reduce 阶段,从各个处于 Map 阶段的机器中读取 Map 计算的中间结果,使用用户定义的 r
  • 11.04 22:12:23
    发表了文章 2021-11-04 22:12:23

    与 hadoop 对比,如何看待 spark 技术?

    我先说我个人的结论。 我的结论必须基于2017年9月初这个时间节点。因为未来,是存在一切可能的变数的。 1.Hive 在短期2-3年内,仍然无法被取代。大部分中大型互联网公司的sql类大数据分析job,70%以上都仍旧会跑在hive上。 2.presto / impala / sparksql / hive on tez . 我认为presto目前是最有可能胜出的一个。 3.spark 的地位有些尴尬。在大热之后,我不太看好他的未来。 我当然会慢慢来说我为什么会下这些结论。 首先,我在说几个我在工作当中看到的事实: 1.spark在小数据集的优势明显。 spark更容易编写类
  • 11.04 22:11:46
    发表了文章 2021-11-04 22:11:46

    spark面试必须掌握的知识点概览

    最近很多球友都说在准备面试,不知道准备点啥,尤其是spark,实际上星球里浪尖分享的内容真的都掌握了,应对一般面试绝对没问题,但是遗憾的事情是很多人都是处于不会主动搜集资料,主动梳理知识,主动记忆整理知识,而是伸手要粮的境地。浪尖觉得这个是阻止你成长的罪魁祸手。前天跟朋友聚餐就说道这种情况,不努力,不加班给自己喂粮的,没有足够量和时间积累的人很难在一个领域里有所建树。 主动学习,保持激情,不断提高~ 言归正传,大部分面试者被面试的spark问题估计都会集中于spark core,spark streaming和spark sql,至于mllib和graphx这些估计都是了解项,当然也要逐步
  • 11.04 22:11:04
    发表了文章 2021-11-04 22:11:04

    生产环境使用HBase,你必须知道的最佳实践

    前面,我们已经打下了很多关于HBase的理论基础,今天,我们主要聊聊在实际开发使用HBase中,需要关注的一些最佳实践经验。 1.Schema设计七大原则 1)每个region的大小应该控制在10G到50G之间; 2)一个表最好保持在 50到100个 region的规模; 3)每个cell最大不应该超过10MB,如果超过,应该有些考虑业务拆分,如果实在无法拆分,那就只能使用mob; 4)跟传统的关系型数据库不同,一个HBase的表中列族最多不超过3个,列族中的列可以动态添加的,不要设计过多列族; 5)列族名必须尽量短,因为我们知道在存储的时候,每个keyvalue都会包含列族名;
  • 11.04 22:07:36
    发表了文章 2021-11-04 22:07:36

    传统容器已死,安全容器将成为云原生标配

    云原生是一座由精妙理论所构筑的摩天大厦,但其中的砖石还需加固。 当云原生将容器技术作为下一代云计算的基础之一时,并不意味着容器本身停止了演化。事实上,以Docker为代表的传统容器在遇到多租户场景时,它的安全问题立刻暴露了出来,这时,人们才怀念起虚拟化的好处。于是,采用虚拟化技术的“安全容器”这一概念应运而生,而开启这一变革的,正是Kata Containers,前不久,它刚刚度过两周年。 新的Kata Containers为我们带来虚拟机的安全性和隔离性、与容器兼容的API接口,同时还有与容器同一级别的性能,这意味着采用安全容器的时机已经成熟。 与此相对的是,上个月,Docker的企业
  • 11.04 22:06:25
    发表了文章 2021-11-04 22:06:25

    云原生基础架构最佳状态,就是没有基础架构

    本篇我们讨论云原生基础架构,它是通向云原生时代的基石。 对于很多架构师来说,上云之后,架构为什么成为了云原生架构而不是传统的架构,两者有何区别?云原生基础架构是如何演进的?本文进行全面梳理。 什么不是云原生基础架构? 云原生被谈的很多了,导致概念很乱。有人把云原生基础架构和公有云、容器、容器编排系统等划等号,之所以出现这种情况,原因是云原生架构并没有一个统一的概念。 为了更好的理解云原生系统,这里先做一些排除。 首先,云原生并不等于公有云。云原生基础架构不仅仅是在公有云上运行基础架构,这是因为仅仅从云服务商那里租用服务器时长,并不会使你的基础架构云原生化,管理IaaS和运行物理数据中心
  • 11.04 22:05:36
    发表了文章 2021-11-04 22:05:36

    云原生平台:市场现状分析

    对于期望获得云原生能力的企业,在IaaS提供的云计算弹性与开发云原生应用之间,还有一个很大的空白地带:如何用云计算为软件交付的过程服务。Docker和Kubernetes等工具提供了容器化和容器编排的能力,但是企业需要解决“为了承载我(期望)的开发流程,我需要怎样的容器和编排”的问题。这就给云原生平台(Cloud Native Platforms)创造了市场空间。 总体介绍 为分布式云应用提供支撑的平台从2015年开始受到广泛的关注,围绕着Docker、容器编排等技术,开始出现各种商业模式。云原生平台可以视为下一代中间件,其用途是交付企业级分布式应用所需的各种支撑能力。以容器和容器编排为基础
  • 11.04 22:04:36
    发表了文章 2021-11-04 22:04:36

    为什么云原生应用程序是未来

    现在,每个人都在谈论如今在云原生态环境中构建的应用程序。什么是云原生的,为什么它如此重要?     在深入挖掘之前,可以先看看一个有趣的陈述。据调研机构IDC称,到2022年,90%的新应用都将采用微服务架构,提高设计、调试、更新和利用第三方代码的能力;所有生产应用程序的35%将是云原生的。     显然,未来属于云原生应用程序。现在看一下云原生的定义。     云原生(或基于云计算)应用程序是在云中创建的应用程序,它是作为打包在容器中的微服务构建的。  
  • 11.04 22:03:33
    发表了文章 2021-11-04 22:03:33

    Docker安装与基本操作

    0x01 核心概念 Docker镜像类似于虚拟机镜像,可以理解为一个面向Docker引擎的只读模板,包含了文件系统。镜像是创建Docker容器的基础。 Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、停止、删除,而这些容器都是相互隔离、互不可见的。 镜像自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。 Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。Docker仓库分为公开仓库和私有仓库。 注册服务器(Registry)是存放仓库的地方,其
  • 11.04 22:01:33
    发表了文章 2021-11-04 22:01:33

    你一定要知道的--MongoDB:基础知识

    通过优锐课架构学习分享中,研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。码了很多实用的笔记,分享 大家参考学习。 1. 目的 在本文中,我们将研究什么是MongoDB,什么是NoSQL数据库,以及对现有数据库管理系统的介绍。 此外,我们将讨论MongoDB功能-为什么使用MongoDB以及MongoDB历史记录。 此外,我们还将通过一些示例查看MongoDB应用程序和MongoDB安装。 2.什么是NoSQL数据库? 在开始之前,我们必须了解NoSQL。 NoSQL或“ Not Only SQL”是非结构化数据库。 它提供了一种使用字段存储和检索数据的功能
  • 11.04 22:00:45
    发表了文章 2021-11-04 22:00:45

    MongoDB Go Driver使用帮助文档

    正式的MongoDB Go Driver近来变成1.0的GA版本。它现在被认为是一个完整的特性, 并且准备好在正式产品中使用。这篇使用说明书将帮助你开始使用 MongoDB Go Driver。你将会创建一个简单的程序并且学到如何: 安装MongoDB Go Driver 使用Go Driver来连接MongoDB 在Go内使用BSON对象 给MongoDB发送CRUD操作 你可以在github代码仓库看到这篇帮助文档的完整代码。为了可以按步骤进行, 你需要一个MongoDB数据库来连接, 你可以使用一个运行在本地的MongoDB数据库, 或者很容易地使用MongoDB Atlas来创建一个
  • 11.04 21:59:22
    发表了文章 2021-11-04 21:59:22

    Spark之BloomFilter有趣的bitwise运算

    最近好奇的研究了下Spark的BloomFilter的实现,发现其org/apache/spark/util/sketch/BitArray.java对bit处理的实现很巧妙(源码可能是从其他开源项目借鉴的也不好说),从中学到不少东西,记录下。 BitArray巧妙的核心设计 BitArray内部采用long[] data来表示一个大的bitmap,long类型相比int在相同的数组个数下可以存放更多的bit信息。 比较有意思的是set方法的实现,核心代码如下: // 将指定index位置的bit位设置为1,表示指定的index处有值 void set(long index) { d
  • 11.04 21:58:33
    发表了文章 2021-11-04 21:58:33

    记一次HDFS报EOFException异常的问题

    现象 大晚上的收到线上DataNode挂掉异常的报警,值班同学随即做了重启处理,重启完成后,进程虽然在运行,但是NameNode的WebUI上显示大量的block丢失。 There are 12622047 missing blocks. Number of Under-Replicated Blocks 14436901 重新启动的DataNode节点block数量为0,明显不正常 HDFS在对丢失的block做恢复,missing blocks的数量在减少,但是丢失的的太多了,恢复速度很慢,这种情况肯定不能指望集群自动恢复的。
  • 11.04 21:04:24
    发表了文章 2021-11-04 21:04:24

    《Redis 使用手册》:一网打尽

    今天想要自来水式地推荐一本去年的新书《Redis 使用手册》。Redis 可算是现今内存数据库的实施标准,拥有丰富的数据结构和强大的功能,适用于各种不同的开发场景。对于泛化的大数据研发工程师来说,Redis 是职业生涯中绕不过去的一道坎。这本书由超过十年经验的 Redis 专家,擅长技术协作的黄健宏先生撰写,至少有以下几个特点,使得它非常适合大数据研发方向的新手。 内容详尽,循序渐进 全书一共分为三个部分总二十章。第一章仅用八页就介绍完安装 redis 和 redis-py 等准备工作,毫不拖泥带水混页数。第二章到第十章针对 Redis 开箱即用的数据结构从基础到复杂,从常用到专用一一列举
  • 11.04 21:03:34
    发表了文章 2021-11-04 21:03:34

    用Redis快速实现BloomFilter!

    背景 最近工作上有个类似需求是: 现有约3亿条数据词典存在于一个csv文件A中,作为数据源。对于 用户输入的任意单词M,需要快速的在A中匹配M单词是否存在。(A文件约3G大小左右,总行数三亿) 拿到这个需求,你的第一想法怎么做呢? 正常思路可能是: 将csv文件A导入某关系型数据库。 sql查询按M匹配。 上面的方式有个明显的缺点是:慢!
  • 11.04 21:02:24
    发表了文章 2021-11-04 21:02:24

    从面试官的角度谈谈大数据面试

    作为一只老鸟,我的面试经验还算丰富,无论是作为面试者还是面试官。其实这篇对于面试者来说也是有意义的,毕竟知己知彼,百战不殆,知道对方会从哪些方面问问题,从哪些方面考核,才能更好地提前做好准备。 首先,我觉得面试官有责任保证面试过程是一次高效的交流。你要获取到你需要的信息,对面试者做全方位的考量;面试者也要获取到他需要的信息,面试官(若面试成功很大可能是自己的上级)的水平,公司技术要求水平,自己是否适合这家公司,公司是否需要自己。面试是一个双向选择的过程,面试官在选人,面试者在选公司。而面试者了解这家公司最直接的途径就是通过面试官。
  • 11.04 20:58:05
    发表了文章 2021-11-04 20:58:05

    Redis 21问,你接得住不?

    1.什么是redis? Redis 是一个基于内存的高性能key-value数据库。 2.Reids的特点 Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。 Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实
  • 11.04 20:57:16
    发表了文章 2021-11-04 20:57:16

    Java程序猿笔记——基于redis分布式锁实现“秒杀”

    最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。 业务场景 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。 一些可能的实现 刚才提到过,实现秒杀的关键点是控制线程对资源的争抢,根据基本的线程知识,可以不加思索的想到下面的一些方法: 秒杀在技术层面的抽象应该就是一个方法,在这个方法里可能的操作是将商品库存-1,将商品加入用户的购物车等等,在不考
  • 11.04 20:56:15
    发表了文章 2021-11-04 20:56:15

    No-SQL数据库中的事务性设计

    摘要:本文简述了一种在No-SQL数据库中实现ACID事务性的方法,这种方法只需要底层No-SQL DB实现MGET和MUPDATE两个原语就可以保证完整的ACID事务性,在API层,则将复杂的事务性的读写操作归纳为WALK和MUPDATE两个原语,方便使用。 题图是Redis的ASCII Logo,Redis服务器在启动的时候,会把这个Logo连带着一些运行信息打印到服务的日志里。因为这个功能,一名愤怒的用户在Github上提了一个issue,强烈要求取消这个功能,因为在他的syslog转义了换行符,然后这条日志就变成了这个样子: Aug 14 09:40:07 ww3-ukc redi
  • 11.04 20:55:12
    发表了文章 2021-11-04 20:55:12

    MySql查询性能优化

    避免向数据库请求不需要的数据 在访问数据库时,应该只请求需要的行和列。请求多余的行和列会消耗MySql服务器的CPU和内存资源,并增加网络开销。 例如在处理分页时,应该使用LIMIT限制MySql只返回一页的数据,而不是向应用程序返回全部数据后,再由应用程序过滤不需要的行。 当一行数据被多次使用时可以考虑将数据行缓存起来,避免每次使用都要到MySql查询。 避免使用SELECT *这种方式进行查询,应该只返回需要的列。 查询数据的方式 查询数据的方式有全表扫描、索引扫描、范围扫描、唯一索引查询、常数引用等。这些查询方式,速度从慢到快,扫描的行数也是从多到少。可以通过EXPLAIN语句中的ty
  • 11.04 20:54:00
    发表了文章 2021-11-04 20:54:00

    MySQL数据库无完整备份删库,除了跑路还能怎么办?

    1.背景 前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失。 结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要。 本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案。 同时,引发对数据库稳定性的思考。 2.数据抢修 这份内网数据事先没有特意备份,所以一开始认为需要从磁盘恢复数据了。所以紧急联系了数据恢复公司,希望过来恢复磁盘数据。 这里需要注意,数据恢复公司建议马上关机,避免磁盘数据被覆盖。 联系数据恢复公司的同时,运维同事在内网找到了几个残缺的备份文件,包括去年
  • 11.04 20:52:08
    发表了文章 2021-11-04 20:52:08

    Flink计算PV,UV的案例及问题分析

    PV(访问量):即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。 UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。 一个UV可以用很多PV,一个PV也只能对应一个IP 没有这些数据的支持,意味着你不知道产品的发展情况,用户获取成本,UV,PV,注册转化率;没有这些数据做参考,你不会知道接下来提供什么建议给领导采纳,也推测不出领导为啥烦忧,那么就么有任何表现的机会。 举两个UV计算的场景: 1. 实时计算当天零点起,到当前时间的uv。 2. 实时计算当天每个小时的UV。0点
  • 11.04 20:49:31
    发表了文章 2021-11-04 20:49:31

    Spark Core读取ES的分区问题分析

    写这篇文章的原因是前两天星球球友去面试,面试管问了一下,Spark 分析ES的数据,生成的RDD分区数跟什么有关系呢? 稍微猜测一下就能想到跟分片数有关,但是具体是什么关系呢? 可想的具体关系可能是以下两种: 1).就像KafkaRDD的分区与kafka topic分区数的关系一样,一对一。 2).ES支持游标查询,那么是不是也可以对比较大ES 索引的分片进行拆分成多个RDD分区呢? 那么下面浪尖带着大家翻一下源码看看具体情况。
  • 11.04 20:49:00
    发表了文章 2021-11-04 20:49:00

    Flink实现PageRank算法

    PageRank估计是很多面试场合上镜率比较高的吧,面试Spark的时候会被问到,最近flink热,估计也会被问到吧,浪尖就在这里帮大家解决这个疑难杂症。 算法常见的原题是: pagerank的算法会维护两个数据集:一个由(pageID,linkList)的元素组成,包含每个页面的相邻页面的列表;另一个由(pageID,rank)元素组成,包含每个页面的当前排序值。它按如下步骤进行计算。 将每个页面的排序值初始化为1.0。 在每次迭代中,对页面p,向其每个相邻页面(有直接链接的页面)发送一个值为rank(p)/numNeighbors(p)的贡献值。 将每个页面的排序值设为0.15 +
  • 11.04 20:48:11
    发表了文章 2021-11-04 20:48:11

    Spark SQL的Parquet那些事儿

    Parquet是一种列式存储格式,很多种处理引擎都支持这种存储格式,也是sparksql的默认存储格式。Spark SQL支持灵活的读和写Parquet文件,并且对parquet文件的schema可以自动解析。当Spark SQL需要写成Parquet文件时,处于兼容的原因所有的列都被自动转化为了nullable。 1读写Parquet文件 // Encoders for most common types are automatically provided by importing spark.implicits._ import spark.implicits._ val peop
  • 11.04 20:46:56
    发表了文章 2021-11-04 20:46:56

    hadoop分布式缓存

    1.前言 DistributedCache是hadoop框架提供的一种机制,可以将job指定的文件,在job执行前,先行分发到task执行的机器上,并有相关机制对cache文件进行管理。 DistributedCache 可将具体应用相关的、大尺寸的、只读的文件有效地分布放置。DistributedCache 是Map/Reduce框架提供的功能,能够缓存应用程序所需的文件 (包括文本,档案文件,jar文件等)。 Map-Redcue框架在作业所有任务执行之前会把必要的文件拷贝到slave节点上。 它运行高效是因为每个作业的文件只拷贝一次并且为那些没有文档的slave节点缓存文档。 Dis
  • 11.04 20:45:30
    发表了文章 2021-11-04 20:45:30

    Docker:一场令人追悔莫及的豪赌

    每当我对Docker提出批判时,都会收到很多愤懑的回复。我曾于6个月前撰写一篇文章,即《 为什么有人会选择Docker而非大型二进制文件?》,并终于在Hacker News上众多愤慨的批评声中看到了一些明智的评论。因而,今天的这篇文章主要是进一步阐述Docker的设计缺陷并回应未来可能将会面临的批判。 相比HFT Guy的经历而言,我想我已经足够幸运了。HFT Guy曾满腔怒火地表示,由于在金融公司的产品生产阶段使用了Docker而导致失败,想来其必然为此付出了不小代价。原文引用如下: 我收到了一份十分无礼的邮件,发件人明显是业余社区中的一员。这位仁兄在邮件中愤怒地表示:“白痴才会在Ubu
  • 11.04 20:44:30
    发表了文章 2021-11-04 20:44:30

    在Docker Compose上使用GPU运行TensorFlow

    容器化和AI是目前开发的大趋势。理想情况下,容器化可以将环境无缝迁移,将配置环境的成本无限降低:但是在容器中配置CUDA并运行TensorFlow一向是个难题。对于初学者以及没有深度学习工作站的用户,AWS和Azure推出了带独立显卡的云服务:但是按需实例价格不便宜,竞价式实例价格公道然而虚拟机不能重启,导致不能按需挂载硬盘并保存工作状态,用户需要编写大量代码时刻对虚拟机进行监控并对结果进行异地保存。Deep Systems对这个问题进行了研究并给出了很好的建议。 用户首先需要配置 CUDA:Deep Systems推荐使用runtime 安装,以免在升级后污染依赖环境。 安装 Dock
  • 11.04 20:43:18
    发表了文章 2021-11-04 20:43:18

    Docker面对Java将不再尴尬:Java 10为Docker做了特殊优化

    堆(Heap)大小 默认情况下,在64位的服务器中,JVM通常将最大堆大小设定为物理内存的1/4。而在容器化环境中,这确实没有什么意义,因为你通常拥有很多可以运行多个JVM的大内存的服务器。如果你在不同的容器中运行10个JVM,并且每个JVM最终都使用了1/4的RAM,那么你将面临过度使用机器RAM的窘境,并且有可能最终导致虚拟内存耗尽——结局就是用户将离你而去。 这还会抵消容器的另一项重要优势,即构建及测试的容器镜像必然能够在生产环境中拥有同样的运行效果。在较小的物理主机上的镜像环境中,一个容器可以很容易地正常工作,但在生产环境较大的主机上可能会因为超出容器的任何内存限制而被内核杀死。
  • 11.04 20:42:49
    发表了文章 2021-11-04 20:42:49

    徒手用 Docker 构建自己的 PHP 开发环境

    1. 前言 1.1 为什么要用 Docker ? 是否有这样的场景,你搞了一个项目,在本地开发时需要搭建环境,放到线上时也需要搭建环境,到公司想暗戳戳玩一下要搭建环境,不搭还不行,因为你的环境依赖还挺多。这个时候如果有了Docker,只需要在机器上装个Docker,放上写好的Dickerfile,一行命令就自动完成这个事,方便又高效,岂不是很爽? 1.2 准备 接下来,本文介绍如何搭建一个PHP的开发环境,将用 zPhal-dockerfiles 做为例子,这是我为我的博客系统准备的一套Dockerfile。 现在不管是windows,mac还是linux,docker都可以很好支持,包
  • 11.04 20:41:53
    发表了文章 2021-11-04 20:41:53

    Docker实践,来自沪江、滴滴、蘑菇街架构师的经验之谈

    架构师小组交流会:每期选一个时下最热门的技术话题进行小组交流。 第一期主题:容器实践。Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化、可移植性是CI/CD,DevOps,微服务的重要实现技术。但目前技术还不够成熟,在生产实践中会遇到不少坑。本期参与小组交流的是国内较早采用 Docker 实践的公司。 参与嘉宾:沪江架构师黄凯、滴滴架构师田智伟、蘑菇街架构师张振华、蘑菇街运维架构师向靖、七牛技术总监袁晓沛、扇贝技术总监丁彦
  • 11.04 20:41:21
    发表了文章 2021-11-04 20:41:21

    共享变量的并发读写

    我blog上的老文,已经沉了,在专栏发一下。 在高性能并发服务器中,对于共享对象的读写是最常见的操作之一,比如全局配置类对象的并发读取和更新,以及更复杂的如copy on write btree、堆栈等的并发读写,最基本的操作都可以简化理解为通过全局共享的指针,并发读取和更新指针所指向对象的操作。 最简单的模型如下所示,一个包含了多个字段的结构体: struct GConf { int64_t a; int64_t b; int64_t c; }; 可以通过一个全局指针struct gConf *g_conf进行访问。有多个线程会同时读取或更新这个对象,要求任何时刻读取到的内容
  • 11.04 20:40:41
    发表了文章 2021-11-04 20:40:41

    传统应用的docker化迁移

    Docker是云技术和IT技术的未来,这一点正在被越来越多的公司认识到,但是对于传统企业来说,如何将传统的应用迁移到Docker是一个迫切需要解决的问题。传统企业,尤其是国内的传统企业,IT建设普遍滞后,当大多数互联网公司都在大面积使用Docker的时候,传统企业还在为虚拟化、公有云[注]和敏捷开发挣扎。很多企业都在提工业4.0,但是信息化建设却没有提高到一定的高度。企业的信息化程度,很大程度上决定了企业的生产效率,而 Docker则从应用层面提出了非常好的解决方案。本文也将从迁移的角度来阐述如何在传统企业中使用Docker。 传统应用容器化迁移的思考 对于传统应用来说,使用和不使用Dock
  • 发表了文章 2025-05-24

    深入浅出React中的refs

  • 发表了文章 2025-05-24

    日志与追踪的完美融合:OpenTelemetry MDC 实践指南

  • 发表了文章 2025-05-23

    使用 Uber automaxprocs 正确设置 Go 程序线程数

  • 发表了文章 2025-05-22

    【微前端】singleSpa&importHTMLEntry(流程图)源码解析

  • 发表了文章 2025-05-22

    一行代码搞定禁用 web 开发者工具

  • 发表了文章 2025-05-20

    TP6操作pgSQL13报错解决方案

  • 发表了文章 2025-05-20

    Go 1.24 相比 Go 1.23 有哪些值得注意的改动?

  • 发表了文章 2025-05-20

    一文搞懂 GPU 共享方案: NVIDIA Time Slicing

  • 发表了文章 2025-05-20

    借助大模型提升甲方安全黑白灰运营效率实践

  • 发表了文章 2025-05-20

    封装 uniapp 请求库的最佳实践

  • 发表了文章 2025-05-18

    Vue 2 与 Vue 3 的区别:深度对比与迁移指南

  • 发表了文章 2025-05-18

    three.js简单实现一个3D三角函数学习理解

  • 发表了文章 2025-05-18

    如何提高爬虫的抓取效率

  • 发表了文章 2025-05-18

    CentOS系统安装phpStudy的详细步骤和注意事项

  • 发表了文章 2025-05-18

    mysql数据引擎有哪些

  • 发表了文章 2025-05-17

    C语言与操作系统交互探秘

  • 发表了文章 2025-05-17

    Nuxt 3环境变量读取问题解决方案

  • 发表了文章 2025-05-17

    从多维度解构 Lead Time:定义、应用与优化策略

  • 发表了文章 2025-05-17

    mysql数据备份方式,如何恢复?你们的备份策略是什么?

  • 发表了文章 2025-05-17

    Vue与TypeScript:如何实现更强大的前端开发

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息