自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

find joy in the ordinary

  • 博客(147)
  • 资源 (3)
  • 收藏
  • 关注

原创 PHP二维数组实现array_diff

php 二维数组实现类似array_diff的逻辑

2023-12-06 17:40:44 115

原创 docker部署prometheus+grafana服务器监控(三) - 配置grafana

配置grafana实现Linux系统监控

2023-10-24 19:51:27 413

原创 docker部署prometheus+grafana服务器监控(二) - 安装数据收集器 node-exporter

在/etc/init.d/目录下,创建一个以服务名为基础的文件,比如/etc/init.d/node_exporter。运行如下命令测试 node-exporter 收集器启动情况,正常情况下会输出服务端口。systemctl版本。

2023-10-24 19:32:43 398

原创 docker部署prometheus+grafana服务器监控(一)

Prometheus 是有 SoundCloud 开发的开源监控系统和时序数据库,基于 Go 语言开发。通过基于 HTTP 的 pull 方式采集时序数据,通过服务发现或静态配置去获取要采集的目标服务器,支持多节点工作,支持多种可视化图表及仪表盘。

2023-10-24 19:28:23 331

原创 debian或者Ubuntu在使用apt-get update出现GPG erro

问题:debian 9.x stretch。GPG error: http://mirrors.aliyun.com/debian-archive/debian stretch-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9

2023-10-08 17:50:48 1332

原创 docker使用php较老版本出现pecl无法安装扩展问题

