自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (1)
  • 收藏
  • 关注

转载 ubuntu搭建docker harbor

ubuntu搭建docker harbor常见问题

2022-07-27 11:21:27 570 1

原创 wsl2 设置端口映射

wsl2 设置端口映射docker 内端口如何映射到主机端口

2022-07-27 10:07:05 1435

原创 大话设计模式

大话设计模式。开发中使用设计模式

2022-06-14 09:53:12 232

转载 配置GOPRIVATE引用私有仓库

golang 引用私有仓库

2022-06-13 11:17:52 8078

转载 浅析Redis分布式集群倾斜问题

对于分布式系统而言,整个集群处理请求的效率和存储容量,往往取决于集群中响应最慢或存储增长最快的节点。所以在系统设计和容量规划时,我们尽量保障集群中各节点的“数据和请求分布均衡“。但在实际生产系统中,出现数据容量和请求倾斜(类似Data Skew)问题是比较常见的。示例:2019年春节抽奖服务,业务评估峰值qps是2w,转化到redis集群为10w qps和5GB内存存储,部署5个分片每个分片1GB+2W qps的redis集群(包含预留容量)。结果活动开始时,才发现服务存在”热点key",请求严重倾斜,

2022-05-07 15:52:11 427

原创 Docker 创建私有仓库

Docker上传镜像报错:denied: requested access to the resource is denied!!!因为要求 tag 必须是 hub 仓库的用户名才行。1.必须先把tag修改成 前缀是仓库名字docker tag mykafka:v1.0.0 127.0.0.1:5000/mykafka2.pushdocker push 127.0.0.1:5000/mykafka:latest3.查看是否成功curl -XGET http://127.0.0

2022-03-18 14:18:09 249

转载 Docker 快速安装Jenkins完美教程转载的

一、前言  有人问,为什么要用Jenkins?我说下我以前开发的痛点,在一些中小型企业,每次开发一个项目完成后,需要打包部署,可能没有专门的运维人员,只能开发人员去把项目打成一个war包,可能这个项目已经上线了,需要把服务关,在部署到服务器上,将项目启动起来,这个时候可能某个用户正在操作某些功能上的东西,如果你隔三差五的部署一下,这样的话对用户的体验也不好,自己也是烦的很,总是打包拖到服务器上。希望小型企业工作人员学习一下,配置可能复杂,但是你配置好了之后,你只需要把代码提交到Git或者Svn上,自动构

2022-02-17 20:37:48 469

转载 redis集群操作

Redis Cluster 在5.0之后取消了ruby脚本redis-trib.rb的支持(手动命令行添加集群的方式不变),集合到redis-cli里,避免了再安装ruby的相关环境。直接使用redis-clit的参数--cluster 来取代。为方便自己后面查询就说明下如何使用该命令进行Cluster的创建和管理,关于Cluster的相关说明可以查看官网或则Redis Cluster部署、管理和测试。环境:系统版本:Ubuntu 14.04Redis版本:5.0.5机器IP:192.1...

2022-02-15 10:29:13 602

原创 Ubuntu Linux 中设置或更改时区

timedatectl 查看状态1.查询你需要设置的时区timedatectl list-timezones2.设置timedatectl set-timezone Europe/Paris3.拷贝时区文件覆盖localtimecp /usr/share/zoneinfo/Asia/Bangkok /etc/localtime4.修改以后 date -R可能没生效修改 .bashrc文件TZ='Asia/Bangkok'export TZ5.退出重新登..

2022-02-07 15:11:54 1149

转载 分布式日志收集工具分析比较

目录写在最前:为什么做日志收集系统❓一、多种日志收集工具比较1、背景介绍2、Facebook 的 Scribe3、Apache 的 Chukwa4、LinkedIn 的 Kafka5、Cloudera 的 Flume OG6、“星星”小结7、众星捧月之 Apache 的 Flume NGFlume NG 架构:Flume NG 特性:Flume NG 节点组成图:Flume NG 常用组件删减节点角色,脱离 zookeeper用户配置变化之安装

