汤庆

如果你不能简单说清楚,就是你没完全明白。
私信 关注
Teingi
码龄4年

本科毕业于北京交通大学,研究生毕业于中国人民大学,现就职于北京市商汤科技开发有限公司

  • 760,522
    被访问量
  • 340
    原创文章
  • 5,813
    作者排名
  • 371
    粉丝数量
  • 毕业院校 中国人民大学
  • 目前就职 北京市商汤科技开发有限公司
  • 于 2017-09-29 加入CSDN
获得成就
  • 获得354次点赞
  • 内容获得114次评论
  • 获得1,437次收藏
荣誉勋章
兴趣领域
  • #数据库管理
    #数据库架构#DBA
  • #后端
    #架构#Go/GoLang
TA的专栏
  • kubernetes
    22篇
  • Elasticsearch
    4篇
  • Storage
    1篇
  • Architecture
    1篇
  • Docker
    1篇
  • Project
    3篇
  • Hadoop
    9篇
  • DataMining
    3篇
  • Ottertune
    7篇
  • DataBase
    41篇
  • NLP
    5篇
  • Knowledge Graph
    3篇
  • AI
    13篇
  • Algorithm
    6篇
  • Go
    6篇
  • Java
    40篇
  • HTML/css/js
    5篇
  • Python
    23篇
  • C++
    1篇
  • SSH/SSM
    4篇
  • Tips
    6篇
  • SCADA
    2篇
  • Network
    11篇
  • CCF
    1篇
  • OS/Software
    32篇
  • Hardware
    10篇
  • TimeSeries
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

【k8s】——自定义的k8s controller

一、前言在 K8s 中当我们需要监控某个资源的变化并作一系列操作时,使用 K8s 提供的 controller 机制来实现,同时 K8s 官方提供了一个通用库client-go,通过它可以很容易实现自定义controller.Custom Resource是扩展Kubernetes的一种方式(另外一种就是通过聚合层APIapiserver-aggregation),而controller对指定的resource进行监听和执行对应的动作(watch,diff,action)。这里引申一点,我们一般来说..
原创
20阅读
1评论
0点赞
发布博客于 9 天前

【Golang】——由浅入深分析并发利器sync.WaitGroup

一、前言 官方文档对sync.WatiGroup的描述是:一个waitGroup对象可以等待一组协程结束,也就等待一组goroutine返回。有了sync.Waitgroup我们可以将原本顺序执行的代码在多个Goroutine中并发执行,加快程序处理的速度。我们先来感受一下官方给出的样例:(官方给出的样例干的事情其实是访问三个网站,访问完成打印出来)package mainimport ( "fmt" "sync" "net/http")func mai...
原创
9阅读
0评论
0点赞
发布博客于 11 天前

【Tools】——云计算存储客户端工具s3cmd使用

一、前言 s3cmd 是一款 Amazon S3 命令行工具。它不仅能上传、下载、同步,还能设置权限,下面是完整的安装使用指南。二、安装与配置1. 安装pip install s3cmd# 或yum install python-s3cmd2. 配置2.1 通过命令行传递参数配置s3cmd --configure \ --access_key=<access_key> \ --secret_key=<secr...
原创
22阅读
0评论
0点赞
发布博客于 1 月前

【k8s】——peer-finder(一个用于给statefulset管辖的pod找“伙伴“的小工具)

一、前言 今天介绍一个小众工具,peer-finder, 这是一个简单的守护进程,golang写的,总代码量不到150行,但对StatefulSet非常有用。github 地址:https://github.com/kmodules/peer-finder/tree/master。介绍这个之前,先给大家补充一下知识点: 在Kubernetes中,大多数的Pod管理都是基于无状态、一次性的理念。例如Replication Controller,它只是简单的保证可提供服务的Pod数...
原创
148阅读
0评论
0点赞
发布博客于 3 月前

数据仓库和数据挖掘基础知识点

                                                第一章  数据仓库和数据挖掘概述一、概念题1、数据仓库的定义是什么?     答:数据仓库是面向主题的、集成的、稳定的、不同时间的数据集合,用于支持经营管理中央决策制定过程。2、数据仓库的特点是什么?    答:数据仓库的特点是:  (1)数据仓库是面向主题的;  (2)数据...
原创
5394阅读
0评论
5点赞
发布博客于 2 年前

【知识图谱】——8种Trans模型

知识图谱对实体和它们丰富的关系的结构化信息编码。虽然一个典型的知识图谱可能得到数百万的实体和数以亿计的关系事实,但离补全还很远。知识图谱补全旨在通过现有知识图谱来预测实体之间的关系。知识图谱补全能够找到新的关系事实,这是对从纯文本进行关系抽取的重要补充。知识图谱扫盲:https://www.jiqizhixin.com/articles/2018-06-20-4 在...
原创
9430阅读
0评论
11点赞
发布博客于 2 年前

Doxygen + Graphviz 安装(windows 10系统)

一、准备工作       1、windows 10系统       2、下载doxygen,可以自己从官网下载,如果下不下来可以从我百度云盘下,我下载的是doxygen-1.8.10-setup版本             下载地址:https://pan.baidu.com/s/1BBpc1YSshyHdlDY5lSs8EA       3、graphviz下载,我下载的是gra...
原创
2647阅读
0评论
2点赞
发布博客于 3 年前

XMLHttpRequest

一、简介        Ajax (Asynchronous Javascript And Xml )是指一种创建交互式网页应用的网页开发技术,其中,Ajax的核心是JavaScript对象XMLHttpRequest(以下简称XHR),XHR是一种支持异步请求数据的技术。     我们通常将Ajax等同于XMLHttpRequest,但细究起来它们两个是属于不同维度的2个概念。ajax是...
原创
2358阅读
0评论
0点赞
发布博客于 2 年前

【java基础】——java基础教程

一、基础知识Java Character类 Java String 类 Java StringBuffer和StringBuilder类 Java数组 Java日期和时间 Java正则表达式 Java方法 Java 流(Stream)、文件(File)和IO Java Scanner 类 Java异常处理 Java继承 Java ...
原创
126阅读
1评论
0点赞
发布博客于 2 年前

【python基础】——python添加模块搜索路径和包的导入

