自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一见

技术人生 生活点滴

  • 博客(754)
  • 资源 (53)
  • 收藏
  • 关注

原创 NaN

关联博客:https://blog.csdn.net/aquesterhttps://www.cnblogs.com/aquesterhttp://aquester.blog.chinaunix.nethttps://github.com/eyjianpdf版本:https://download.csdn.net/user/aquester/uploadsLinux远程批量工具mooo...

2018-09-11 14:07:31 9548 3

原创 使用OpenSSL生成证书和私钥文件

使用OpenSSL生成证书和私钥文件

2024-05-27 16:55:35 257

原创 gorm的upsert操作不同字段

INSERT INTO …ON DUPLICATE KEY UPDATE”的应用,在 UPDATE 时不能更新字段 f_create_uid 和 f_create_time 的值,而必须更新 f_update_uid 和 f_update_time 的值。关键点在于指定 UPDATE 不更新的字段列表,实现依赖 gorm 的 tag,但如果 struct 的 field 名同表的 field 名,这没有此依赖。表的“INSERT INTO …

2024-05-23 18:06:01 177

原创 MySQL的自增ID连续性控制变量innodb_autoinc_lock_mode

在高并发环境下,建议使用连续模式(1)或交错模式(2)以提高性能,然而这可能会导致自增 ID 的不连续分配。在需要保持自增 ID 连续性的场景下,可以使用传统模式(0),但这可能会导致性能下降。这种策略可以提高性能,特别是在高并发环境下,但可能导致自增 ID 的不连续分配。当插入一行数据时,InnoDB 会锁定自增序列的一个范围,并在事务提交时释放锁。这种策略可以提高性能,特别是在高并发环境下,同时保持自增 ID 的连续性。这种策略可以避免自增 ID 的重复分配,但可能导致性能下降,特别是在高并发环境下。

2024-05-23 12:07:56 415

原创 gorm实现MySQL的INSERT INTO ... ON DUPLICATE KEY UPDATE差异化插入和更新

比如插入 f_create_uid,更新时忽略 f_create_uid,只更新 f_update_uid。可使用 gorm 的 BeforeCreate 和 BeforeUpdate 钩子,这两个钩子分别在创建和更新记录之前被调用。

2024-05-15 21:58:44 325

原创 释放系统C盘的ext4.vhdx

ext4.vhdx 是个虚拟磁盘,默认位置为 C:\Users{用户名}\AppData\Local\Docker\wsl\data\ext4.vhdx,会占用很大磁盘空间,可采用下列办法将其改到其它磁盘或分区,如D分区。成功后会释放 ext4.vhdx。

2024-05-14 19:36:17 879

原创 git之tag操作

常见git的tag操作

2024-05-11 09:26:07 209

原创 迁移Docker镜像存放目录

如果已经存了很多镜像,这一步可能要执行数小时才能完成。如果已经存了很多镜像,这一步可能要执行数分钟才能完成。

2024-04-04 17:11:18 367

原创 Windows的Linux子系统迁移