docker使用php较老版本出现pecl无法安装扩展php5.6- `Channel "pear.php.net" is not responding over http://, failed with message: Connection to ssl://pear.php.net:443' failed:`- `No releases available for package "pecl.php.net/imagick"`- `Connection to 'ssl://pecl.php.n

2023-10-08 17:33:23 558

原创 charles

【代码】charles。

2023-09-12 16:08:07 62

原创 canal番外篇-otter

目前项目中使用的是mysql5.5,计划升级为mysql8.1,版本跨度较大,市面上可靠工具选择较少。otter符合预期,使用过程中除GitHub issues中提到的问题外(上述otter-all中已经修复),未发现其他异常。存量同步直接mysqldump。然后记录binlog位置(canal配置中用到)成功启动后,会出现http://xxx:8080,直接访问,表示成功,避免出现某些查询不可用建议保持编码、字符集一致。正常配置为有权限的用户即可,点击验证连接数据源出现。配置数据表(用到正则)

2023-07-13 18:07:25 332

原创 GO 游戏网络开发工程师招聘面试题

GO 游戏网络开发工程师招聘面试题

2023-04-26 15:25:59 574 1

原创 高级工程师面试 - 其他

我的理解是微服务架构的优点在于能够提高系统的可扩展性、灵活性和可维护性,可以更好地适应快速变化的需求。微服务架构是一种基于服务的架构风格,它将大型应用程序拆分成多个小型服务,每个服务都运行在独立的进程中,并通过轻量级的通信机制相互通信,以实现松耦合和高度可扩展的应用程序。容器技术是一种虚拟化技术,它可以在操作系统层面上实现轻量级的隔离和虚拟化,以提供应用程序运行所需的环境和资源。在使用缓存时需要根据具体业务场景选择不同的缓存方案和缓存策略,并进行适当的配置和监控,以保证应用的性能和可靠性。

2023-04-18 17:21:44 371

原创 高级工程师面试 - MySQL

聚簇索引是指按照表中某一列的值来对记录进行排序,并将表中的数据存储在磁盘上连续的数据块中。在使用聚簇索引的情况下,查询表中某个范围的数据时效率很高,因为数据存储在连续的物理块中。非聚簇索引是指按照表中某一列的值来对记录进行排序,但数据存储在磁盘上与表的物理存储方式是不一致的。在使用非聚簇索引的情况下,查询某一范围内的数据时效率会比较低,因为需要先查找索引文件,然后再通过索引文件中的记录找到数据在磁盘上的物理位置。聚簇索引和非聚簇索引是数据库中两种不同的索引类型,它们的区别在于数据的存储方式和索引的结构。

2023-04-18 17:20:47 493

原创 高级工程师面试 -队列

综上所述,保证消息队列的高可用性和可靠性需要从多个方面考虑,包括集群化部署、数据备份、消息确认机制、消费者负载均衡和异常处理等。同时,在实际应用中还需要根据具体情况进行调整和优化。在消息队列中,死信通常是指由于某种原因导致消息无法被消费者成功处理,例如消息格式错误、消费者异常退出等情况。以上方法可以结合使用来实现消息队列中的去重。需要根据具体的业务需求和场景选择合适的方法。需要根据具体的业务场景和系统架构选择适合的方法来提高队列的消费速度。避免重复消费是消息队列中常见的问题。

2023-04-18 17:20:13 305

原创 高级工程师面试 - 缓存

强一致性:即每个读操作都要保证读到的是最新的数据。b. 缓存更新策略:在缓存中设置一个缓存时间,当数据过期时,缓存不会立即失效,而是在下次有请求访问到该数据时才会更新缓存。a. 读写分离:将缓存分为读缓存和写缓存两部分,读操作只从读缓存中读取数据,写操作则先更新写缓存,然后异步地将数据写入读缓存中,从而实现最终一致性。在分布式缓存系统中,由于缓存数据分布在多个节点上,如何保证缓存数据的一致性是一个重要的问题。以上是几种解决分布式缓存一致性问题的方法,不同的方法适用于不同的场景,需要根据实际情况进行选择。

2023-04-18 17:18:48 935

原创 高级工程师面试 - Redis

Redis Modules 是 Redis 的扩展功能,它们是 Redis 的动态库,可以通过 Redis 的模块接口进行加载和卸载。Redis Modules 提供了一些高级功能,如 Redis RedLock 和 Redis Raft 等。Redis RedLock 是一个分布式锁实现,可以在分布式系统中实现锁的互斥访问。它通过多个 Redis 实例的加锁算法,确保在分布式系统中只有一个客户端可以获得锁。

2023-04-18 17:17:10 826

原创 高级工程师面试 - PHP

PHP高级工程师面试

2023-04-18 17:01:24 425

原创 使用K3S部署集群,并部署nginx服务

k3s集群部署实现低配版kubernetes,本文提供k3s集群、kubernetes-dashboard详细保姆试部署教程。

2023-03-24 09:30:33 1675

原创 docker-compose 部署 Flink集群

【代码】docker-compose 部署 Flink集群。

2023-03-22 15:32:16 286

原创 离线安装Flink,使用Flink SQL同步数据。

离线安装Flink,使用Flink SQL 零代码实现 mysql 同步至 mysql

2023-03-22 01:26:44 497

原创 中国姓氏大全

中国姓氏。

2023-01-31 16:26:02 782

原创 mac 使用brew install 安装工具 Error: Command failed with exit 128: git

【代码】mac 使用brew install 安装工具 Error: Command failed with exit 128: git。

2022-12-28 17:50:24 1077

原创 Laravel手动添加第三方SDK vendor 类自动加载

如果遇到成年老项目,或者不规范开发导致不能正常使用 composer require xxxx,可以用如下方式解决,以七牛云SDK为例进行处理。假设项目位置为:~/project,七牛云SDK位置为:~/qiniu。

2022-12-01 09:51:39 810

原创 十分钟入门 mysql8.x InnoDB全文索引

mysql8.x innodb 全文索引配置、使用

2022-06-06 16:42:34 198

原创 docker安装image过程中ERROR: Get “https://registry-1.docker.io/v2/“: net/http: TLS handshake timeout

ERROR: Get “https://registry-1.docker.io/v2/”: net/http: TLS handshake timeout查询可用IP dig @114.114.114.114 registry-1.docker.io➜ harbor dig @114.114.114.114 registry-1.docker.io; <<>> DiG 9.10.6 <<>> @114.114.114.114 registr.

2022-04-25 11:29:07 2993

原创 mac(winodws) docker desktop 安装k8s

神奇的原因导致无法使用docker desktop直接安装k8s, 可以通过阿里云镜像安装。配置registry-mirrors# 选择一个或者多个都可以,阿里云的需要自己去后台获取{ "experimental": true, "debug": true, "registry-mirrors": [ "https://xxx.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https.

2022-04-24 13:55:50 1854

原创 Golang 格式化时间 yyyy-MM-dd

固定值time := "2006-01-02 15:04:05";20060102:得到的是yyyyMMdd。2006/01/02 15:04:得到的是yyyy/MM/dd HH:mm2006年01月02日 15点04分05秒:得到的是yyyy年MM月dd日 HH点mm分SS秒由来2006为Golang诞生时间,15是下午3点。帮助记忆的方法:1月2日3点4分5秒,2006年,-7时区,正好是1234567。...

2022-04-22 16:57:50 1993

原创 canal第三篇:配置多个instance

基于前两篇文章中的docker-composer.yaml调整canal-server在canal-server/conf/canal.properties 加入如下信息……# 多个使用 逗号 分割canal.destinations = example,example2……instance.properties在 canal-server/conf 创建文件夹example新建instance.propertiesexample2新建instance.properties.

2022-04-20 15:19:31 3269

转载 一口气说出 Redis 16 个常见使用场景

一口气说出 Redis 16 个常见使用场景 !一口气说出 Redis 16 个常见使用场景 !1、缓存String类型例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。2、数据共享分布式String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享例如:分布式Session<dependency> <groupId>org.springframework.session</groupId&g

2022-03-17 11:33:46 141

转载 一口气说出 9种 分布式ID生成方式,面试官有点懵了

一口气说出 9种 分布式ID生成方式,面试官有点懵了一口气说出 9种 分布式ID生成方式,面试官有点懵了一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标识一条数据

2022-03-17 11:28:43 132

原创 床车(房车)改造 电路升级必备设备(草拟)

房车电路改造设备表及简易电路图

2022-02-23 09:54:07 604

原创 多个docker-compose网络之间通信

开发过程中偶尔会遇到不同的docker-compose之前通信,例如1台redis(A)、1台应用服务(B)分别在不同的网络中即net1_net1、net2_net2中,当B想订阅A时会发现网络不通1. 网络net1_net1(A)目录 net1/docker-compose.ymldocker-compose.ymlversion: '3.5'# 网络配置networks: net1: driver: bridge net2_net2: external: tr.

2022-02-16 10:27:47 2489

原创 php+golang grpc客户端和服务端简单案例

grpc php 客户端,grpc golang 服务端 客户端 demo

2022-01-24 13:21:04 394

原创 canal小试牛刀第二篇:简单运行

github项目直达1. 启动docker进入根目录执行 docker-compose up。当看到如下相关信息表示相应服务已经成功启动:mysqlcanal-db | 2022-01-19T07:29:51.996555Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this chann

2022-01-19 16:24:44 2764

原创 canal小试牛刀第一篇:canal-server+kafka根据mysql binlog同步数据

1. 前情提要直接监听mysql的binlog同步数据可以对业务无侵入。数仓搭建必备利器。2. 准备工作了解canal-server了解kafka了解Canal Kafka了解mysql主从了解docker、docker-compose3. 配置相关mysql保存以下配置至./mysql/conf.d/slave.cnf[mysqld]log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1

2022-01-19 16:23:47 2472

原创 Kubernetes Dashboard 生成token

Kubernetes Dashboard Token

2021-12-24 12:33:16 7382 1

原创 安装Kubernetes Dashboard

Unable to connect to the server: dial tcp 182.43.124.6:443: i/o timeout

2021-12-24 11:25:46 1145

原创 ERROR Docker Engine API on Mac Osx

根据官方的文档Docker Desktop on Mac vs. Docker Toolbox, Docker Desktop on Mac只提供了UNIX socket/var/run/docker.sock, 并未提供tcp的监听(默认2375端口).如果使用linux的配置方式在Docker Desktop中配置host, Docker Desktop将无法启动.需要去~/.docker/daemon.json中删除hosts配置才能正常启动.通过下面的方式暴露出2375的tcp..

2021-09-22 11:25:07 116

原创 golang 设计模式

github地址:https://github.com/kai-xx/golang-design-patterns

2021-05-10 15:59:21 183

原创 go mod 使用

前言go version 需高于1.11配置环境变量go envGO111MODULE=onGOPROXY=https://goproxy.cn,directGOSUMDB=off修改GO111MODULEGO111MODULE 有三个值:off, on和auto(默认值)。GO111MODULE=offgo命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。GO111MODULE=ongo命

2021-04-16 14:44:50 142

原创 修改Mac的最大连接数、端口数(Too many open files )

使用jmeter压测服务器接口,发现,无论怎么优化,都会在22000样本左右的时候,出现连接超时或者无法找到路由之类的错误。但,把错误率降低到1%一下后,找两台机器同时压,两台机器都没有出现问题,服务也正常,就说嘛。实际瓶颈并非出现在服务器上,而是在本机。因为我使用的是mac,所以就去查了下mac的连接参数修改方法。最大连接数限制就是系统所能打开的最大文件数(文件描述符)的限制,分全局和进程两种,相应的命令如下:sysctl kern.maxfiles输出:kern.maxfiles: 12.

2020-08-21 13:36:18 2757

原创 MAC升级后无法使用rvictl(command not found: rvictl)

问题:Rvictl 命令不能使用了zsh: command not found: rvictl解决方案/Applications/Xcode.app/Contents/Resources/Packa里面有下面四个包然后安装,就是直接双击MobileDevice.pkg和MobileDeviceDevelopment.pkg文件在然后全局搜索rvictl,发现搬到这里来了/Library/Apple/usr/bin/打开进去发现可执行文件在这里,那好办啊。要么搬文件要么用的时候把路劲

2020-08-11 15:35:50 4608 1

openwrt-brcm2708-bcm2709-rpi-2-ext4-factory.img.gz

树莓派自研路由固件,实现文件管理,内网穿透,可以简单的作为自己的nas,同时也可以作为自己的居家小服务器,省去购买服务器的开销

2020-02-27

laravel-rewrite-log.zip

重写了日志格式 加入trace,一次请求的唯一标识 加入error级别信息推送,事例中使用企业微信群助手 让我们可以更优雅、更方便追踪日志信息

2019-11-12

录酷游戏录像

录酷游戏录像破解版,让你远离水印的苦恼。

2012-10-09

空空如也

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

TA关注的人

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