方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\")方法二:修改环境变量w用户可以修改系统环境变量PYTHONPATH方法三:增加.pth文件,推荐!在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称就是了。1 windowsc:\pytho...
原创
43498阅读
0评论
11点赞
发布博客于 3 年前

表示学习(Representation Learning)

一、前言 2013年,Bengio等人发表了关于表示学习的综述。最近拜读了一下,要读懂这篇论文还有很多文献需要阅读。组会上正好报了这篇,所以在此做一个总结。二、表示学习发展由来 当我们学习一个复杂概念时,总想有一条捷径可以化繁为简。机器学习模型也不例外,如果有经过提炼的对于原始数据的更好表达,往往可以使得后续任务事倍功半。这也是表示学习的基本思路,即找到对...
原创
16659阅读
6评论
37点赞
发布博客于 2 年前

【MySQL】——mysql root密码忘记如何登陆

一、前言 有时候忘了mysql的管理员密码,无法连接上上mysql。其实mysql留有后路,让你在忘记密码的情况下依然能登陆数据库。二、操作1)修改配置文件my.cnf,在配置文件[mysqld]下添加skip-grant-tables,重启MySQL服务即可免密码登录  其中--skip-grant-tables 选项前面曾经介绍过,意思是启动 MySQL 服务的时候跳过权限表认证。 启动后,连接到 MySQL 的 root 将不需要口令。[mysqld]skip-gran..
原创
160阅读
0评论
0点赞
发布博客于 3 月前

【Redis】——redis cluster介绍

一、前言 redis最开始使用主从模式做集群,若master宕机需要手动配置slave转为master;后来为了高可用提出来哨兵模式,该模式下有一个哨兵监视master和slave,若master宕机可自动将slave转为master,但它也有一个问题,就是不能动态扩充;所以在3.x提出cluster集群模式。二、redis-cluster设计 Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。每个节点都负责进行数据读写操作,每个...
转载
61阅读
0评论
0点赞
发布博客于 3 月前

【数据库】——分布式数据库的分区总结

一、前言 本文涉及的概念较多,同时涉及到的数据库也较多。有redis、hbase、es、mongo、zk等,行文省略了很多细节,所以本文适合有一定分布式数据库经验的人,仅供参考。本文行文主要回答下边四个问题:分区是什么? 分区怎么分的? 分区之后怎么平衡? 分区之后如何路由?二、概念 分区(partition),在MongoDB,Elasticsearch中被称为分片(shard),在HBase中称之为区域(Region),Bigtable中则是表块(tablet),...
原创
94阅读
1评论
0点赞
发布博客于 3 月前

【Redis】——引入redis-cluster-proxy使得Redis Cluster对Kubernetes外部可提供服务

一、前言 这几年云计算发展迅猛,服务容器化在docker和k8s的发展下变成了潮流。无状态服务容器化相对来说较为简单,难得是有状态服务(诸如各数据库)容器化。本文讲讲redis集群容器化后,部署到k8s中怎么暴露服务使得k8s集群外部的服务能够连接redis.本文先说怎么用,再介绍redis-cluster-proxy。二、Redis Cluster容器化需要解决的问题1. Redis Cluster数据持久化 -> 可以通过StatefulSet + PVC来...
原创
309阅读
1评论
0点赞
发布博客于 3 月前

【PostgreSQL】——主从流复制

一、前言 PostgreSQL号称是最先进的开源数据库,对标oracle。不过从使用角度来看,个人认为pg过于学院派了,使用上比较不友好。它的设计理念还是很先进的。我今天写本文主要是从主从的角度聊一下postgreSQL。postgresql 提供了主从复制功能,有基于文件的拷贝和基于 tcp 流的数据传输两种方式。两种方式都是传输 wal 数据,前者是等待生成一个完整的wal文件后,才会触发传输,后者是实时传输的。可以看出来基于文件方式的延迟会比较高,而且wal文件有可能没来得及传输就被损坏了,..
原创
77阅读
1评论
0点赞
发布博客于 4 月前

【k8s】——leaderelection选举策略实现组件高可用

一、前言 分布式服务绕不开一个词:选主。今天主要来聊一下k8s中是如何通过leaderelection来实现组件的高可用的。在k8s本身的组件中,kube-scheduler和kube-manager-controller两个组件是有leader选举的,这个选举机制是k8s对于这两个组件的高可用保障。即正常情况下kube-scheduler或kube-manager-controller组件的多个副本只有一个是处于业务逻辑运行状态,其它副本则不断的尝试去获取锁,去竞争leader,直到自己成为le..
原创
336阅读
1评论
0点赞
发布博客于 4 月前

【k8s】——k8s的GC机制

一、前言 一说到GC,很多人(包括我在内)第一反应是内存的垃圾回收,尤其是javaer们,面试最爱考的八股文就是java的垃圾回收。不过今天要说的这个k8s的GC和java的不是一回事。你可以理解为广义的垃圾回收,因为在k8s的世界里,万物皆是资源。而GC就是回收资源。Kubelet的GC功能将清理未使用的image和container。Kubelet每分钟对container执行一次GC,每5分钟对image执行一次GC。二、k8s GC机制 K8s 实现了一种「Casca...
原创
217阅读
0评论
0点赞
发布博客于 4 月前

【云计算】——SaaS/PaaS/IaaS

一、前言云服务只是一个统称,可以分成三大类。IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service SaaS:软件服务,Software-as-a-service
原创
95阅读
0评论
0点赞
发布博客于 4 月前

【MySQL】——golang操作mysql数据库

一、前言 golang适合写中间件,今年一直在做数据库相关的工作,用的也是golang,短平快的写过一波代码之后开始回过头来做一个总结。在golang中,提供了标准的数据库接口database/sql包。https://draveness.me/golang/docs/part4-advanced/ch09-stdlib/golang-database-sql/https://www.cnblogs.com/traditional/p/11905780.html...
原创
81阅读
0评论
0点赞
发布博客于 5 月前

【k8s错误处理】——unable to retrieve the complete list of server APIs

一、前言 打算开一个专栏,写一些k8s中遇到的问题,不定时更新。报错信息:Error: could not get apiVersions from Kubernetes: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request二、排查问题$ kubect...
原创
1608阅读
0评论
0点赞
发布博客于 7 月前