2021-12-10 09:46:00 529

转载 Storm大数据处理

1.hadoop有master与slave,Storm与之对应的节点是什么?2.Storm控制节点上面运行一个后台程序被称之为什么?3.Supervisor的作用是什么?4.Topology与Worker之间的关系是什么?5.Nimbus和Supervisor之间的所有协调工作有master来完成,还是Zookeeper集群完成?6.storm稳定的原因是什么?7.如何运行Topology?strom jar all-your-code.jar backtype.storm.MyTopolog

2021-12-09 19:19:19 1373

转载 Redis进阶实践之十二 Redis的Cluster集群动态扩容

Redis进阶实践之十二 Redis的Cluster集群动态扩容一、引言   上一篇文章我们一步一步的教大家搭建了Redis的Cluster集群环境,形成了3个主节点和3个从节点的Cluster的环境。当然,大家可以使用 Cluster info 命令查看Cluster集群的状态,也可以使用Cluster Nodes 命令来详细了解Cluster集群每个节点的详细信息和关系。我们可以在主节点上增加数据、操作数据,也可以在从节点上读取数据,这些操作当然都没有问题。我们今天这篇文章主要是讲解一下如何...

2021-11-25 16:59:37 513

原创 redis分布式锁 golang使用记录

1.为什么需要redis分布式锁?世界服无状态服务器,玩家数据处理过程不一定落地到哪个节点的协程,这时候为了保证数据的一致性,就需要有redis分布式锁来锁定数据,保证同个数据只能在一个协程处理实现分布式锁要满足3点:多进程可见,互斥,可重入。1多进程可见:所有操作数据的节点进程都能连接锁对应的redis集群;2互斥:各个进程之间持有锁是互斥的;我们可以通过redis的setnx实现,只有第一次执行的才会成功并返回1,其它情况返回0。那么问题来了,同一个进程内怎么办呢?当然是进程内也加锁..

2021-11-24 15:11:52 737

转载 Prometheus+Grafana监控平台搭建

什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。Prometheus的特点· 多维度数据模型。· 灵活的查询语言。· 不依赖分布式存储,单个服务器节点是自主的。· 通过基于HTTP的pull方式采集时序数据。· 可以通过中间网关进行时序列数据推送。· 通过服务发现或者静态配置来发现目标服务对象。· 支持多种多样的图表

2021-10-25 11:44:41 209

转载 redis集群数据迁移方式、宕机

数据迁移方式转载:https://blog.csdn.net/tianpeng341204/article/details/78963850Redis Cluster数据分片机制基础概念集群:是一个提供多个Redis(分布式)节点间共享数据的程序集。集群部署:Redis 集群的键空间被分割为 16384 hash个槽(slot), 集群的最大节点数量也是 16384 个关系:cluster>node>slot>key分片:Redis Cluster在设计中没有

2021-09-01 15:41:50 1725

转载 golang 日志分析_容器日志采集利器:Filebeat深度剖析与实践

在云原生时代和容器化浪潮中,容器的日志采集是一个看起来不起眼却又无法忽视的重要议题。对于容器日志采集我们常用的工具有filebeat和fluentd,两者对比各有优劣,相比基于ruby的fluentd,考虑到可定制性,我们一般默认选择golang技术栈的filbeat作为主力的日志采集agent。相比较传统的日志采集方式,容器化下单节点会运行更多的服务,负载也会有更短的生命周期,而这些更容易对日志采集agent造成压力,虽然filebeat足够轻量级和高性能,但如果不了解filebeat的机制,不合理的配

2021-08-25 11:56:20 1090

转载 ELK原理与介绍

为什么用到ELK:一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套

2021-08-25 10:34:14 205

转载 彪悍开源的分析数据库-ClickHouse