如果 VERSION 值为 1,参考 (https://docs.docker.com/desktop/wsl/)[https://docs.docker.com/desktop/wsl/] 进行修改。注意这里的“ubuntu2204.exe”名同发行版名称(distro name)相关,如果发行版名称为 Ubuntu,则对应的名为 ubuntu.exe。如需在 WSL 中使用 Docker,则必须为使用“Docker Desktop WSL 2”,也就是 VERSION 对应的值需为 0。

2024-03-27 14:44:06 341

原创 goland设置保存文件时不将4个空格转为TAB

goland设置保存文件时不将4个空格转为TAB

2024-03-13 09:50:21 687

原创 go的descriptorpb.Default_FileOptions_PhpGenericServices的undefined问题

【代码】go的descriptorpb.Default_FileOptions_PhpGenericServices的undefined问题。

2024-03-11 16:03:14 1308

原创 git的“You can‘t push commits with committe“解决方法

然后就可执行 git push 了,如果需要强制,可以:git push --force。

2024-03-05 22:59:38 1296

原创 根据建表sql语句生成go的struct代码工具

在 github 中找到一些 sql2struct,但要么是 chrome 插件,要么是在线工具,要么是需要连接 MySQL,不是很方便。本 sql2struct 根据 SQL 文件中的建表语句来生成 Go 的 struct,可集成到 Makefile 等中,方便使用。一个根据"CREATE TABLE"建表语句生成对应的Go语言结构体的工具,暂只支持 MySQL 表。

2024-03-03 16:39:47 790

原创 go写mysql取得自增字段值

如下一张 MySQL 的 innodb 表 X,用 go 编写程序,不指定 a 的值,指定 b 和 c 的值,往表 X 插入数据,如果数据已经存在则执行更新操作,成功后取得该笔插入或者更新的记录对应的 a 字段的值。该版本可以保持 a 值的连续性。实际可以再优化,去掉 select,先 insert 或者 update 即可。场景:有多张表,依据其中一张表的自增字段取得 id 值作为对象ID,然后使用这个Id插入到其他它表中。非事务版本不能保持 a 值的连续性。

2024-03-01 21:41:03 479

原创 配置项目的git

只需要编辑项目根目录下的 .git/config 文件,其中 .git 为根目录下的子目录。当需要操作多个来源不同仓库的项目时,需要做这个设置,比如一个来自 github.com,一个来自私有仓库的。

2024-02-24 09:32:33 729

原创 grpc-go通过context传递额外数据

metadata 是 grpc 内置的,用来往 RPC 服务传递 http 头数据,分 in 和 out 两种,对应的 key 都为一个空 struct,分别为:mdIncomingKey 和 mdOutgoingKey。注意 md 中的值会被加上中括号“[]”。

2024-02-19 10:07:54 671

原创 go-zero/grpc的rpc服务间传递额外数据

而且 key 只能由 数字、字母和三个特殊字符“-_.”组成,大写字母会自动被转为小写字母。go-zero/grpc的rpc服务间传递额外数据。

2024-02-18 23:04:49 877

原创 go-zero读取mysql部分字段

读取部分字段,使用函数 QueryRowPartialCtx。1、结构 X 中不参与的成员使用。要读取字段 ctime 值。2、Ctime 一定要用。

2024-02-17 00:10:25 632

原创 git如何将分支名由main改为master

要将 “master” 分支设置为默认分支,你需要在远程仓库中进行操作。在设置页面中,找到 “默认分支” 或 “默认分支名” 设置。这可能位于 “分支”、“仓库” 或 “版本控制” 部分。这将把本地的 “master” 分支推送到远程仓库,并设置 “master” 分支作为跟踪分支。将默认分支名称更改为 “master”。这将把当前分支(即 “main” 分支)重命名为 “master”。这可能需要点击 “保存”、“更新” 或 “应用” 按钮。现在,分支名已经从 “main” 更改为 “master”。

2024-02-04 14:16:51 2183

原创 微信小程序如何取得用户的openid

通过以上步骤,可以在微信小程序中获取用户的openid。在实际应用中,可以将openid作为用户身份的唯一标识,用于关联用户的数据和行为。首先,在微信开放平台(https://open.weixin.qq.com/)上注册一个小程序,并获取到AppID和AppSecret。在微信小程序中,可以通过调用微信提供的API来获取用户的openid。需要替换为实际的AppID、AppSecret和临时登录凭证。

2024-02-03 22:50:16 1830

原创 HMAC-SHA256和RSA-SHA256签名有什么区别?

HMAC-SHA256 是一种基于共享密钥的消息认证码,计算速度快,适用于验证数据的完整性和身份认证。RSA-SHA256 是一种基于非对称加密的数字签名方案,适用于验证发送方的身份,提供更强的安全性。在实际应用中,您可能需要根据具体需求和场景选择合适的签名算法。

2024-01-31 15:15:57 1312

原创 go-zero开发入门-初始化cache.ClusterConf示例

【代码】go-zero开发入门-初始化cache.ClusterConf示例。

2024-01-26 10:15:02 405

原创 go-zero配置DB的redis缓存

【代码】go-zero配置DB的redis缓存。

2024-01-25 18:42:44 720

原创 csharp使用ChromiumWebBrowser页面出现黑边和鼠标偏离问题

【代码】csharp使用ChromiumWebBrowser页面出现黑边和鼠标偏离问题。

2023-12-22 16:14:01 530

原创 go-zero开发入门之gateway深入研究1

这个函数的主要目的是将 gRPC 服务的方法映射到 HTTP RESTful API,并将生成的 API 添加到 HTTP 服务器中。通过这种方式,可以在 gRPC 服务的基础上提供一个 RESTful API,使得客户端可以使用 HTTP 调用 gRPC 服务。gateway.MustNewServer 调用了 rest.MustNewServer,但在 rest.MustNewServer 增加了 upstreams 的初始化。

2023-12-15 17:58:40 1091

原创 go-zero目录结构和说明

go-zero目录结构和说明

2023-12-15 10:07:01 711

原创 go-zero开发入门之网关往rpc服务传递数据2

go-zero 的网关服务实际是个 go-zero 的 API 服务,也就是一个 http 服务,或者说 rest 服务。

2023-12-13 21:49:37 1028

原创 go-zero开发入门之网关往rpc服务传递数据1

调用在 https://github.com/zeromicro/go-zero/blob/master/gateway/server.go 中进行的,上述调用会处理 HTTP 的 headers 数据,对于不是以字符串“Grpc-Metadata-”打头的会过滤掉,对于以字符串“Grpc-Metadata-”打头的会将“Grpc-Metadata-”转为“gateway-”。

2023-12-12 18:58:23 785 1

原创 go-zero开发入门-API网关鉴权开发示例

go-zero开发入门-API网关鉴权开发示例

2023-12-10 20:19:06 883

原创 go-zero开发入门-API服务开发示例

go-zero 开发 http API 服务示例

2023-12-08 11:03:12 915 2

原创 go-zero开发入门-API网关开发示例

开发一个 API 网关,代理 https://blog.csdn.net/Aquester/article/details/134856271 中的 RPC 服务。编译网关源码生成可执行程序文件生成被代理 RPC 服务的 pb 文件add.pb 是一个二进制文件。

2023-12-08 10:12:43 1097 1

原创 go-zero 的 etcd 配置

【代码】go-zero 的 etcd 配置。

2023-12-07 17:55:15 471

原创 “go mod tidy”之错误“not a valid zip file”

【代码】“go mod tidy”之错误“not a valid zip file”

2023-12-07 17:28:27 802

原创 go-zero 开发入门-加法客服端示例

基于 go-zero 框架的服务端和客户端开发示例

2023-12-07 15:14:33 1204

原创 go-zero 开发之安装 etcd

go-zero 之安装 etcd,本文只涉及 Linux 上的安装

2023-12-06 23:11:44 704

原创 go-zero 开发之安装 goctl 及 go-zero 开发依赖

【代码】go-zero 开发之安装 goctl 及 go-zero 开发依赖。

2023-12-06 22:43:51 847

原创 Go使用开源库go-excelize操作Excel文件

在上面的代码中,首先使用 excelize.OpenFile() 函数打开指定的 Excel 文件。然后使用 GetSheetMap() 函数获取所有的工作表名称,并使用 GetRows() 函数获取每个工作表的行数据,最后遍历所有行并打印每一行的数据。当然,这只是一个简单的示例,go-excelize 还提供了更多功能,例如读取和写入 Excel 文件、处理大数据等。更多详细信息,请参考 go-excelize 的官方文档。

2023-11-22 14:32:41 970

原创 APISIX源码安装问题解决

在本文写作时,“APISIX_VERSION=‘3.6.1’” 并不可用,需改为“APISIX_VERSION=‘3.6.0’”。重新执行 install-dependencies.sh 完成安装。

2023-11-10 19:41:24 786

原创 基于python+selenium的自动批量添加

基于python+selenium的自动批量添加

2023-09-15 16:04:28 450

原创 取得std::ifstream对象的文件描述符

【代码】取得std::ifstream对象的文件描述符。

2023-09-05 14:18:56 332

ejstatd一个增强型的jstatd

jstatd启动后会打开两个端口,其中一个端口可通过参数“-p”指定,如果不指定默认为1099,另一个是一个随机端口,不能参数指定。在防火墙环境使用不便,ejstatd是jstatd的增强版本,可指定端口,方便防火墙环境中使用。

2018-12-05

开源C++版本CGI库CGICC入门

  CGICC是一个C++语言实现的开源CGI库,采用LGPL授权协议,使用较为简单。   CGICC官网:http://www.gnu.org/software/cgicc/,截止2015/3/14,CGICC最新稳定版本为3.2.16,下载地址是:http://ftp.gnu.org/gnu/cgicc/cgicc-3.2.16.tar.gz,最新更新时间为2014/12/7(令人惊讶和欣慰的是作为古老的CGI,CGICC还在不断的更新)。

2018-12-04

互联网后台开发需要掌握什么?

  本文内容仅针对互联网后台开发从业人员。   互联网后台开发,通常意味着分布式、大数据,涉及到高性能、系统容灾、数据容灾、高可用性、数据一致性等。自从2008年Hadoop在华夏大地蓬勃发展,开源如火山爆发在业界百花齐放,茁壮成长。国内的BAT、华为和小米等也大量的参与了国际开源,甚至开源了大量优秀的久经考验的内部系统,如阿里的Tair、druid、fastjson、jstorm、AliSQL、RocketMQ和腾讯的RapidJSON、libco、PhxPaxos、PhxRPC、PhxQueue、PhxSQL、PaxosStore、MSEC、Tars、TAF等。 开源如此繁荣,需要感谢Google的三篇论文:《The Google File System》、《MapReduce: Simplified Data Processing on Large Clusters》和《Bigtable: A Distributed Storage System for Structured Data》,Google开源的Protocol buffers等对整个业界作用也十分巨大。

2018-11-01

大数据利器2018版

当下最流行的各类大数据、云计算开源资源列表,如:hadoop、spark、flink、hbase、redis等

2018-11-01

SSH2免密码登录OpenSSH

如何确定是OpenSSH还是SSH2? 执行命令“ssh -V”,通过它的输出,即可确定: SSH2 ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on OpenSSH OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

2018-10-11

两个openssh间免密码登录

以下针对的是openssh,而不是ssh,也不是ssh2。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过,操作环境为CentOS Linux release 7.0。 如何确定是OpenSSH还是SSH2?执行命令“ssh -V”,通过它的输出,即可确定

2018-10-11

OpenSSH登录SSH2

如何确定是OpenSSH还是SSH2? 执行命令“ssh -V”,通过它的输出,即可确定: SSH2 ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on OpenSSH OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010

2018-10-11

两个SSH2间免密码登录

以下针对的是ssh2,而不是ssh,也不是OpenSSH。配置分两部分:一是对登录机的配置,二是对被登录机的配置,其中登录机为客户端,被登录机为服务端,也就是解决客户端到服务端的无密码登录问题。下述涉及到的命令,可以直接拷贝到Linux终端上执行,已全部验证通过,操作环境为SuSE 10.1。

2018-10-11

ZooKeeper-3.4.6分布式安装指南

  介绍ZooKeeper-3.4.6版本的分布式安装,力求细致,提供精确的安装指导。本文的安装环境是64位的SuSE 10.1 Linux,也适用于ZooKeeper-3.4.8。   ZooKeeper节点间不需要互登录,因此不用配置免密码登录。

2018-09-10

LVS初步入门

  很多人知道LVS,但可能知之不多,希望阅读本文后,能够对LVS有一个基本的感性认识。   LVS是国内最早出现的自由软件之一,由国防科技大学章文嵩博士在1998年5月创立,章博士目前是淘宝网高级研究员,是淘宝网核心系统负责人。 LVS首要的是解决路由问题,结果不但解决了耦合问题,实现了网络隔离,而且顺带实现了负载均衡,负载均衡复杂的地方在于不同的均衡策略。常常均衡和路由成对出现,象分布式中的一致性哈希,也是路由和均衡,实际上还达到了容灾的效果,可以说是一举多得。

2018-09-10

磁盘文件读性能测试

硬盘读取性能: hdparm -t /dev/sdb /dev/sdb: Timing buffered disk reads: 2454 MB in 3.00 seconds = 817.84 MB/sec 10块物理磁盘,做了Raid10,因此读性能高,达每秒817.84MB。

2018-09-10

快速上手,协程剖析

协程也叫微线程,英文名称为 coroutine。一个进程可以有多个线程,一个线程可以有多 个协程,这是协程和线程间的关系。不同的是,线程由系统调度,但协程需要自己调度,协 程运行在用户态。

2018-09-10

理解snprintf()函数

在编程中,需要关注snprintf()的两个问题:一是它的返回值,二是它的第二个参数。

2018-09-10

madvise、fadvise、posix_madvise和posix_fadvise函数的使用

  系统调用madvise的作用:建议内核如何使用指定段的内存,可配合mmap使用。函数原型如下: #include int madvise(void *addr, size_t length, int advice);

2018-09-10

Thrift结构分析及增加取客户端IP功能实现

  分析Thrift的结构动机是为了实现服务端能取到客户端的IP,因此需要对它的结构、调用流程有些了解。另外,请注意本文针对的是TNonblockingServer,不包含TThreadPoolServer、TThreadedServer和TSimpleServer。   thrift对网络连接没有使用内存池,最直接简单的性能优化是绑定Google gperftools中的TCMalloc。

2018-09-10

再议GCC编译时的静态库依赖次顺问题

这个问题的原因是b.cpp依赖a.cpp,gcc要求(实际是ld要求)libb.a须放在liba.a前面,即需要改成:g++ -g -o x x.o libb.a liba.a,也就是被依赖的库需要放在后头。 这是最常规的解决办法,除此之外,只需要加入--start-group和--end-group两个链接参数,即可保持被依赖的库放在前头,也就是改成如下即可:g++ -g -o $@ -Wl,--start-group $^ -Wl,--end-group。 这里的“-Wl,”表示后面跟着的参数是传递给链接器ld的,gcc不关心具体是啥。“--start-group”表示范围的开始;“--end-group”表示范围的结束,是可选的。位于“--end-group”之后的仍然要求被依赖的库放在后头。

2018-09-10

C++鲜为人知的符号

  这些鲜为人知的C++符号,可直接在代码中使用,但实践中不推荐这么做,可作为茶余饭后的乐趣了解C++的另一面。   虽然它们鲜为人知,但却不是GNU g++独有的,而是C++标准定义的,找一本C++标准书或pdf文档看看,就可以见到它们赫然在目。(注:C++17标准将干掉这些鲜为人知的符号)

2018-09-10

__lll_mutex_lock_wait的错误原因

(gdb) bt #0 0x00002b9405ea1c38 in __lll_mutex_lock_wait () from /lib64/libc.so.6 #1 0x00002b9405e45e5f in _L_lock_4026 () from /lib64/libc.so.6 #2 0x00002b9405e42df1 in free () from /lib64/libc.so.6 #3 0x00002b9405e5b148 in tzset_internal () from /lib64/libc.so.6 #4 0x00002b9405e5b9d0 in tzset () from /lib64/libc.so.6 #5 0x00002b9405e5fe44 in strftime_l () from /lib64/libc.so.6 #6 0x00002b9405e93701 in __vsyslog_chk () from /lib64/libc.so.6 #7 0x00002b9405e3c6d0 in __libc_message () from /lib64/libc.so.6 #8 0x00002b9405e4177e in malloc_printerr () from /lib64/libc.so.6 #9 0x00002b9405e42dfc in free () from /lib64/libc.so.6 #10 0x00000000004007c9 in main (argc=1, argv=0x7fffa524f4d8) at x.cpp:17

2018-09-10

nohup、&、setsid、fork和fg、bg究竟有啥区别?

  子进程从父进程继承了:SessionID、进程组ID和打开的终端。子进程如果要脱离这些,代码中可通过调用setsid来实现。,而命令行或脚本中可以通过使用命令setsid来运行程序实现。setsid帮助一个进程脱离从父进程继承而来的已打开的终端、隶属进程组和隶属的会话。   需要注意,代码中调用setsid是有条件的:即调用进程自己不能是进程组长。因此,调用setsid之前需要先fork,然后由产生的子进程调用setsid。

2018-09-09

mooon_ssh和mooon_upload使用示例

  mooon_ssh被用来远程在一台或多台机器执行shell命令,而mooon_upload被用来将一个文件上传到一台或多台机器上。通过命令行参数“--help”可以查看两者的参数信息。支持高亮显示,以及成功、失败结果汇总。

2018-09-09

Kafka C++客户端库librdkafka笔记

librdkafka提供的异步的生产接口,异步的消费接口和同步的消息接口,没有同步的生产接口。

2018-09-09

Kafka常用命令收录

  本文内容主要来自两个方面:一是网上的分享,二是自研的随手记。日记月累,收录kafka各种命令,会持续更新。   在0.9.0.0之后的Kafka,出现了几个新变动,一个是在Server端增加了GroupCoordinator这个角色,另一个较大的变动是将topic的offset 信息由之前存储在zookeeper上改为存储到一个特殊的topic(__consumer_offsets)中。

2018-09-09

Linux远程批量工具mooon_ssh和mooon_upload使用示例

  远程批量工具包含: 批量命令工具mooon_ssh; 批量上传文件工具mooon_upload; 批量下载文件工具mooon_download。   可执行二进制包下载地址: https://github.com/eyjian/libmooon/releases   源代码包下载地址: https://github.com/eyjian/libmooon/archive/master.zip   批量工具除由三个工具组成外,还分两个版本: C++版本 GO版本   当前C++版本比较成熟,GO版本相当简略,但C++版本依赖C++运行时库,不同环境需要特定编译,而GO版本可不依赖C和C++运行时库,所以不需编译即可应用到广泛的Linux环境。 使用示例1:上传/etc/hosts mooon_upload -s=/etc/hosts -d=/etc 使用示例2:检查/etc/profile文件是否一致 mooon_ssh -c='md5sum /etc/hosts' 使用示例3:批量查看crontab mooon_ssh -c='crontab -l' 使用示例4:批量清空crontab mooon_ssh -c='rm -f /tmp/crontab.empty;touch /tmp/crontab.empty' mooon_ssh -c='crontab /tmp/crontab.emtpy' 使用示例5:批量更新crontab mooon_ssh -c='crontab /tmp/crontab.online'

2018-09-09

mooon编译系统介绍(可复用Makefile)

基于automake的编译脚本和模板,助一分钟搭建好Make

2013-06-21

淘宝数据平台

由淘宝数据平台出口的非常好的数据平台建设方面的资料,非常强大,值得看看。

2012-11-01

性能测试进阶指南——LoadRunner 9.1实战(扫描版)

目录 第1章 性能测试基础  1.1 性能测试工程师的标准及挑战   1.1.1 性能测试工程师的考评指标   1.1.2 性能测试工程师的挑战  1.2 性能测试基础   1.2.1 性能   1.2.2 性能指标   1.2.3 性能分析及调优   1.2.4 单机软件性能与网络架构软件性能   1.2.5 性能测试的流程   1.2.6 性能测试的注意要点   1.2.7 性能测试招聘要求  小结 第2章 LoadRunner综述  2.1 LoadRunner简介

2012-11-01

深入多线程编程

线程库 多线程编程定式 无锁编程(Lock Free) 阻塞型同步(Blocking Synchronization) 非阻塞型同步(Non-blocking Synchronization) 优先级反转(Priority Inversion) 优先级继承(Priority Inheritance) 优先级顶置(Priority Overhead) 内存屏障

2012-11-01

iwlwifi-9000-pu-b0-jf-b0-34.618819.0.tar.gz

联想笔记本上Ubuntu无线网卡驱动,安装方法请参见博文:https://blog.csdn.net/Aquester/article/details/103655720。

2020-02-04

Docker入门之安装Docker.pdf

本文操作基于CentOS7,其它Linux发行版本可能存在差异,分基于yum的在线安装和基于二进制包的离线安装(实际还有基于rpm包的离线安装),离线安装可以更多地了解Docker及相关体系。 Docker要求Linux内核版本不低于3.10,并且必须为64位系统,执行命令“docker version”可查看Docker版本。 CentOS7防火墙默认采用的是firewalld管理netfilter子系统,底层调用的仍然是iptables命令,firewalld实际是iptables的一个封装。不同的防火墙相互间存在冲突,使用某其中一个时应禁用其他的。 谨记:容器运行在Linux内核之上,不包含位于内核之上的glibc等库,以及ls等命令。如果容器中的程序依赖glibc等库或者依赖ls等命令,则容器自身应当包含这些设施。另外,容器中的程序等必须和内核兼容,否则将会遇到“FATAL: kernel too old”错误,该错误和库文件ld-linux.so有关。

2020-01-14

服务网格代理Envoy入门.pdf

Envoy是什么? Envoy是Lyft开源的一个C++实现的代理(Proxy),和Nginx及HAProxy类似,可代理L3/L4层和L7层。代理是它最核心和基础的功能,它也是服务网格框架Istio的Sidecar。

2020-01-07

Docker入门之创建镜像初步.pdf

本文介绍在CentOS7上从构建一个最简单无依赖的镜像开始,逐步揭示Docker镜像的构建和Dockerfile的应用。 什么是镜像?可理解镜像(image)为一个可执行程序文件,而容器(container)则是进程(运行态),Kubernetes(即k8s)中的概念POD则相当于进程组。 谨记:容器运行在Linux内核之上,不包含位于内核之上的glibc等库,以及ls等命令。如果容器中的程序依赖glibc等库或者依赖ls等命令,则容器自身应当包含这些设施。另外,容器中的程序等必须和内核兼容,否则将会遇到“FATAL: kernel too old”错误,该错误和库文件ld-linux.so有关。

2019-12-23

车世界-车的知识大全

如何区别进口,还是合资车?合资车通常在车尾贴有合资厂商的中文名称,如:一汽丰田、长安福特等,进口则无。 什么是GT跑车?拉丁文Gran Turismo,英文翻译为Grand Touring。Grand的意思是大,而Touring的意思是旅行。Grand Touring加在一起,其实是解作大型的旅行车。 在赛车界中,GT就是被指为拥有大马力动力输出,同时有车顶设计的双门双人所乘坐的超级跑车(开蓬跑车不能算为GT赛车),因此GT的中文名称或许应该称之为世界上最顶级的超级跑车。 什么是掀背?顾名思义就是“能掀起来的后背”,而汽车的后背就是后备箱盖,掀背车型就是整个后备箱盖和后车窗玻璃是一体的能够一起打开的车型,多见于两厢车。 什么是SUV?全称是Sport Utility Vehicle,中文意思是运动型多用途汽车。分两类:城市型和越野型。 什么是MPV?全称是Multi-Purpose Vehicles,中文意思是多用途汽车。同小型面包车存在明显的区别,面包车是单厢式结构,即乘客空间和发动机共同在一个框架结构内,发动机被安放在驾驶员座位的后下方。 豪华车通常指D级车,是英文Luxury

2019-11-12

基于zookeeper-3.5.5安装hadoop-3.1.2.pdf

截至本文撰写时(2019/9/17日),Hadoop最高版本为3.2.0,但适用于生产环境的为3.1.2(9月22日发布了可用于生产环境的3.2.1版本),本文只介绍3.1.2版本的分布式安装,不包含单机版安装。适用于Hadoop-3.1.3版本,所操作的环境为CentOS-7.2,对应的Linux内核版本为3.10,不同的Linux可能略有区别。 为提升安装效率,本文的安装过程使用了批量命令工具和批量上传文件工具。批量操作工具的下载和使用,请参见《附2:批量操作工具》。

2019-11-09

C++之Lambda研究.pdf

  本文代码测试环境为“GCC-9.1.0”,有关编译器的安装请参考《安装GCC-8.3.0及其依赖》,适用于“GCC-9.1.0”。   本文试图揭露Lambda背后一面,以方便更好的理解和掌握Lambda。Lambda代码段实际为一个编译器生成的类的“operator ()”函数,编译器会为每一个Lambda函数生成一个匿名的类(在C++中,类和结构体实际一样,无本质区别,除了默认的访问控制)。   对Lambda的最简单理解,是将它看作一个匿名类(或结构体),实际上也确实如此,编译器把Lambda编译成了匿名类。

2019-05-30

安装GCC-8.3.0及其依赖

  为体验C++17和C++20特性,需安装更新版本的GCC编译器。GCC官网为:https://gcc.gnu.org/,从这里可以下载最新版本的GCC。   C++由Bjarne Stroustrup(被誉为C++之父)于1979年在新泽西州美利山贝尔实验室开始设计开发的,最初命名为带类的C,后来在1983年更名为C++。

2019-05-01

REdis命令处理流程处理分析

  分析版本:REdis-5.0.4。   REdis命令处理流程可分解成三个独立的流程(不包括复制和持久化): 接受连接请求流程; 接收请求数据和处理请求流程,在这个过程并不会发送处理结果给Client,而只是将结果数据写入响应缓冲,将由响应请求流程来发送; 响应请求流程。   上述三个流程均是异步化的,并且没有直接的联系。它们的共同点均是通过REdis的简单事件驱动(AE,A simple event-driven)触发,对于Linux实际是epoll的包装,对于macOS为evport的包装,对于FreeBSD对kqueue的包装,对于其它则是select的包装。

2019-04-01

严格别名规则“-fstrict-aliasing”和“-fno-strict-aliasing”及类型双关

  “-fstrict-aliasing”表示启用严格别名规则,“-fno-strict-aliasing”表示禁用严格别名规则,当gcc的编译优化参数为“-O2”、“-O3”和“-Os”时,默认会打开“-fstrict-aliasing”。 什么是严格别名规则?gcc对严格别名的定义:

2019-01-30

源码解读Linux的limits.conf文件

本文不一定适合比较老版本的Linux,如果只关心使用,请直接看“总结”,本文主要针对CentOS,其它Linux发行版本类似,但细节可能有出入,比如重启服务可能不是用systemctl,而是service等。

2019-01-30

std::string的find问题研究

一次偶然,发现完全同一份代码,在不同机器上find出现两个不同执行结果,本文旨在研究find的“诡异”行为,找出背后的原因。

2018-12-19

x86_64汇编调试程序初步

  掌握此基础,就可以用来修改无源代码的程序等,比如希望jstatd在指定的端口上监听,而不是一个值为0的随机端口号,请参见《防火墙内JVisualVM连接jstatd解决方案》。

2018-12-05

空空如也

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

TA关注的人

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