【MongoDB】——mongodb权限管理(含golang代码)

一、前言 默认情况下,MongoDB实例启动运行时是没有启用用户访问权限控制的,也就是说,在实例本机服务器上都可以随意登录实例进行各种操作,MongoDB不会对连接客户端进行用户验证,可以想象这是非常危险的。MongoDB使用的是基于角色的访问控制(Role-Based Access Control,RBAC)来管理用户对实例的访问,角色控制2.4开始引入,详情链接,通过对用户授予一个或多个角色来控制用户访问数据库资源的权限和数据库操作的权限,在对用户分配角色之前,用户无法访问实例。本文记录...
原创
176阅读
0评论
0点赞
发布博客于 7 月前

【架构设计】——k8s云平台上分布式应用架构浅谈

一、前言 这篇文章我其实写了很久,有小半年时间。迟迟没发,也是犹豫了很久,都不知道怎么取名,因为内容有点形而上的感觉,不涉及具体实现代码,所以干脆大言不惭的说这是架构设计吧。二、系统架构 在基于k8s的云平台上我们要设计一套完整的业务系统,一般都可以分成四个模块:无状态服务管理子系统、有状态服务管理子系统、调度子系统和持久化子系统四个模块,系统总体框架图如图1所示: ...
原创
382阅读
0评论
0点赞
发布博客于 8 月前

【MySQL】——自增主键ID

一、前言 我们常用mysql,在设计表结构的时候必须考虑主键的事情。mysql数据库中有一个主键生成规则,就是自增。本文就给大家从几个维度说明一下mysql自增主键。二、主键设置原则主键不可修改 对于数据库来说,主键其实是可以修改的,只要不和其他主键冲突就可以。但是,对于应用来说,如果一条记录要修改主键,那就会出大问题。因为主键的第二个作用是让其他表的外键引用自己,从而实现关系结构。一旦某个表的主键发生了变化,就会导致所有引用了该表的数据必须全部修改外键。很多Web应用的数据库并不...
原创
230阅读
0评论
0点赞
发布博客于 8 月前

【MySQL】——MySQL的版本演变史和新特性

一、前言 大家可能也发现了,我最近在死磕MySQL了。MySQL应该是我们用的最多的关系型数据库了。因为工作需要,基础架构开发数据库多版本支持是绕不开的,今天好好整理了一下发现,mysql也不学好,版本从5.7大跨步进入8.0。那都有哪些版本,分别有什么改变呢?这就是本文要说的事情。二、MySQL版本演变史下面仅从产品特性的角度梳理其发展过程中的里程碑事件。1995年,MySQL 1.0发布,仅供内部使用。 1996年,MySQL 3.11.1发布,直接跳过了MySQL 2....
原创
803阅读
0评论
3点赞
发布博客于 8 月前

【MySQL】——MySQL系列之慢查询

一、前言 最近在做云平台的mysql数据库,对于mysql的一些常用配置做了梳理,本文单独拿出来mysql的慢查询是因为mysql慢查询比较重要,能快速帮助我们定位mysql慢的原因,特此记录。 MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中(日志可以写入文件或者数据库表,如果对性能要求高的话,建议写文件)。默认情况下,MySQL数据库是不开启慢...
原创
65阅读
0评论
0点赞
发布博客于 8 月前

【MySQL】——mysql 中间件mysql-router

一、前言 MySQL Router最早是作为MySQL-Proxy的替代方案出现的。作为一个轻量级中间件,MySQL Router可在应用程序和后端MySQL服务器之间提供透明路由和负载均衡,从而有效提高MySQL数据库服务的高可用性与可伸缩行。MySQL Router 2.0是其初始版本,适用于MySQL Fabric用户,但已被弃用,不再支持。MySQL Router 2.1为支持MySQL InnoDB Cluster而引入,MySQL Router 8.0则是MySQL Router...
原创
201阅读
0评论
0点赞
发布博客于 8 月前

【Kubernetes】——pod资源深度解析

一、前言 接触k8s也有小一年了。跟着需求走很容易囫囵吞枣式的学习k8s, 知其然而不知其所以然。周末正好有时间,再回过头来看看k8s的实现方式。刚看了前几张官方文档,就产生了一个疑问:k8s为何要引入pod作为其控制的最小单元,直接用容器不好吗?带着这个疑问,好好翻阅了一下资料,特此记录一下。二、pod是什么? Pod是 Kubernetes 项目中最小的 API 对象,而Pod也是由容器组组成的。Pod 里的所有容器,共享的是同一个 Network Namespace,并...
原创
288阅读
0评论
0点赞
发布博客于 9 月前

【OSS】——阿里云OSS作为k8s存储(pv/pvc)实践

一、前言 关于k8s的存储知识,大家可以参考博文应用存储和持久化数据卷:核心知识和Kubernetes 存储架构及插件使用,我这就不科普了。阿里云官网上的文档都是基于阿里云自己的k8s的,找了半天资料也没有文章好好介绍一下自己通过kubeadm搭建的k8s集群该怎么用阿里云的oss作为pv/pvc使用,今天这篇文章就是我踩坑之后写下来作为记录的。说明:OSS 数据卷是使用 OSSFS 文件进行挂载的 FUSE 文件系统,适合于读文件场景。例如:读配置文件、视频、图片文件等场景。 OSSF..
原创
1478阅读
0评论
0点赞
发布博客于 9 月前

【go语言】——基础语法

一. 命名规则 go 语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则 必须以一个字母或下划线_开头,后面可以跟任意数量的字母、数字或下划线 go 语言中大小写字母认为是不同的 go 语言中有 25 个关键字,不能用于自定义名字 break default func interface select case defter go map struct chan e
原创
122阅读
0评论
0点赞
发布博客于 9 月前

【mongodb】——mongodb总结

一、前言 mongodb是目前比较流行的一个基于分布式文件存储的数据库,它是一个介于关系数据库和非关系数据库(NoSQL)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。mongoDB中将一条数据存储为一个文档(document),数据结构由键值(key-value)对组成。 其中文档类似于我们平常编程中用到的JSON对象。 文档中的字段值可以包含其他文档,数组及文档数组。mongoDB中相关概念与我们熟悉的SQL概念对比如下:MongoDB术语/概念 说明 对比SQ...
原创
599阅读
0评论
0点赞
发布博客于 10 月前