作者:欧阳辰 链接:https://zhuanlan.zhihu.com/p/22165241 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。今天介绍一个来自俄罗斯的凶猛彪悍的分析数据库:ClickHouse,它是今年6月开源,俄语社区为主,好酒不怕巷子深。本文内容较长,分为三个部分:走马观花,死而后生,遥指杏花村;第一章,走马观花,初步了解一下基本特性;第二章,死而后生,介绍ClickHouse的技术架构演化的今生...

2021-08-24 18:17:53 762

转载 ClickHouse深度揭秘

引言ClickHouse是近年来备受关注的开源列式数据库,主要用于数据分析(OLAP)领域。目前国内社区火热,各个大厂纷纷跟进大规模使用:今日头条内部用ClickHouse来做用户行为分析,内部一共几千个ClickHouse节点,单集群最大1200节点,总数据量几十PB,日增原始数据300TB左右。 腾讯内部用ClickHouse做游戏数据分析,并且为之建立了一整套监控运维体系。 携程内部从18年7月份开始接入试用,目前80%的业务都跑在ClickHouse上。每天数据增量十多亿,近百万次查询.

2021-08-24 12:07:47 305

转载 MongoDB分片集群机制及原理

1. MongoDB常见的部署架构 * 单机版 * 复制集 * 分片集群 2. 为什么要使用分片集群 * 数据容量日益增大,访问性能日渐下降,怎么破? * 新品上线异常火爆,如何支撑更多用户并发? * 单库已有10TB数据,恢复需要1-2天,如何加速? * 地理分布数据3. 分片如何解决问题? 银行交易表单内10亿笔资料超负荷运转,交易号 0-1,000,000,000 把数据分成两两半,放到两个库里。 .

2021-08-23 12:11:10 525

原创 windows安装运行docker报错问题

1.docker运行版本是wsl2 但是系统(ubuntu)是wsl1;导致运行docker指令报错;解决办法,设置下升级ubuntu到wsl2支持:https://docs.microsoft.com/zh-cn/windows/wsl/install-win10>wsl --set-version Ubuntu-20.04 2总之就是要docker和系统保持一致要么是wsl1 要么是wsl2...

2021-08-23 11:49:25 1035

转载 Mongodb数据库的索引操作(建立索引注意点)

Mongodb的索引操作1.为什么mongdb需要创建索引加快查询速度进行数据的去重2.mongodb创建简单的索引方法语法:db.集合名.ensureIndex({属性:1}),1表示升序, -1表示降序3.创建索引前后查询速度对比测试:插入10万条数据到数据库中插入数据:for(i=0;i<100000;i++){db.t1.insert({name:'test'+i,age:i})}1创建索引前:db.t1.find({name:'test10000'})db.

2021-08-23 10:34:08 1268

转载 Mongodb集群搭建的三种方式

Mongodb是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key-Value形式。关于Mongodb的特点,这里就不多介绍了,大家可以去看看官方说明:http://docs.mongodb.org/manual/ 今天主要来说说Mongodb的三种集群方式的搭建:Replica Set / Sharding / Master-Slaver。这里只说明最简单的集群搭建方式(生产环境),如果有多个节点可以此类推或者查看官方文档。OS是Ubuntu_x64系统,客户端用的是J...

2021-08-23 10:32:59 2192

转载 linux库函数mmap()原理

目录1.mmap基本概念2.mmap内存映射原理3.mmap和常规文件操作的区别4.mmap优点总结5.mmap相关函数6.mmap使用细节7.mmap使用demo1.mmap基本概念mmap是一种内存映射文件的方法,即将一个文件或者其它对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对映关系。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页面到对应的文件磁盘上,即完成了对文件的操作而不必再调用re

2021-08-23 10:13:39 183

转载 Redis集群搭建的三种方式

