skywalking-2-客户端-php的安装与使用 skywalking的客户端支持php,真的很棒。官方安装文档:https://skywalking.apache.org/docs/skywalking-php/next/en/setup/service-agent/php-agent/readme/
解决springboot mvn错误 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin chatgpt出来后很少再去看博客了,不过偶尔写一下还是挺好的。
Elasticsearch 索引管理:使用别名来修改字段类型 在 Elasticsearch 中,一个常见的问题是如何修改已存在的索引的字段类型。这是一个棘手的问题,因为 Elasticsearch 本身不允许直接修改字段类型。如果删除现有索引,重新建索引的话则会导致数据丢失。有一个方法是使用别名索引,当需要调整索引时可以先新建一个索引,把数据导入到新索引,之后将别名索引指向新索引。这些操作都是在es上完成,对于应用程序来说是无感知的。
解决macos使用brew安装php8.2后,老版本提示‘/usr/local/opt/icu4c/lib/libicui18n.70.dylib‘ (no such file) 可以看到/usr/local/opt/icu4c/lib/下没有对应文件了。今天使用另一种方式来修复。
linux-mount-01-mountflags传参 mountmount2介绍了mount调用的定义NAME top mount - mount filesystemSYNOPSIS top #include <sys/mount.h> int mount(const char *source, const char *target, const char *filesystemtype, unsigned long mountf
graphql入门使用-构建查询 书接上回在想接下来是先学习查询还是服务端开发时,我陷入了沉思。不想这个沉思持续了近5个月,本以为无法结束时,却在金秋十月迎来了转机。我发现更好的方式是两者结合在一起:先个服务端graphql接口,接着就这个接口的查询。ok,开始吧。环境准备服务端服务端使用js来写,使用的web框架是express,用到了express-graphql和graphql。为了便于调试,我们使用nodemon来运行。服务端的参考代码:https://github.com/warshipJian/express-g
graphql入门使用-查询 前言本篇文章可能稍微长了一点,您需要先准备好时间,以免中途要去上厕所什么的,发生中断。我们一般都是用REST API, 即后端定义好API的数据结构和参数,前端再传参请求获取数据。比如我们有个获取用户列表的接口:GET /user/list, 返回用户id,用户名,创建时间:[ { "id": 1, "name": "jack", "created_at": "2021-05-10 13:14:15" }, { "id": 2,
解决laravel框架在腾讯云 Serverless Framework 中439错误 Process exited before completing request问题 有时用composer更新了第三方库后,访问接口报错如下:{ errorCode: 1, errorMessage: "Process exited before completing request", statusCode: 439,}查看文档看不到什么的,可以去云函数后台看日志,会看到报错如下:START RequestId:4e3bae45f7b3af3aa133dcf14dd57d57Fatal error: Composer detected issues in your p
用go写一个docker(9)-初步构造容器 通过前面的准备我们可以开始写docker了。一口吃不出一个胖子,我们慢慢吃,到最后不会吃成胖子,但能把东西吃完也是极好的。所以我们先实现一个run版的docker,后续再慢慢加其他功能。本次的完整代码可参考:https://github.com/xianlubird/mydocker/tree/code-3.2为了便于理解,我精简了一下:https://github.com/warshipJian/jiandocker/tree/code-1主要看command.go文件:var runCo
用go写一个docker(8)-介绍两个库cli和logrus 有了前面知识就可以开始写一个简单的docker了,但为了让这个docker好看一点,我们先了解一下会用到的两个库:cli 和 logrusgithub.com/urfave/cligithub.com/sirupsen/logrus关于go的版本这里再啰嗦一下,go在1.12之后就正式支持go module了,通过go module管理使用第三方包非常的方便。如无特殊说明,这里用的go版本都是1.15的,使用go module来管理维护第三方库(和go path说再见吧)。cli我们
用go写一个docker(7)-linux的AUFS文件系统 namespace和cgroup解决的是容器的资源隔离和限制问题。容器的另一个特点是镜像分层,我们可以在基础镜像上加自己定制的东西。今天我们就以AUFS为例,来看看docker的文件系统。什么是AUFSAUFS 的全称是 Advanced Multi-layered unification filesytem,它的主要功能是:把多个目录结合成一个目录,对外使用。以下面为例,我们先直观地体验一下。1.准备工作准备三个目录,分别命名为:base,mnt,top。在base目录下创建名为base.txt
使用openvpn连通多个机房内网 一.环境简述之前一直使用公网ip来连接各个机房的服务器,现在ip不太够用了,而且有些机器也不需要用到公网ip.通过openvpn将多个机房连接起来,组成一个局域网,机器ip可以做到唯一性,便于标识.既节省了ip.又方便管理.本例环境如下,服务器使用的系统为centos 7.1 北京机房内网网段 172.16.2.0/24,服务器公网ip 20.20.20.20,内网网关172.16.2.1
用go写一个docker(6)-linux的cgroup namespace可以帮我们把资源隔离,但不能对资源的使用做限制。比如我想限制某个进程用多少CPU,多少内存话,怎么办呢?答案就是用cgroup什么是cgroupcgroup是Linux内核提供的一种可以限制、记录、隔离进程组(process groups)所使用的物理资源(如:cpu,memory,IO等等)的机制。体验下cgroup我们直接体验下cgroup的内存和CPU限制。一.cgroup的内存限制示例代码mem.go:package mainimport ( "fmt"
极简jmeter使用教程 起因测试美眉对性能压测很感兴趣,说想试试jmeter,问有没有保姆级的jemter教程。我思考了一下决定亲手写一个。什么是jmeterjmeter是一款压力测试工具。ok,那我们先搞清楚什么压力测试?打个比方,有个网站:www.xiaoxiaoguo.cn,我想知道这个网站能不能同时承受10个人访问的话,要怎么做呢?最简单的办法就是找10个人,喊3,2,1,然后这个10个人同时操作电脑打开网站。找10个人应该不是很难,但假如要测试100个人,1万个人呢?这个方法就不行了。在实际的测试工作中,我们
用go写一个docker(5)-linux的namespace(下) 上篇我们用go语言体验了namespace,今天了解下namespace的实现。namespace的目的是资源隔离,即资源都在,但不能让你看到。比如进程a只属于namespace A,则不能让a看到namespace B的资源,除非把a拉到namespace B中。namespace隔离的资源有:系统的hostname网络资源(网卡信息,路由信息等)进程信息(有哪些进程,父进程子进程间的关系等)用户信息(有哪些用户,组,用户的权限是什么)文件系统信息(有什么可用的文件系统等)等等...那
用go写一个docker(4)-linux的namespace(上) 温馨提示:之后环境使用的系统如无特殊说明,都是用Linux,代码要在Linux上跑,在Windows或macos上是跑不起来的。这里使用的内核是4.15.0-88-generic,系统是Ubuntu 18.04。Namespace 是Linux提供的一种内核级别隔离机制,目前提供的能力如下:名称标识符隔离资源CgroupCLONE_NEWCGROUPcgroup根目录IpcCLONE_NEWIPCSystem V IPC(信号量、消息队列和共享内存)和POSIX m