dasein58_个人页

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

个人介绍

暂无个人介绍

擅长的技术

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

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

云产品技术能力:

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

阿里云技能认证

详细说明
暂无更多信息

2021年11月

  • 11.06 21:35:50
    发表了文章 2021-11-06 21:35:50

    恕我直言,我怀疑你没怎么用过枚举

    我们是否一样? 估计很多小伙伴(也包括我自己)都有这种情况,在自学Java语言看书时,关于枚举enum这一块的知识点可能都有点 “轻敌” ,觉得这块内容非常简单,一带而过,而且在实际写代码过程中也不注意运用。 是的,我也是这样!直到有一天我提的代码审核没过,被技术总监一顿批,我才重新拿起了《Java编程思想》,把枚举这块的知识点重新又审视了一遍。 为什么需要枚举 常量定义它不香吗?为啥非得用枚举? 举个栗子,就以B站上传视频为例,视频一般有三个状态:草稿、审核和发布,我们可以将其定义为静态常量: public class VideoStatus { public st
  • 11.06 21:33:43
    发表了文章 2021-11-06 21:33:43

    你能搞懂connectTimeout和socketTimeout的区别么?

    有时候,由于业务的复杂性,在JVM中拼装一些数据,会造成资源的极大浪费。举个例子,从MySQL中查询出一个List,然后在代码里循环查询数据库,进行一些字段的填充。 这种数据组装方式,除了执行效率的问题,往往会有更多的内存占用,对整个JVM计算节点造成了比较大的压力,有时候甚至造成内存溢出。于是,一些比较牛X的开发人员,使用非常复杂的SQL,来把这些耗时的操作,转嫁给数据库。 可怜的数据库,成了最后一道屏障。谁让数据库的配置普遍都比较高呢?活该。 但是可惜的是,数据库完成这些动作,同样要经历耗时的操作。Java线程等的不耐烦了,就会对用户直接返回超时,懵逼的用户会在这种情况下,再次发起重
  • 11.06 21:32:17
    发表了文章 2021-11-06 21:32:17

    免费开源的 HelloDjango 系列教程,结束还是开始?

    我们已经成功地开发了一个功能比较完备的个人博客,是时候来总结一下我们的工作了。 在教程的前两篇,我们介绍了如何搭建 django 开发环境,如何创建 django 项目以及 django 应用,这是我们进行 django 项目开发的基础。 第 3、4 篇:讲了 django ORM 的基础操作。ORM 是 django 核心中的核心,不仅 django 自带的应用底层全都依赖于 ORM,大部分使用 django 构建的应用基本也离不开 django ORM 的操作,所以能否熟练掌握 django 的 ORM API
  • 11.06 21:30:53
    发表了文章 2021-11-06 21:30:53

    多维度分析 Express、Koa 之间的区别

    Express 历史悠久相比 Koa 学习资料多一些,其自带 Router、路由规则、View 等功能,更接近于 Web FrameWork 的概念。Koa 则相对轻量级,更像是对 HTTP 的封装,自由度更多一些,官方 koajs/koa/wiki 提供了一些 Koa 的中间件,可以自行组合。 本文重点从 Handler 处理方式、中间件执行机制、响应机制多个维度来看待 Express、Koa 的区别。 Handler 处理方式 这个是 Express、Koa(koa1、koa2)的重点区别: Express Express 使用普通的回调函数,一种线性的逻辑,在同一个线程上完成所有的
  • 11.06 21:26:46
    发表了文章 2021-11-06 21:26:46

    MySQL Online DDL增量DML记录和回放的源码实现

    中分析并验证了MySQL进行在线创建索引时,不会因为执行时间过长或业务压力较大,在回放增量DML时加锁时间过久而对业务造成严重影响,本文从MySQL 8.0.19源码出发,分析MySQL是如何实现的。同时也确认是否在回放DML时会报duplicate key。 核心处理流程和对象 增量DML处理流程主要在http://row0log.cc中。 /** @file row/row0log.cc Modification log for online index creation and online table rebuild Created 2011-05-26 Marko Make
  • 11.05 22:52:37
    发表了文章 2021-11-05 22:52:37

    这个 Spring 循环依赖的坑,今天让我遇见了

    1. 前言 这两天工作遇到了一个挺有意思的Spring循环依赖的问题,但是这个和以往遇到的循环依赖问题都不太一样,隐藏的相当隐蔽,网络上也很少看到有其他人遇到类似的问题。这里权且称他非典型Spring循环依赖问题。但是我相信我肯定不是第一个踩这个坑的,也一定不是最后一个,可能只是因为踩过的人比较少、鲜有记录罢了。因此这里权且记录一下这个坑,方便后人查看。 正如鲁迅(我)说过,“这个世上本没有坑,踩的人多了,也便成了坑”。 2. 典型场景 经常听很多人在Review别人代码的时候有如下的评论:“你在设计的时候这些类之间怎么能有循环依赖呢?你这样会报错的!”。 其实这句话前半句当然没有错,
  • 11.05 22:50:01
    发表了文章 2021-11-05 22:50:01

    如何在 Vim 里直接完成 Git 操作?

    Vim 是 Linux 下一款很常用的文本编辑器,虽然它对初学者而言并不友好,但通过一些插件的配合,它可以被打造成一款很强大的 IDE 。良许曾经介绍过三款很常用的插件,可点击以下链接查看: Vim 编辑器的 3 款实用插件 本文再介绍一款 Vim 编辑器中的一款很强大插件—— VIM Fugitive 。这款插件可以实现你在 Vim 编辑器里直接完成 Git 操作,而无需退出 Vim 。更多 Linux 精选干货电子书,可私聊我 「资料」获取。 这个插件是开源项目,我们可以在以下地址获取源码: 安装方法: cd ~/.vim/bundle git clone vim -u NON
  • 11.05 22:48:49
    发表了文章 2021-11-05 22:48:49

    很多人不知道的Python 炫技操作:连接列表的八种方法

    Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。 但你要知道,在团队合作里,炫技是大忌。 为什么这么说呢?我说下自己的看法: 越简洁的代码,越清晰的逻辑,就越不容易出错; 在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德 简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本) 该篇是「炫技系列」的第三篇内容,在这个系列里,我将总结盘点一下,我所见过的那些炫技操作。在这里,如果你是 Python 发烧友
  • 11.05 22:48:01
    发表了文章 2021-11-05 22:48:01

    分布式事务数据库安全技术指南

    很多朋友对前段时间“删库跑路”事件应该还记忆犹新吧, 不仅如此近期的数据泄露问题也是从出不穷, 数据库作为企业核心业务系统的基础设施部分更是重中之重, 热璞数据库HotDB 结合企业数十年的技术沉淀以及在实战中的经验,以用户的视角打造的这份安全技术指南,跟各位一起分享: 一:用户管理 数据库应支持用户身份认证,并确保用户标识具有唯一性,且用户的身份认证信息应进行加密存储,宜采用不可逆加密算法; 用户的口令应具有复杂度要求,长度应少于8位,并包含英文字母大小写、特殊字符及阿拉伯数字等组合,且系统运维管理用户应定期修改登陆口令; 宜设置超时时间,登录用户在超时时间内无操作则自动结束会话; 宜及
  • 11.05 22:46:08
    发表了文章 2021-11-05 22:46:08

    浅谈技术管理之日式管理的殊途同归

    《周易》说,形而上者谓之道,形而下者谓之器;降龙十八掌里有履霜坚冰,夕惕若厉等招数;坤卦爻辞中也有含章可贞,或从王事等管理和做人规则。 看完上面几句,大家可能会想,不是说日式管理嘛,怎么说起中国传统哲学了?其实无论是西方的还是日式的管理方法与经验,其理论来源都是中国的哲学思想,无论是德鲁克的任务、责任、实践的管理理论,波特的差异竞争论,哈默尔的核心竞争力,还是明茨伯格的战略和经理人角色,科特的领导与变革,归根到底这只不过是一些管理的方法和手段而已,这些手段和方法,在浩淼的中国传统哲学中都能找到与它们几乎一致的理论,可以说中国的哲学思想是世界管理学的源头活水。 说到日式管理,很多人也都耳熟能
  • 11.05 22:45:33
    发表了文章 2021-11-05 22:45:33

    Django-rest-framework 是个什么鬼?

    我们首先来回顾一下传统的基于模板引擎的 django 开发工作流: 绑定 URL 和视图函数。当用户访问某个 URL 时,调用绑定的视图函数进行处理。 编写视图函数的逻辑。视图中通常涉及数据库的操作。 在视图中渲染 HTML 模板,返回 HTTP 响应。 其实,基于 django-rest-framework 的 RESTful API 的开发,过程是完全类似的: 绑定 URL 和视图函数。当用户访问某个 URL 时,调用绑定的视图函数进行处理。 编写视图函数的逻辑,根据 HTTP 请求类型,对请求的资源进行相应操作,这个过程通常涉及数据库的操作。 使用约定的资源描述格式(例如 XML 或
  • 11.05 22:37:25
    发表了文章 2021-11-05 22:37:25

    使用 RestTemplate 进行第三方Rest服务调用

    1. 前言 RestTemplate 是 Spring 提供的一个调用 Restful 服务的抽象层,它简化的同 Restful 服务的通信方式,隐藏了不必要的一些细节,让我们更加优雅地在应用中调用 Restful 服务 。但是在 Spring 5.0 以后RestTemplate处于维护模式,不再进行新特性的开发,仅仅进行一些日常维护。Spring 建议我们使用同时支持同步、异步和 Stream 的另一个 API —— WebClient 。但是在 Spring MVC 下目前我们还没有更好的选择。 2. RestTemplate 的使用场景 我们在项目中经常要使用第三方的 Rest AP
  • 11.05 22:36:02
    发表了文章 2021-11-05 22:36:02

    基于HBase构建千亿级文本数据相似度计算与快速去重系统

    前言 随着大数据时代的到来,数据信息在给我们生活带来便利的同时,同样也给我们带来了一系列的考验与挑战。本文主要介绍了基于 Apache HBase 与 Google SimHash 等多种算法共同实现的一套支持百亿级文本数据相似度计算与快速去重系统的设计与实现。该方案在公司业务层面彻底解决了多主题海量文本数据所面临的存储与计算慢的问题。 一. 面临的问题 1. 如何选择文本的相似度计算或去重算法? 常见的有余弦夹角算法、欧式距离、Jaccard 相似度、最长公共子串、编辑距离等。这些算法对于待比较的文本数据不多时还比较好用,但在海量数据背景下,如果每天产生的数据以千万计算,我们如何对于这些海
  • 11.05 22:34:57
    发表了文章 2021-11-05 22:34:57

    用 serverless 与 typescript 开发第一个 Koa 应用

    对于稍微大型的 Node 应用,typescript 已经是标配,它为 javascript 提供了强类型的铠甲,有效提高了代码质量。 这里是一个结合 ts 及 koa 快速部署到腾讯云函数计算中的模板。仓库如下 shfshanyue/serverless-template-zh: 中国云厂商 serverless framework 模板及示例 (更快的访问速度) 如果你只想搭建一个博客 使用 Netlify 托管静态网站与持续集成 使用 AliOSS 部署及加速你的静态网站 Github Actions 持续集成简介及实践 使用 Serverless Framework 开发第一个云函
  • 11.05 22:33:17
    发表了文章 2021-11-05 22:33:17

    国密算法介绍

    国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。 SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。 采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度
  • 11.05 22:32:47
    发表了文章 2021-11-05 22:32:47

    MySQL 数据库支持国密算法

    数据库加密,作为杀手锏,是数据库底线防守的秘密武器,通过在数据库存储层进行数据加密处理,达到即使数据被黑客盗取也无法解密的效果,从根源上解决数据泄露问题。 近年,市场对于数据库加密产品的需求呈上升趋势,但由于技术门槛极高,国内真正能够提供此类产品的企业本就寥寥无几,尤其针对全球份额排名第二的MySQL数据库,能够对其支持的加密产品一直没有出现。 不同于传统的视图+触发器模式的透明加密方式,本文所提MySQL国密加密产品采用数据库引擎代码改造技术,真正实现数据在存储层的加、解密功能,避免以往加密过程中,数据库文件导入导出的繁琐方法,最大程度减少性能损失。 产品是为用户需求而生,而我们要做的
  • 11.05 22:32:18
    发表了文章 2021-11-05 22:32:18

    几种常见的数据库加密方案分析

    “xxx拖库”、“xxxx数据泄露”等等层出不穷的安全事件表明,要想根本上解决这种越过网络防护,绕开权控体系,直接复制文件块并异地还原解析的“内鬼”式攻击方式,必须采用存储层的加密技术,确保敏感信息一旦落盘,必须密文存储。随着数据库加密技术在国内市场的兴起,更多数据安全企业的涌入,市面上出现了几种具有代表性的数据库加密技术。 一、前置代理及加密网关技术 1)技术原理 该方案的总体技术思路即在数据库之前增加一道安全代理服务,对数据库访问的用户都必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略。然后安全代理服务通过数据库的访问接口实现数据存储。安全代理服务存在于客户端应
  • 11.05 22:29:23
    发表了文章 2021-11-05 22:29:23

    很多人不知道的Python 炫技操作:海象运算符的三种用法

    Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。 很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。 海象运算符是在 PEP 572 被提出的,直到 3.8 版本合入发布。 它的英文原名叫 Assignment Expressions,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了。 1. 第一个用法:if/else 可能有朋友是第一次接触这个新特性,所以还是简单的介绍一下这个海象运算符有什
  • 11.05 22:28:48
    发表了文章 2021-11-05 22:28:48

    使用 serverless 与 next 开发第一个 next 应用

    在上一章,我介绍到了 如何使用 serverless 部署第一个 koa 应用。对于一个后端(Node)项目使用 serverless 的方式要接收巨大的挑战,其中最大的挑战来自于传统的并已完善与成熟的架构。 而对于一个弱存储弱状态的 SSR 项目或者纯前端项目,通过 zeit 或者 netlify 部署是一个更好的选择,然而由于网络原因并不适用于国内。国内也无如 netlify 一样的前端快速部署方案(笔者认为这一点对于国内的云服务商是一个可选的机会),此时 serverless 是一个不错的选择,只需一行命令即可充分利用缓存配置,对象存储服务,CDN 与自动 https 证书。
  • 11.05 22:27:58
    发表了文章 2021-11-05 22:27:58

    自学编程的八大误区!克服它们,豁然开朗!

    说在前面 小伙伴们大家好,又是全新的一天。 关于“自学编程的一些常见误区”这个话题其实很早之前就在视频里聊过了。时间过去了大半年,也还是有很多小伙伴会提及各种自学过程中的常见疑惑,所以还是用文字总结一下这几点想法,和大家共勉。 误区1:忽略基础,盲目莽进 基础知识和基础路线真的非常重要,就以Java领域举例,现在的应用框架实在是太多了,五花八门,层出不穷,迭代的速度太快了。但是假如Java SE的基础不牢、网络协议和操作系统不熟,基本的设计模式不了解,那一味地追求学习新框架反而会让自己陷入迷茫与困顿。 基础牢固,应用框架的学习自然就不用惧怕了,很快就能切入核心,掌握原理。而且越时髦的东西
  • 11.05 22:26:35
    发表了文章 2021-11-05 22:26:35

    ZK客户端Curator使用详解

    zookeeper不是为高可用性设计的,但它使用ZAB协议达到了极高的一致性。所以它经常被选作注册中心、配置中心、分布式锁等场景。 它的性能是非常有限的,而且API并不是那么好用。xjjdog倾向于使用基于Raft协议的Etcd或者Consul,它们更加轻量级一些。 Curator是netflix公司开源的一套zookeeper客户端,目前是Apache的顶级项目。与Zookeeper提供的原生客户端相比,Curator的抽象层次更高,简化了Zookeeper客户端的开发量。Curator解决了很多zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册wathcer和Nod
  • 11.05 22:23:35
    发表了文章 2021-11-05 22:23:35

    该魔法值造成了一万点伤害……

    1. 前言 重构老代码中遇到了不少类似下面这种写法: public void attend(String value) { if ("0".equals(value)) { //todo } else if ("1".equals(value)) { //todo } else { //todo } } 复制代码 脑壳疼!从 Java 语法上无懈可击,但是从业务上却让人无法理解其中 0 和 1 的含义,它们统称为魔法值 。 对于上面的代码
  • 11.05 22:21:05
    发表了文章 2021-11-05 22:21:05

    HBase Filter 过滤器之 Comparator 原理及源码学习

    HBase所有的比较器实现类都继承于父类ByteArrayComparable,而ByteArrayComparable又实现了Comparable接口;不同功能的比较器差别在于对父类compareTo()方法的重写逻辑不同。 下面分别对HBase Filter默认实现的七大比较器一一进行介绍。 1. BinaryComparator 介绍:二进制比较器,用于按字典顺序比较指定字节数组。 先看一个小例子: public class BinaryComparatorDemo { public static void main(String[] args) {
  • 11.05 22:15:55
    发表了文章 2021-11-05 22:15:55

    思考你的思维——从 5w1h到2w1h到空、雨、伞

    这个题目中涉及到了三种解决问题的著名思维方法,它们用于指导我们如何去思考一个事物,但是却没有给出为什么要这样思考。 一直没时间整理,其实这也能够理顺,即使在平时可能做不到用这些方法来分析问题,但了解一下也是可以的。 恰巧今天有空闲去图书馆,我专门想了下,结合自己收集的资料,总结如下。 # 一、首先最通用的是5w1h 即: - when(时间,何时) - where/which(位置,发生区域,哪些,定义范围与边界,比如哪些内容是不包含在内的) - who(参与人,执行人) - why(为什么,原因) - how/how to(策略,方法,方式,具体的过程或行动步骤) - what(内
  • 11.05 22:14:27
    发表了文章 2021-11-05 22:14:27

    Java集合源码分析之开篇

    初衷 Java集合是我们使用最频繁的工具,也是面试的热点,但我们对它的理解仅限于使用上,而且大多数情况没有考虑过其使用规范。本系列文章将跟随源码的思路,分析实现的每个细节,以期在使用时避免各种不规范的坑。在这里,我们会惊艳于开发者优秀的设计,也会感激先辈们付出的艰辛努力,更重要的是知其所以然,少犯错误,写出优秀的代码。 许多人对集合类的理解是暴力的,当需要保存对象时就使用ArrayList,当需要保存键值对时就使用HashMap,当需要不可重复时就使用HashSet,等等。而且使用方式也比较单一:
  • 11.05 22:13:26
    发表了文章 2021-11-05 22:13:26

    Java集合源码分析之Iterable概述

    前言 当我们想要遍历集合时,Java为我们提供了多种选择,通常有以下三种写法: 写法1:for循环 for (int i = , len = strings.size(); i < len; i++) { System.out.println(strings.get(i)); } 写法2:foreach循环 for (String var : strings) { System.out.println(var); } 写法3:Iterator Iterator iterator = strings.iterator(); while (iterator.hasNext(
  • 11.05 22:12:58
    发表了文章 2021-11-05 22:12:58

    Java集合源码分析之超级接口:Collection

    Collection Collection是List、Queue和Set的超集,它直接继承于Iterable,也就是所有的Collection集合类都支持for-each循环。除此之外,Collection也是面向接口编程的典范,通过它可以在多种实现类间转换,这也是面向对象编程的魅力之一。 方法定义 在阅读源码前,我们可以先自行想象一下,如果我们想封装下数组或链表以方便操作,我们需要封装哪些功能呢?比如:统计大小、插入或删除数据、清空、是否包含某条数据,等等。而Collection就是对这些常用操作进行提取,只是其很全面、很通用。下面我们看看它都提供了哪些方法。
  • 11.05 22:12:25
    发表了文章 2021-11-05 22:12:25

    Java集合源码分析之Set概述与总结

    Java集合源码分析系列到此就结束了,关于Set的知识会在这里进行简单的总结,除此之外,则是学习之后的一些感受。 Set概述 Set是一个包含不可重元素的集合,也就是所有的元素都是唯一的。文档说明如下: A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this inte
  • 11.05 22:11:31
    发表了文章 2021-11-05 22:11:31

    TypeScript 面向对象程序设计(OOP)

    在 JavaScript 中 ES6 之前我们使用函数(构造器函数)和基于原型来创建一个自定义的类,但这种方式总会让人产生困惑,特别是习惯了 Java、PHP 等面向对象编程的同学来说更加难以理解。 抽象一个类 面向对象编程的基本单位是对象,但对象又是由类实例化的,所以我们第一步需要先知道怎么去声明一个类。 类的声明 类的声明使用 class 关键词,类名与变量、函数等命名规则类似,这里要首写字母大写,类名后跟上一对花括号可以理解为的类的主体,类的主体三部分组成:成员属性、构造函数、成员方法。
  • 11.05 22:10:53
    发表了文章 2021-11-05 22:10:53

    使用Profile抓住慢查询

    在很多情况下,DBA都要对数据库的性能进行分析处理,找出降低性能的根源 而Mongo就有一种分析工具来检测并追踪影响性能的慢查询---Profile 有两种方式可以控制Profiling的开关和级别, 第一种是直接在启动参数中进行设置,如下: 如果想要全局开启Profiling,则可以在mongod启动时加上参数 mongod --profile 1 --slowms 100 # 1表示追踪级别,100表示慢查询判定时间(ms) 若是配置文件中开启的话,配置如下: operationProfiling: slowOpThresholdMs: 100 mode: s
  • 11.05 21:34:19
    发表了文章 2021-11-05 21:34:19

    老师,你确定Java注释不会被执行吗?

    之前在博客上分享过一篇文章,涉及到 Java 中的注释,就信誓旦旦地写了一句话:“注释是不会被执行的!”结果,有小伙伴留言说,“老师,你确定吗?” 我这个人一直有个优点,就是能听得进去别人的声音,管你是赞美的还是批评的,从来都是虚心接受。因为我相信,大多数小伙伴都是出于善的目的。 况且,我在技术上从来没想过要成为多牛逼的大佬,就是喜欢分享的感觉,而已。很多文章中出现的错误,我都原封不动的保留,因为如果把修正了,那么留言中那些指出错误的人,在后来的读者眼里,就会觉得不合时宜。 那些 diss 我的小伙伴们,放心,我是不会介意的。 尽管如此,但对于注释这件事,真的是不能忍啊!注释肯定不会
  • 11.05 21:33:22
    发表了文章 2021-11-05 21:33:22

    HBase Filter 过滤器之RowFilter详解

    前言:本文详细介绍了HBase RowFilter过滤器Java&Shell API的使用,并贴出了相关示例代码以供参考。RowFilter 基于行键进行过滤,在工作中涉及到需要通过HBase Rowkey进行数据过滤时可以考虑使用它。比较器细节及原理请参照之前的更文:HBase Filter 过滤器之比较器 Comparator 原理及源码学习 一。Java Api 头部代码 public class RowFilterDemo { private static boolean isok = false; private static String tableName
  • 11.05 21:31:34
    发表了文章 2021-11-05 21:31:34

    大数据和人工智能工程上的一些点

    大数据 大数据这个词最早出现在上世纪90年代的美国,直到2012年后才火起来。大数据没有一个明确的概念,之所以称之为大是因为数据量太大超过了单台计算机的资源,这时就需要分布式的数据处理工具,以便能在用户可容忍的时间内进行数据处理。大数据从业人员肯定会去了解谷歌的mapreduce论文和hadoop开源工具。然而海量数据本来是静态,只有通过对数据进行分析和利用才能让数据产生价值。正所谓量变产生质变。 人工智能 人工智能在1956年的达特茅斯会议上被提出来,它研究的是如何制造智能机器或模拟人类的智能行为。大数据与人工智能之间可以说是相辅相成,人工智能的基础是数据,而数据的利用又离不开人工智能。各
  • 11.05 21:28:57
    发表了文章 2021-11-05 21:28:57

    SSL与SSH的区别

    在OSI七层模型中,这两个安全传输协议其实都是建立在应用层上的 在最初的设计意图中; SSL(Secure Sockets Layer (SSL) and Transport Layer Security (TLS))被设计为加强Web安全传输(HTTP/HTTPS/)的协议(事实上还有SMTP/NNTP等) ,默认使用443端口 SSH(Secure Shell)更多的则被设计为加强Telnet/FTP安全的传输协议,默认地,它使用22端口. ssl是通讯链路的附加层。可以包含很多协议。https, ftps, ..... ssh只是加密的shell,最初是用来替代telnet的。通过p
  • 11.05 21:28:05
    发表了文章 2021-11-05 21:28:05

    什么情况下不能使用 Java 泛型

    1. 前言 Java 1.5 引入了泛型来保证类型安全,防止在运行时发生类型转换异常,让类型参数化,提高了代码的可读性和重用率。但是有些情况下泛型也是不允许使用的,今天就总结一下编码中不能使用泛型的一些场景。 2. 基本类型无法直接使用泛型 以下写法是错误的: // error Map<int,char> wrong= new HashMap<>() 复制代码 基本类型是不能够作为泛型类型的,需要使用它们对应的包装类。 // OK Map<Integer,Character> wrong= new HashMap<>() 复制代码 3. 泛型类型无法被直接实例化 泛型类型可以理解为一个
  • 11.05 21:27:21
    发表了文章 2021-11-05 21:27:21

    如何在PostgreSQL故障切换后找回丢失的数据

    作者简介 陈华军,苏宁易购云软件公司架构专家,主要负责数据库产品的相关设计工作。十年以上数据库相关工作经验。PostgreSQL中文社区核心组成员,主要负责PostgreSQL中文手册翻译项目的维护。 1. 背景 PostgreSQL的HA方案一般都基于其原生的流复制技术,支持同步复制和异步复制模式。 同步复制模式虽然可以最大程度保证数据不丢失,但通常需要至少部署三台机器,确保有两台以上的备节点。 因此很多一主一备HA集群,都是使用异步复制。 在异步复制下,主库宕机,把备节点切换为新的主节点后,可能会丢失最近更新的少量数据。 如果这些丢失的数据对业务比较重要,那么,能不能从数据库里找回来呢?
  • 11.05 21:26:20
    发表了文章 2021-11-05 21:26:20

    PostgreSQL 数据类型

    本章节,我们将讨论 PostgreSQL 的数据类型,数据类型是我们再创建表的时候为每个字段设置的。 设置数据类型的好处: PostgreSQL提 供了丰富的数据类型。用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型。PostgreSQL 的数据类型有很多种,下面我们具体来说明。 数值类型 数值类型由 2 字节、4 字节或 8 字节的整数以及 4 字节或 8 字节的浮点数和可选精度的十进制数组成。 下表列出了可用的数值类型。
  • 11.05 21:10:46
    发表了文章 2021-11-05 21:10:46

    一些docker的技巧和秘诀

    关于docker容器和镜像的关系 无论容器里做什么操作,写文件,删文件。该容器的基本镜像都不会有任何改变。这是因为Docker从父镜像建立增量镜像,只存储每个容器的更改。因此,如果你有一个300MB的父镜像,如果你在容器中安装了50MB的额外应用或服务,你的容器只有50MB,父镜像还是300MB。 但是可以使用Dockfile或commit命令来,把增量镜像和父镜像一起生成一个新的镜像。 dock top -- 显示容器中运行的进程 查看容器的root用户名和密码 docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1 因为docker
  • 11.05 21:08:59
    发表了文章 2021-11-05 21:08:59

    Vagrant 和 Docker的使用场景和区别?

    首先,相似之处是Vagrant和Docker都是虚拟化技术。Vagrant是基于Virtualbox的虚拟机来构建你的开发环境,而Docker则是基于LXC(LXC)轻量级容器虚拟技术。全面理解这两种虚拟技术的区别,需要阅读很多文档。我这里打个简单的比方,虚拟机之于容器虚拟技术相当于进程和线程。虚拟机内可以包含很多容器,正如一个进程中可以包含很多线程。虚拟机重,容器虚拟技术轻。前者的Image一般以GB计算,Docker则以100MB为单位计算。 当然,提问者肯定更希望从应用层面来了解两者的区别。简单点讲,Vagrant就是你的开发环境的部署工具;而docker是你的运行环境部署工具。 很多
  • 11.05 21:08:14
    发表了文章 2021-11-05 21:08:14

    下一代容器架构已出,Docker何去何处?看看这里的6问6答!!

    我们今天讨论的是《下一代容器架构已出,Docker何去何处?》 其实就目前来说,下一代容器架构可以约等于≒Podman+Skopeo+Buildah 其实这半年来很多自媒体都在鼓吹新的容器架构,吹嘘将要很快的替代Docker。但是很少人讨论新的架构和老的架构的区别,以及目前迁移的可能性等等等等。。。这些都是摆在企业面前去接触新架构的大山。所以,我们今天不做具体的新容器架构实战,我们只回答以下几个问题。 Q1 什么是Linux容器以及它如何工作? 一句话回答:就像港口的集装箱 (1)linux容器又名LXC(Linux Container),我们要形象的理解Linux容器的话,我们可以
  • 11.05 21:07:28
    发表了文章 2021-11-05 21:07:28

    PostgreSQL连接(JOIN)

    PostgreSQL JOIN子句用于把两个或多个表的行结合起来,基于这些表之间的共同变量。 在PostgreSQL中,JOIN有五种连接类型: CROSS JOIN:交叉连接 内连接:内连接 LEFT OUTER JOIN:左外连接 右外连接:右外连接 FULL OUTER JOIN:全外连接 接下来让我们创建两张表COMPANY和DEPARTMENT。
  • 11.05 21:06:57
    发表了文章 2021-11-05 21:06:57

    PostgreSQL TRANSACTION(事务)

    TRANSACTION(事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 数据库事务通常包含了一个序列的对数据库的读/写操作。包含有以下两个目的: 为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。 当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。 当事务被提交给了数据库管理系统(DBMS),则 DBMS 需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的
  • 11.05 21:05:13
    发表了文章 2021-11-05 21:05:13

    HBase 和 Hive 的差别是什么,各自适用在什么场景中?

    网络上有篇deck,题目为 NoSQL and Big Data Processing - Hbase, Hive and Pig cs。kent。edu/~jin/Cloud12Spring/HbaseHivePig.pptx),从 关系型数据库开始,到 NoSQL, 到 CAP 原理,再到 HBase 和 Hive,基本描述了整个数据存储的演进路线以及原因。 以下是我个人对这篇deck的整理,和deck的结构基本相同。虽然不能直接回答题主的问题,但相信读完这个deck之后,这个问题一定可以迎刃而解。 1. RDBMS 让数据集保持在一台单一的机器上是RDBMS提供ACID特性和丰富查询
  • 11.05 21:03:59
    发表了文章 2021-11-05 21:03:59

    吃透了这些Redis知识点,面试官一定觉得你很厉害

    是数据结构而非类型 很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大的歧义。redis里存的都是二进制数据,其实就是字节数组(byte[]),这些字节数据是没有数据类型的,只有把它们按照合理的格式解码后,可以变成一个字符串,整数或对象,此时才具有数据类型。 这一点必须要记住。所以任何东西只要能转化成字节数组(byte[])的,都可以存到redis里。管你是字符串、数字、对象、图片、声音、视频、还是文件,只要变成byte数组。 因此redis里的String指的并不是字符串,它其实表示的是一种最简单的数据结构,即一个key只能对应一个value。这里的key和value都是b
  • 11.05 21:03:03
    发表了文章 2021-11-05 21:03:03

    Hbase作者为什么允许一张表可以有多个列簇?

    HBase的设计目标是海量,高吞吐存储。数据在底层是基于LSMT那一套的实现(当然分了很多region,支持分布式)。简单来说,要维护一套memstore + 可分裂的filestore的存储,差不多就是: 新数据写入/更改先写入WAL,然后进入memstore memstore满了就进filestore filestore太大了就分裂 而这一套机制实现的单位是column family——每个column family有自己的memstore和filestore。尽管在高层上看起来是同一张表,但是表里每一个column family的存储都是相互独立的。如果和mysql比较的话,colum
  • 11.05 21:02:31
    发表了文章 2021-11-05 21:02:31

    HBase 操作和性能配置选项

    设置 hbase.regionserver.handler.count(在 hbase-site.xml)为用于并发的核心 x 轴。 可选地,将调用队列分成单独的读取和写入队列以用于区分服务。该参数 hbase.ipc.server.callqueue.handler.factor 指定调用队列的数量: 0 意味着单个共享队列。 1 意味着每个处理程序的一个队列。 一个0和1之间的值,按处理程序的数量成比例地分配队列数。例如,0.5 的值在每个处理程序之间共享一个队列。 使用 hbase.ipc.server.callqueue.read.ratio(hbase.ipc.server.call
  • 发表了文章 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:如何实现更强大的前端开发

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