一、Redis主从1.1 Redis主从原理和MySQL需要主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生性能瓶颈,特别是在读压力上,为了分担压力,Redis支持主从复制。Redis的主从结构一主一从,一主多从或级联结构,复制类型可以根据是否是全量而分为全量同步和增量同步。下图为级联结构:1.1.1 全量同步Redis全量复制一般发生在slave的初始阶段,这时slave需要将master上的数据都复制一份,具体步骤如下:(1)、slave连接mast

2021-08-19 16:36:02 2046

转载 开源日志系统比较:scribe、chukwa、kafka、flume

1. 背景介绍许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征:(1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦;(2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统;(3) 具有高可扩展性。即:当数据量增加时,可以通过增加节点进行水平扩展。本文从设计架构,负载均衡,可扩展性和容错性等方面对比了当今开源的日志系统,包括facebook的scribe,apach

2021-08-17 14:46:28 864

转载 使用Nomad构建弹性基础架构:计划和自我修复

这是使用Nomad构建弹性基础架构系列文章的第二篇。在本系列中,我们将探讨Nomad如何处理意外故障、停机和集群基础设施的常规维护,通常不需要操作员干预。在这篇文章中,我们将会看到Nomad客户端如何通过驱动健康检查和心跳来实现快速、准确的调度以及自我修复。Nomad 客户端代理Nomad代理是一个长期运行的进程,运行在属于Nomad集群的每台机器上。代理的行为取决于它是在client模式还是server模式下运行。客户端负责运行任务,而服务端负责管理集群。每个集群通常有3或5个服务端代理节..

2021-08-17 14:42:23 578

转载 nomad简明教程

k8s其实太复杂,对于小团队来说,光是hold住k8s就要花好几个人力,而且k8s更新迭代太快了,有种上了贼船就下不来的感觉。nomad就简单多了,就是一个调度器,啥也不带,显得有点简陋,不过,对于中小型团队来说,完全足够。下面是 k8s 和 nomad 的简单对比:对比项 k8s nomad 简单易用 复杂 简单 概念复杂度 复杂 中等 更新迭代速度 太快了 合理 安装复杂度 复杂 简单 功能丰富程度 丰富

2021-08-17 10:34:11 4867

原创 Windows10 WSL Ubuntu 本地查看ubuntu文件方法

1.打开文件,路径输入\\wsl$\Ubuntu-20.04

2021-07-09 14:35:57 2372

转载 redis分布式锁与redsync库源码分析

redsync是redis官方推荐的go版本分布式锁实现,标准的官方redlock算法实现,阅读了下源码并顺便复习一下redis分布式锁原理。一. redlock算法单点场景首先来看单redis实例的场景,这是集群模式的基础。这种场景下实现分布式锁比较简单加锁各节点通过set key value nx ex即可,如果set执行成功,则表明加锁成功,否则失败,其中value为随机串,用来判断是否是当前应用实例加的锁;nx用来判断该key是否存在以实现排他特性,ex用来指定锁的过期时间,避免死锁

2021-07-07 17:54:54 352

原创 Windows10 WSL Ubuntu 忘记 root 密码如何重置

关闭Ubuntu窗口 打开Powershell 或 cmd, 以root默认登陆wsl -u root。 别关,在这个cmd窗口内(重点)输入wsl进入, 输入passwd your_username,确认密码。 关闭 WSL。exit

2021-07-06 11:24:08 929 3

原创 golang 字符串转成byte数组,会发生内存拷贝吗

问题字符串转成byte数组,会发生内存拷贝吗?怎么答字符串转成切片,会产生拷贝。严格来说,只要是发生类型强转都会发生内存拷贝。那么问题来了。频繁的内存拷贝操作听起来对性能不大友好。有没有什么办法可以在字符串转成切片的时候不用发生拷贝呢?代码实现package mainimport ( "fmt" "reflect" "unsafe")func main() { a :="aaa" ssh := *(*reflect.StringHeader)(unsafe.Poi

2021-07-05 11:53:58 937 1

转载 golang内存逃逸和内存分配

先说说golang中内存分配方式:主要是堆(heap)和栈(stack)分配两种。栈分配廉价,堆分配昂贵。栈分配:对于栈的操作只有入栈和出栈两种指令,属于静态资源分配。堆分配:堆中分配的空间,在结束使用之后需要垃圾回收器进行闲置空间回收,属于动态资源分配。使用栈分配:函数的内部中不对外开放的局部变量,只作用于函数中。使用堆分配:1.函数的内部中对外开放的局部变量。2.变量所需内存超出栈所提供最大容量。看下面这段代码:package mainimport( "fmt"..

2021-07-05 09:45:42 325

转载 一致性哈希和哈希槽

1、集群分片模式如果 redis 只用复制功能做主从,那么当数据量巨大的情况下,单机情况下可能已经承受不下一份数据,更不用说是主从都要各自保存一份完整的数据。在这种情况下,数据分片是一个非常好的解决办法。redis 的 custer 正是用于解决该问题。它主要提供两个功能:1、自动对数据分片,落到各个节点上2、即使集群部分节点失效或者连接不上,依然可以继续处理命令对于第二点,它的功能有点类似于 sentienl 的故障转移,在这里不细说。下面详细了解下 redis 的槽位分片原理,...

2021-05-07 10:42:11 933

转载 分布式系统理论--CAP理论、BASE理论

问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票  假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘客也购买了同一张车票。假如说售票系统没有进行一致性的保障,两人都购票成功了。而在检票口检票的时候,其中一位

2021-05-07 10:06:27 259

转载 Redis常见面试题

Redis常见面试题http://jasontec.cn/articles/2019/12/20/1576826633007.html介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式...

2021-05-07 10:03:04 69

转载 dotNET 高阶反射(RTTI):.NET 程序集反编译函数为 IL 代码

我们知道在 “反射” 的应用中是可以在运行时 “动态的即时编译IL”(.NET Emit ≈≈≈ C/C++ __emit),那么既然可以即时编译,自然可以逆向,但这是属于 “高阶” 反射方面的内容,基本的说任何只要是托管类型的程式,都是可以在运行时IL逆转的,类似 JavaScript 语言逆转代码相对 .NET、JVM 会极其直观,像设计立于 “通用语言平台” 的 “过程虚拟机” 都没办法做到这种事情,我们xiang,参照对应平台的指令集进行人工的或者自动化的逆向过程。当然本人对并没有耗费太...

2021-04-23 20:27:10 451

转载 mysql中utf8和utf8mb4区别

MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。 二、内容描述 那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8...

2021-03-02 11:10:17 96

转载 C# 多线程并发下各种锁的性能

一般情况下,只要涉及到多线程编程,程序的复杂性就会显著上升,性能显著下降,BUG出现的概率大大提升。多线程编程本意是将一段程序并行运行,提升数据处理能力,但是由于大部分情况下都涉及到共有资源的竞争,所以修改资源对象时必须加锁处理。但是锁的实现有很多种方法,下面就来一起了解一下在C#语言中几种锁的实现与其性能表现。几种锁的运用方式1、原子锁通过原子操作Interlocked.CompareExchange实现“无锁”竞争。private static int isLock;privat

2021-02-25 16:34:48 3717

转载 C#中volatile的用法

恐怕比较一下volatile和synchronized的不同是最容易解释清楚的。volatile是变量修饰符,而synchronized则作用于一段代码或方法;看如下三句get代码:inti1;intgeti1(){returni1;} volatileinti2;intgeti2(){returni2;} inti3;synchronizedintgeti3(){returni3;}  geti1()得到存储...

2021-02-20 14:10:42 176

cocos2dxAPI

cocos2dxAPI很不错啊,跟大家分享下!自己也在看这个,希望对大家有帮助,告别没网的痛苦了,哈哈

2014-04-11

空空如也

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

TA关注的人

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