【mongodb】——YCSB压测mongodb

一、前言 我们做数据库的benchmark主要是想了解数据库在某一个配置下性能究竟怎样,最近在k8s中压测了一下mongodb的性能,因为所做内容都是在公司的业务上,所以测试的代码就不放了。本文的总结是梳理一下YCSB这个测试工具对mongodb的压测。其实在k8s上操作和裸机操作原理都是一样的,只是k8s上操作比裸机部署的操作相当于“加了个壳”,你可以把YCSB封装成docker镜像,通过job来完成你的压测部署。二、测试工具测试选取YCSB(Yahoo! Cloud ...
原创
178阅读
0评论
0点赞
发布博客于 10 月前

【Golang】——信号处理

一、前言Golang 的系统信号处理主要涉及os包、os.signal包以及syscall包.其中最主要的函数是signal包中的Notify函数:func Notify(c chan<- os.Signal, sig …os.Signal)该函数会将进程收到的系统Signal转发给channel c.转发哪些信号由该函数的可变参数决定,如果你没有传入sig参数,那么Notify会将系统收到的所有信号转发给c.如果你像下面这样调用Notify:signal.Notify(c, sysc
原创
174阅读
0评论
0点赞
发布博客于 10 月前

【kubernets】——client-go库使用(k8s四种客户端介绍)

一、前言 client-go是一个调用kubernetes集群资源对象API的客户端,即通过client-go实现对kubernetes集群中资源对象(包括deployment、service、ingress、replicaSet、pod、namespace、node等)的增删改查等操作。大部分对kubernetes进行前置API封装的二次开发都通过client-go这个第三方包来实现。Kubernetes官方从2016年8月份开始,将Kubernetes资源操作相关的核心源码抽取出来,独立出...
原创
298阅读
0评论
0点赞
发布博客于 10 月前

【MySQL】——MySQL 5.7 MGR(单主模式)

一、前言 mysql应该是广大开发们用的最多的数据库了。单节点mysql没啥好说的,官方文档看起来就行了。不过对于集群来说,高可用这些就有点迷糊了,今天这个文章只是浅层次的总结一下。在5.7.17的官方文档中有详细地描述如何设置Single-Primary MGR的方法。Deploying Group Replication in Single-Primary Mode(https://dev.mysql.com/doc/refman/5.7/en/group-replication-dep...
原创
353阅读
0评论
0点赞
发布博客于 10 月前

【MySQL】——mysql最大连接数

一、前言 项目中可能会遇到MySQL: ERROR 1040: Too many connections”的异常情况;Why:造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小。二、知识点 Mysql的max_connections参数用来设置最大连接(用户)数。每个连接MYSQL的用户均算作一个连接,max_connections的默认值为100。这个数值对于...
原创
1046阅读
0评论
0点赞
发布博客于 11 月前

【elasticsearch】——用ILM策略自动完成冷热数据分离

一、前言 从Elastic Stack 迎来 6.6 版本后,就增加了ILM生命周期管理的功能。下面我们从以下几个方面来分析:为什么索引会有生命?什么是索引生命周期? ILM 是如何划分索引生命周期的? ILM 是如何管理索引生命周期的?二、回答问题问题1:为什么索引有生命?答:这就要从 Elasticsearch 的应用场景来看了。 在业务搜索场景,用户会将业务数据存储在 Elasticsearch 中,比如商品数据、订单数据、用户数据等,实现快速的全文检...
原创
498阅读
0评论
0点赞
发布博客于 9 月前

【k8s】——资源限制

一、前言 kubernetes最大的优势之一:它能够有效地利用计算资源。对于资源的使用,k8s本身支持资源的配置。在K8s中定义Pod中运行容器有两个维度的限制: 1. 资源需求:即运行Pod的节点必须满足运行Pod的最基本需求才能运行Pod。   如: Pod运行至少需要2G内存,1核CPU 2. 资源限额:即运行Pod期间,可能内存使用量会增加,那最多能使用多少内存,...
原创
325阅读
0评论
0点赞
发布博客于 1 年前

【k8s】——ingress原理和应用

一、前言 我们说k8s 的服务(service)时说暴露了service的三种方式ClusterIP、NodePort与LoadBalance,这几种方式都是在service的维度提供的,service的作用体现在两个方面,对集群内部,它不断跟踪pod的变化,更新endpoint中对应pod的对象,提供了ip不断变化的pod的服务发现机制,对集群外部,他类似负载均衡器,可以在集群内外...
原创
716阅读
0评论
0点赞
发布博客于 1 年前

【k8s】——NodeSelector/Taints/Affinity 使用说明

一、前言 NodeSelector:如果需要限制Pod到指定的Node上运行,则可以给Node打标签并给Pod配置NodeSelector。 NodeAffinity节点亲和性,是Pod上定义的一种属性,使Pod能够按我们的要求调度到某个Node上,而Taints则恰恰相反,它可以让Node拒绝运行Pod,甚至驱逐Pod。Taints(污点)是Node的一个属性,设置了...
原创
901阅读
0评论
0点赞
发布博客于 1 年前

【mongodb】——数据库高可用集群构建模式之——mongodb篇

一、前言 1、写在前边的废话 最近因工作原因接触了mysql、mongodb、redis、elasticsearch等几个数据库的高可用集群搭建,深感自己对分布式数据库知识的欠缺。特此好好研读了一下几个数据库的集群搭建原理,出一个系列。 2、真正的前言 Mongodb一共有三种集群搭建的方式:Replica Set(副本集) Sharding...
原创
237阅读
5评论
0点赞
发布博客于 1 年前

【kubernets】——特定namespace 中部署 Tiller

一、前言 一般情况下Tiller 管理访问整个集群。当然,Tiller 正常工作并不一定要为它设置集群管理员访问权限。我们可以指定 Role 和 RoleBinding 来将 Tiller 的范围限制为特定的 namespace,而不是指定 ClusterRole 或 ClusterRoleBinding。二、部署$ kubectl create namespace ti...
原创
260阅读
0评论
0点赞
发布博客于 1 年前

【Kubernetes】——开启Aggregator Apiserver

一、前言 今天搭建了三节点k8s集群做测试用,具体流程可以参见我的博客:搭建k8s多节点集群。因为用到了扩展api,所以需要开启AA模式(API Aggregation)。API Aggregation 允许在不修改 Kubernetes 核心代码的同时扩展 Kubernetes API,即将第三方服务注册到 Kubernetes API 中,这样就可以通过 Kubernetes A...
原创
1246阅读
0评论
0点赞
发布博客于 1 年前

【Kubernets】——搭建k8s多节点集群

一、集群环境主机名 IP 角色 OS 组件 配置 node1 10.53.5.94 master Ubuntu 16.04.1 kube-apiserver kube-controller-manager kube-scheduler kube-proxy etcd coredns calico ...
原创
831阅读
3评论
1点赞
发布博客于 1 年前

【Elasticsearch】——curl操作elasticsearch

一、_cluster系列1、查询设置集群状态curl -XGET localhost:9200/_cluster/health?pretty=truepretty=true表示格式化输出level=indices 表示显示索引状态level=shards 表示显示分片信息2、显示集群系统信息,包括CPU JVM等等curl -XGET localhost:9200/_...
原创
164阅读
0评论
0点赞
发布博客于 1 年前

【k8s】——Kubernetes知识盘点

1.前言2.架构图5.Service介绍5.1.1.1.什么是Service  service是k8s中的一个重要概念,主要是提供负载均衡和服务自动发现。  Service 是由 kube-proxy 组件,加上 iptables 来共同实现的。5.1.1.2.Service的创建  创建Service的方法有两种:  1.通过...
原创
369阅读
0评论
2点赞
发布博客于 1 年前

【k8s】——yaml文件写法汇总

一、前言 k8s可以说是面向yaml文件编程,官方文档有很详细的说明各类yaml文件的写法。二、yaml文件语法 参考博客:https://www.cnblogs.com/wn1m/p/11286109.html。在Kubernetes中,只需要知道list和map就行。List即列表,说白了就是数组,例如:args -beijing -shangh...
原创
904阅读
0评论
1点赞
发布博客于 1 年前

【Elasticsearch】——Index Templates(索引模板)

一、前言索引模板,简而言之,是一种复用机制。当新建一个 Elasticsearch 索引时,自动匹配模板,完成索引的基础部分搭建。注意:模板只在创建索引时应用。更改模板不会对现有索引产生影响。主要为如下几个部分:{ "order": 0, // 模板优先级 "template": "sample_info*", ...
原创
1098阅读
0评论
0点赞
发布博客于 1 年前

【Elasticsearch】——日志搜索引擎ES介绍及使用

一、前言 最近在做elasticsearch的工作,把搭建过程记录一下。 测试环境:ubuntu 16.04二、安装ES安装详解:官方文档1、本地单节点安装#1、获取安装包并解压$ curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-lin...
原创
1071阅读
0评论
0点赞
发布博客于 1 年前

【k8s】——apiVersion对照表

一、前言 k8s更新迭代比较快,apiVersion也在不断变化中,每个版本的对应的apiVersion略有不同,推荐大家去看官方文档:https://kubernetes.io/docs/reference/。二、对照表Kind apiVersion CertificateSigningRequest certificates.k8s.io/v1beta1...
翻译
5865阅读
0评论
0点赞
发布博客于 1 年前

【计算机原理】——CPU

一、概念物理CPU实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个逻辑CPU Linux用户对 /proc/cpuinfo 这个文件肯定不陌生. 它是用来存储cpu硬件信息的信息...
原创
97阅读
0评论
0点赞
发布博客于 2 年前

【计算机原理】——top命令中的虚拟内存和驻留内存区别

一、前言 最近做数据库插入性能的测试,对于top命令监控有一些疑问,查了资料后记录一下。要理解top命令关于内存使用情况的输出,我们必须首先搞清楚虚拟内存(Virtual Memory)和驻留内存(Resident Memory)两个概念。二、虚拟内存 首先需要强调的是虚拟内存不同于物理内存,虽然两者都包含内存字眼但是它们属于两个不同层面的概念。进程占用虚...
原创
1387阅读
0评论
0点赞
发布博客于 2 年前

【go语言】——静态编译go程序

一、前言 go语言编译的程序要放入docker容器中可能存在依赖的问题,为了解决这个问题,就需要在编译的时候完全静态编译。二、方法CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' .三、参考资料http://blog.wrouesnel.com/articles/Totally...
原创
744阅读
0评论
0点赞
发布博客于 2 年前

【minikube】——dashboard无法打开google chrome浏览器问题

一、前言 minikube的安装和介绍详见我的另一篇博客:https://blog.csdn.net/weixin_40449300/article/details/100110560二、问题 运行:sudo minikube dashboard打开谷歌浏览器失败,报错如下:$ sudo minikube dashboard???? Verifying dashb...
原创
1064阅读
0评论
0点赞
发布博客于 2 年前

【分布式数据库】——rqlite

一、前言 rqlite : 基于 SQLite 构建的轻量级、分布式关系数据库, 使用Go 编程实现,使用 Raft 算法来确保所有 SQLite 数据库实例的一致性。下载地址和方式:Download二、下载启动使用(伪分布式) 1、主节点启动#下载curl -L https://github.com/rqlite/rqlite/releases/downloa...
原创
1217阅读
0评论
0点赞
发布博客于 2 年前

【大数据】——TDengine原理及使用

一、前言 应用背景:随着移动互联网的普及,数据通讯成本的急剧下降,以及各种低成本的传感技术和智 能设备的出现,除传统的手机、计算机在实时采集数据之外,从手环、共享自行车、 出租车、智能电表、环境监测设备到电梯、大型设备、工业生产线等都在源源不断的 产生海量的实时数据发往云端。这些海量数据是企业宝贵的财富,能够帮助企业实时 监控业务或设备的运行情况,生成各种维度的报表,而且通过大数据分...
原创
11587阅读
4评论
1点赞
发布博客于 2 年前

【微服务】——Kubernetes架构及原理

一、前言 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要...
原创
341阅读
0评论
0点赞
发布博客于 2 年前

【微服务】——docker hub推送镜像

一、前言  DockerHub 是一个由 Docker 公司运行和管理的基于云的存储库。它是一个在线存储库,Docker 镜像可以由其他用户发布和使用。有两种库:公共存储库和私有存储库。docker images #查看本机docker镜像列表docker run -it <image name>  #运行docker镜像docker search nginx  #查找n...
原创
144阅读
0评论
0点赞
发布博客于 2 年前

【微服务】——k8s Service Catalog

一、前言 Service Catalog是kubernetes的一种API扩展,方便kubernetes集群内部应用访问集群外部、由第三方管理、提供的服务,如由云供应商提供的数据库服务。Service Catalog通过Service Brokers使集群内应用能够列出外部服务、提供实例、将集群内应用与实例绑定,使集群内应用不必关心外部服务的实现、管理细节。总结起来就是Service...
原创
1019阅读
0评论
1点赞
发布博客于 2 年前

【微服务】——Minikube安装使用Kubernetes

一、前言  Kubernetes将底层的计算资源连接在一起对外体现为一个高可用的计算机集群。Kubernetes将资源高度抽象化,允许将容器化的应用程序部署到集群中。为了使用这种新的部署模型,需要将应用程序和使用环境一起打包成容器。与过去的部署模型相比,容器化的应用程序更加灵活和可用,在新的部署模型中,应用程序被直接安装到特定的机器上,Kubernetes能够以更高效的方式在集群中实现容器的分...
原创
630阅读
0评论
1点赞
发布博客于 2 年前

【go语言】——go环境安装和项目部署(ubuntu系统)

一、前言 很多人将GO语言称为21世纪的C语言,因为GO不仅拥有C的简洁和性能,而且还很好的提供了21世纪互联网环境下服务端开发的各种实用特性,让开发者在语言级别就可以方便的得到自己想要的东西。语言层出不穷,出于对go语言的好奇,打算学习一下go语言。这篇博文主要是记录一些go语言的知识点,前期可能会不成体系,权当是学习笔记了。 本博客主要记录的是linux服务器下的安装部...
原创
1117阅读
0评论
1点赞
发布博客于 2 年前

【大数据】——HDFS文件块大小设置原则

一、前言 HDFS 中的文件在物理上是分块存储( block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在 hadoop2.x 版本中是 128M,老版本中是 64M。为什么要设置128M/64M?二、块大小设置原则 1、最小化寻址开销(减少磁盘寻道时间) HDFS的块比磁盘的块大(磁盘的块一般为512字节),其目的...
原创
876阅读
0评论
1点赞
发布博客于 2 年前

【大数据】——Mahout(Hadoop体系的机器学习)

一、前言 Mahout 是Apache的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout包含许多实现,包括聚类、分类、推荐过滤、频繁子项挖掘。此外,通过使用 Apache Hadoop 库,Mahout 可以有效地扩展到云中。Mahout 是基于Hadoop的机器学习和数据挖掘的一个分布式框架。Mahout用Map...
原创
152阅读
0评论
0点赞
发布博客于 2 年前

【时间序列】时间序列曲线平滑+预测(LSTM)

一、数据 样例:[7.847052, 7.847052, 7.861221, 7.861221, 7.879992, 7.879992, 7.876299, 7.876299, 7.878486, 7.878486, 7.900652, 7.900652, 7.903645, 7.903645, 7.854282, 7.854282, 7.865836, 7.865836, 7....
原创
2349阅读
2评论
3点赞
发布博客于 2 年前

【时间序列】曲线走势预测

一、前言 直接上代码和数据吧,说明有空了再补上。二、代码# -*- coding: utf-8 -*-from __future__ import print_functionimport pandas as pdimport timeimport warningsimport numpy as npimport timeimport matplotli...
原创
511阅读
0评论
0点赞
发布博客于 2 年前

【大数据】——Redis总结

一、Redis简介 Redis是一种键值系统,可以用来缓存或存储数据。Redis是“Remote Dictionary Server”(远程字典服务)的缩写,提供了字符串(string),列表(list),哈希(hash),集合(set)和有序集合(sorted set)等5种数据结构,这些数据结构使它成为一种便于使用的键值系统。 Redis是一种内存数据库,这使其在数...
原创
224阅读
0评论
0点赞
发布博客于 2 年前

【大数据】——Hbase中的LSM树

一、前言哈希存储引擎 是哈希表的持久化实现,支持增、删、改以及随机读取操作,但不支持顺序扫描,对应的存储系统为key-value存储系统。对于key-value的插入以及查询,哈希表的复杂度都是O(1),明显比树的操作O(n)快,如果不需要有序的遍历数据,哈希表就是your Mr.Right B树存储引擎是B树的持久化实现,不仅支持单条记录的增、删、读、改操作,还支持顺序扫描(B+树的叶子...
原创
1164阅读
0评论
0点赞
发布博客于 2 年前

【知识图谱】——图卷积神经网络(GCN)

一、前言 深度学习一直都是被几大经典模型给统治着,如CNN、RNN等等,它们无论再CV还是NLP领域都取得了优异的效果,那这个GCN是怎么跑出来的?是因为我们发现了很多CNN、RNN无法解决或者效果不好的问题——图结构的数据。我们做图像识别,对象是图片,是一个二维的结构,于是人们发明了CNN这种神奇的模型来提取图片的特征。CNN的核心在于它的kernel,kernel是一个个小窗口,...
原创
10722阅读
0评论
6点赞
发布博客于 2 年前

【NLP竞赛】——在线评论的细粒度分析(含代码)

一、前言 在线评论的细粒度情感分析对于深刻理解商家和用户、挖掘用户情感等方面有至关重要的价值,并且在互联网行业有极其广泛的应用,主要用于个性化推荐、智能搜索、产品反馈、业务安全等。此次博文所述的数据集,共包含6大类20个细粒度要素的情感倾向。根据标注的细粒度要素的情感倾向建立算法,对用户评论进行情感挖掘。AI挑战赛简介二、数据集 1、下载地址:https://pan.b...
原创
1255阅读
0评论
2点赞
发布博客于 2 年前

【大数据】——Redis使用单线程速度为何快?

一、前言 实习面试时,被问到:Redis使用单线程速度为何快?一下把我问住了,遂回来学习总结一波。二、Redis为什么是单线程 因为CPU不是Redis的瓶颈。Redis的瓶颈最有可能是机器内存或者网络带宽,既然单线程容易实现,而且CPU不会成为瓶颈,那就顺理成章地采用单线程的方案了。(注:redis 单线程指的是网络请求模块使用了一个线程,即一个线程处理...
原创
207阅读
0评论
0点赞
发布博客于 2 年前

【Tips】——统计文件数量及行数

一、简单命令#查看当前目录下的文件数量(不包含子目录中的文件)ls -l|grep "^-"| wc -l#查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录ls -lR|grep "^-"| wc -l#查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上Rls -l|grep "^d"| wc -l#查询当前路径下的指定...
原创
734阅读
0评论
0点赞
发布博客于 2 年前

【大数据】——redis统计信息info

一、前言Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供String,list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 性能极高– Redis能读的速度是110000次/s,写的速度是81000次/s...
原创
639阅读
0评论
0点赞
发布博客于 2 年前

【大数据】——Hbase总结

一、前言 HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行...
原创
339阅读
0评论
0点赞
发布博客于 2 年前

【Tips】——实用的linux命令

一、ls命令-l:列出长数据串,包含文件的属性与权限数据等-a:列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)-d:仅列出目录本身,而不是列出目录的文件数据-h:将文件容量以较易读的方式(GB,kB等)列出来-R:连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来ls -lh //列出所在目录下的所有文件...
原创
380阅读
0评论
0点赞
发布博客于 2 年前

【深度学习】——神经网络DNN/CNN/RNN/LSTM内部结构区别

一、DNN深度神经网络 先说DNN,从结构上来说他和传统意义上的NN(神经网络)没什么区别,但是神经网络发展时遇到了一些瓶颈问题。一开始的神经元不能表示异或运算,科学家通过增加网络层数,增加隐藏层可以表达。并发现神经网络的层数直接决定了它对现实的表达能力。但是随着层数的增加会出现局部函数越来越容易出现局部最优解的现象,用数据训练深层网络有时候还不如浅层网络,并会出现梯度消失的问题...
原创
1974阅读
0评论
0点赞
发布博客于 2 年前

【知识图谱】——美团大脑的构建(知识图谱落地应用)

一、前言 先放一张师兄回实验室讲课照片镇楼,膜拜师兄。 主讲者:王仲远,博士,美团AI平台部NLP中心负责人,点评搜索智能中心负责人。在国际顶级学术会议发表论文30余篇,获得ICDE 2015最佳论文奖,并是ACL 2016 Tutorial “Understanding Short Texts”主讲人,出版学术专著3部,获得美国专利5项。此前,博士曾担任微软亚洲研究...
原创
3028阅读
0评论
0点赞
发布博客于 2 年前

【自然语言处理】——模型总结

一、前言 自然语言处理这几年发展迅猛,模型更新迭代太快。特此在这做一个记录,我会持续更新内容。二、NLP知识体系三、NLP模型总结朴素贝叶斯 在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数...
原创
2368阅读
0评论
0点赞
发布博客于 2 年前

ssh隧道穿透连接内网机器&端口映射

一、前言 多台服务器组成的集群并不是每台都配置外网访问,大部分采用的策略是集群彼此通过内网连接。再通过统一的公共机(跳转机)访问外网。本文就是基于这样一种网络结构,写明如何通过xshell的隧道技术连接内网服务器。二、前提 1、本文假设一下服务器情况,跳转机地址:220.111.111.111,内网服务器两台:192.168.1.11192.168.1.12。...
原创
3105阅读
0评论
1点赞
发布博客于 2 年前

【机器学习】——分类算法小结

一、分类算法简介(1)决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。构造决策树的目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。它采用自顶向下的递归方式,在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。...
原创
1410阅读
0评论
0点赞
发布博客于 2 年前

GPU原理和应用

一、前言 区块链,深度学习发展迅猛,GPU登上了舞台。二、GPU是什么? GPU即 Graphics Process Unit,译为“图形处理器”。GPU是显示卡的核心部件,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。今天的GPU不仅具备高质量和高性能图形处理能力,还可用于通用计算。今天,GPU已经不再局限于3D图形处理了,GPU通...
原创
1733阅读
0评论
0点赞
发布博客于 2 年前

【Java进阶】——高性能服务器上进行JVM调优方案(32位/64位)

一、问题:如何在高性能服务器上进行JVM调优? 方案一:采用64位操作系统,并为JVM分配大内存; 方案二:选择使用32位JDK集群来充分利用高性能机器的硬件资源。(可以是docker或者其他) 视频讲解:https://www.bilibili.com/video/av44880257/?p=17二、方案一>>64位...
原创
157阅读
0评论
0点赞
发布博客于 2 年前

OLTP-Bench Testbed

【原文信息】D. Van Aken, D. E. Difallah, A. Pavlo, C. Curino, and P. Cudré-Mauroux, "BenchPress: Dynamic Workload Control in the OLTP-Bench Testbed," inProceedings of the 2015 ACM SIGMOD International Co...
翻译
222阅读
0评论
0点赞
发布博客于 2 年前

【机器学习化DBMS】——A Demonstration of the OtterTune

【原文信息】B. Zhang, D. V. Aken, J. Wang, T. Dai, S. Jiang, J. Lao, S. Sheng, A. Pavlo, and G. J. Gordon, "A Demonstration of the OtterTune Automatic Database Management System Tuning Service,"PVLDB, vo...
翻译
492阅读
0评论
0点赞
发布博客于 2 年前

【自然语言处理】——分类的评价指标

一、四个基本概念 TP、True Positive真阳性:预测为正,实际也为正 FP、False Positive假阳性:预测为正,实际为负 FN、False Negative 假阴性:预测与负、实际为正 TN、True Negative 真阴性:预测为负、实际也为负。 【一致判真假,预测判...
原创
707阅读
0评论
0点赞
发布博客于 2 年前

【Python】——leetcode题解一览表

一、前言 【写在前面的废话】 有日子没刷题了,去年用python刷简单题的时候在博客上写下解题思路和代码,日积月累的多了之后没有一个索引真的是太乱了。所以今天特意花了一中午的时间把题解链接都整合在了一起。 更多python题解可参看我的github:https://github.com/Teingi/test 题号 ...
原创
6965阅读
0评论
4点赞
发布博客于 2 年前

【自然语言处理】——特征工程知识体系总结

一、前言 维基百科中给特征工程做出了简单定义:特征工程是利用数据领域的相关知识来创建能够使机器学习算法达到最佳性能的特征的过程。简而言之,特征工程就是一个把原始数据转变成特征的过程,这些特征可以很好的描述这些数据,并且利用它们建立的模型在未知数据上的表现性能可以达到最优(或者接近最佳性能)。从数学的角度来看,特征工程就是去设计输入变量X。二、特征工程知识框架三、特征清洗...
原创
1211阅读
0评论
0点赞
发布博客于 2 年前

【数学之美】——回归分析总结

一、前言 1、“回归”的由来 回归,最初是遗传学中的一个名词,是由生物学家兼统计学家高尔顿首先提出来的。他在研究人类的身高时,发现高个子回归于人口的平均身高,而矮个子则从另一个方向回归于人口的平均身高。 参考文章:https://blog.csdn.net/denghecsdn/article/details/77334160 2、回归...
原创
396阅读
0评论
0点赞
发布博客于 2 年前

【java基础】——修饰符顺序总结

一、前言 最近深陷java里了,发现好多知识点没有系统整理过。今天把java修饰符的顺序整理成一个表格,方便日后查看。其实Java中的修饰符出现在字段声明中时的顺序与oracle规定的FieldModifier顺序一致,这是习惯顺序,形成规范。不遵守这个约定没有技术影响,但是会降低代码的可读性,因为大多数开发人员都习惯于标准顺序。二、修饰符顺序一览表 ...
原创
1158阅读
0评论
2点赞
发布博客于 2 年前

【java进阶】——happens before规则

一、前言 从JDK5开始,提出了happens-before的概念,通过这个概念来阐述操作之间的内存可见性。如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须存在happens-before关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间。二、happens-before原则定义 1、如果一个操作happens-before(...
原创
165阅读
0评论
0点赞
发布博客于 2 年前

【java进阶】——序列化和反序列化

一、序列化和反序列化的概念  把对象转换为字节序列的过程称为对象的序列化。  把字节序列恢复为对象的过程称为对象的反序列化。  对象的序列化主要有两种用途:  1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;  2) 在网络上传送对象的字节序列。  在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的...
原创
76阅读
0评论
0点赞
发布博客于 2 年前

【算法】——布隆过滤器

前言 在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上;在网络爬虫里,一个网址是否被访问过等等。最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集...
原创
87阅读
0评论
0点赞
发布博客于 2 年前

【java进阶】——关键字transient

一、应用场景 如果一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作(主要涉及到序列化操作,本地序列化缓存也适用)中被传输,这些信息对应的变量就可以加上transient关键字。换句话说,这个字段的生命周期仅存于调用者的内存中而不会写到磁盘里持久化。二、transient关键字 Java的serialization提供了一种持久化对象...
原创
87阅读
0评论
0点赞
发布博客于 2 年前

【机器学习】——K近邻算法(KNN)

一 . K-近邻算法(KNN)概述 最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。 KNN是通过测量不同特征...
原创
171阅读
0评论
0点赞
发布博客于 2 年前

【MySQL】——主从架构(读写分离)

一、前言 目前,大部分的主流关系型数据库都提供了主从热备功能,通过配置两台(或多台)数据库的主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站可以利用数据库的这一功能,实现数据库的读写分离,从而改善数据库的负载压力。  利用数据库的读写分离,Web服务器在写数据的时候,访问主数据库(Master),主数据库通过主从复制机制将数据更新同步到从数据库(Slav...
原创
1082阅读
0评论
0点赞
发布博客于 2 年前

【数据库】——分库分表

一、前言 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。不太严格的讲,对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个server上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个...
原创
171阅读
0评论
0点赞
发布博客于 2 年前

【java进阶】——java的CAS机制

一、什么是CAS 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁,锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,...
原创
105阅读
0评论
0点赞
发布博客于 2 年前

【java进阶】——java锁机制

一、前言 多线程开发离不开锁机制,现在的Java语言中,提供了2种锁,一种是语言特性提供的内置锁,还有一种是 java.util.concurrent.locks 包中的锁。二、synchronized 首先来看看用的比较多的synchronized。synchronized是用于为某个代码块的提供锁机制,在java的对象中会隐式的拥有一个锁,这个锁被称为内置锁(in...
原创
189阅读
0评论
0点赞
发布博客于 2 年前

【数据库】mysql卡顿问题查找和解决方法

一、所遇问题 写在前边的废话:今天面试阿里的时候问到过类似问题,以前做调优的时候都是现查现用,缺乏总结,面试时答得也不好,今天趁此机会做一个梳理,知识只有沉淀下来才是自己的东西。 问题:mysql 运行过程中超级卡顿,并出现CPU使用率居高不下的情况,如何定位问题点以及如何解决?二、占用CPU过高,可能原因 1)一般来讲,排除高并发的因素,还是要...
原创
5568阅读
0评论
2点赞
发布博客于 2 年前

Oracle数据库临时表

一、前言 我们在创建数据表的时候,若没有特殊的指明,那么我们创建的表是一个永久的关系型表格,也就是说,这个表格中对应的数据,除非是我们显示的删除的话,表中的数据是永远都存在的。相对应的,在Oracle数据库中还有一种类型的表,叫做临时表。这个临时表跟永久表最大的区别就是表中的数据不会永远的存在。当一个会话结束或者事务结束的时候,这个临时表中的数据,不用用户自己删除,数据库自己会自动...
原创
6110阅读
0评论
2点赞
发布博客于 2 年前

设计一个有getMin功能的栈

【题目】实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小的元素的操作。【要求】1、pop、push、getMin操作的时间复杂度都是O(1)2、设计的栈类型可以输用现成的栈结构;import java.util.Stack;public class MyStack1 { private Stack<Integer> stackData...
原创
53阅读
0评论
0点赞
发布博客于 2 年前