lustre系统后端磁盘初始化脚本 // mdt和mgt共享一个磁盘,因为mgt仅仅需要100M空间,单独一个磁盘会浪费空间 [root@CentOS-Lustre-Server ~]$ mkfs.lustre --reformat --fsname=perrynfs --mgs --mdt --index=0 /dev/sdb // 初始化ost,这里在ost对应的磁盘写入了mgs的地址 [root@CentOS-Lustre-Server ~]$ mkfs.lustre --ost --
世界是并行的,Erlang程序反应了一种思考和交流的方式,个体通过发送消息进行交流,如果有个体死亡,其他个体会注意到。
Golang 操作数据库表时,可能经常需要创建像下图中所示的与数据表相对应的 struct 对象,常被称为 model,有同学可能会说,model 也没几个字段,手写不就好了,没必要用工具来生成。当数据库表比较少,且表的字段少时用手敲确实可以完成,但是如果需要生成model的表数量比较多,每个model的字段也比较多,这时是用工具来生成可能是个更合适的选择,也更不容易出错。所以这里介绍一个能快速生成 model 文件和 queryset 的方法。
TLS / SSL证书生成器:git clone https://github.com/michaelklishin/tls-gen tls-gen
当从数据库生成结构时,您也可以通过面的方式,给生成的model添加模板方法,例如:
前言: LINC switch是一个由flowforwarding. org主导开发的一款基于Apache2.0协议开源的Openflow交换机软件。本文在安装指南的基础上,介绍了其运行时的配置与使用。 介绍: LINC switch基于Erlang构建,因而它的配置文件要基于Erlang语法。在编辑配置文件时可以准备一个支持括号补全的编辑器或Erlang IDE。 推荐使用sublime text,当然你也可以用Eclipse与Erlang插件集成或IntelliJ IDEA加Erlang插件的IDE编辑
Python和JavaScript中都有生成器(Generator)和协程(coroutine)的概念。本文通过分析两者在这两种语言上的使用案例,来对比它们的差异。
RabbitMQ的启动步骤是一个有向无环图,具体细节后面另外章节再聊,其中网络一块的启动集中在文件rabbit_network.erl中
为什么要使用protobuf 最近的项目中,一直使用Json做数据传输。Json用起来的确很方便。但相对于protobuf数据量更大些。做一个移动端应用,为用户省点流量还是很有必要的。正好也可以学习一下protobuf的使用 跟Json相比protobuf性能更高,更加规范 编解码速度快,数据体积小 使用统一的规范,不用再担心大小写不同导致解析失败等蛋疼的问题了 但也失去了一些便利性 改动协议字段,需要重新生成文件。 数据没有可读性 安装 在go中使用protobuf,有两个可选用的包goprotobuf(
微服务框架系列重点介绍框架的搭建过程,期间对一些细节技术点的讲解,会在另一个系列Go语言技巧系列中展开。
鉴于公共云中广泛采用存算分离架构(Disaggregated Storage),网络是云存储服务实现高性能和高可靠性的关键。在 Azure 云中,我们在存储前端流量(计算 VM 和存储集群之间)和后端流量(存储集群内)之间启用 RDMA(Remote Direct Memory Access)作为我们的传输层。由于计算集群和存储集群可能位于 Azure 云 region 内的不同 dc 中,因此我们需要在 region 范围内支持 RDMA。
配置静态ARP映射,静态ARP映射会永久保留在ARP缓存中。如果要删除配置的静态ARP映射的话,使用 no arp 命令。
这是我在很早之前遇到的一个题,很有意思,所以到现在仍然记得。题意借用了 TCP 的上下文,要求实现 TCP 中一个“顺序组装”的关键逻辑:
NSDI 的全称是 Networked Systems Design and Implementation,是 USENIX 旗下的旗舰会议之一,也是计算机网络系统领域久负盛名的顶级会议。与网络领域的另一顶会 SIGCOMM 相比,NSDI 更加侧重于网络系统的设计与实现。
因为需要使用第三方的源,所以除了在sources.list上添加对应的源外,还要有增加相应的公钥Key才能正确安装软件。
注意: 本文仅供学习和研究。在了解技术和原理的前提下。更好的保护个人信息安全。反对一切危害网络安全的行为!造成法律后果与本文无关。
如何防CC攻击,其中一种方法是禁止国外IP访问,可以有所缓解,因此有了如下脚本,在CENTOS 6下调试通过。
waitingForRead 及 waitingForWrite 属性是两个承载等待的socket 及等待它们的任务的数组。有趣的部分在于下面的方法,它将检查 socket 是否可用,并重新安排各自任务:
要配置当前策略映像所用的类型映像的名字,所占带宽和队列上限,可使用策略映像配置态中的配置命令class,使用本命令的no形式从策略映像中删除某个类型映像或恢复参数的默认值。
本文介绍如何利用Python的Tornado框架开发TCP服务程序,实现666的RPS,并通过实例代码进行详细演示。
1. 生成mod文件 - go mod init 包名 (注: 包名在 import 引入自定义包时替代GOPATH)
.NET Core(开放源代码,跨平台,x-copy可部署等)有许多令人兴奋的方面,其中最值得称赞的就是其性能了。
建议gorm.Open时指定SingularTable为true,即使用单数表名。这样就不必在struct上定义TableName方法指定表名了。
春分时节,万物复苏,NanoMQ 项目又如期为大家献上了最新的 0.17 版本。这一版本主要对 2 个重要功能进行了升级:MQTT over QUIC 的双向认证和 DDS 协议转换代理的序列化代码自动生成。另外还新增了 QUIC 传输层的配置参数,增加了 Retain 消息的持久化,以及发布了 NanoSDK 0.9 版本等诸多更新。
自己做了个论坛,论坛里面发了一个cc工具,有人用我发的工具打我论坛,都是国外流量,很强的,基本秒杀我,当时没有做策略服务器硬抗,只是变慢了。
在Linux中cookie的位置一般在 /var/lib/rabbitmq/.erlang.cookie
openpoker源码 erlang写的网游服务器源码,OpenPoker是一个大型多人扑克网游,内建支持了容错能力,负载平衡和无限制的规模大小。本文是openpoker源码文件功能的一个清单式说明:
| 作者:伍旭飞,腾讯云数据库高级工程师,主要负责腾讯云Redis、MongoDB开发。 ---- 故事从一个MongoDB数据库连接超时案例说起。该异常导致2次合服失败,前面已在服务器上抓包并dump下来,下方是客户端超时现场截图: 从截图不难看出,这是一个Nodejs服务出错信息,推测DBA应该是用的nodejs mongodb来实现连接数据库并进行操作,找到这个driver的官网https://github.com/mongodb/node-mongodb-native,clone了一份代码
最近在生产环境出现了一个奇怪问题,并且该问题多次出现,问题排查过程中对一些线索大胆猜测其问题的原因,最终找了了问题的根因。这里进行总结,方便后续回顾。
间歇性的学了一些Erlang,写了一个直播cdn网关的程序,也算是贡献了代码,完成了第一个项目。结束之际写一个入门路线,记录学习过程。
我们是幸运的,因为我们拥有网络。网络是一个神奇的东西,它改变了你和我的生活方式,改变了整个世界。 然而,网络的无标度和小世界特性使得它又是复杂的,无所不在,无所不能,以致于我们无法区分甚至无法描述。
dashbord没有默认创建任何账号包括管理账号,需要你通过页面进行注册账号。 想拥有管理全局的超级管理员账号,需要手动注册用户名为root的账号(第一个帐号名称为root的用户会被自动设置为超级管理员)。 超级管理员可以给普通用户分配权限管理。 小提示:注册账号能够被任何打开dashboard页面的人注册,所以当给相关的人注册完账号后,需要去关闭注册账号功能。只需要去修改api组件的配置文件cfg.json,将signup_disable配置项修改为true,重启api即可。当需要给人开账号的时候,再将配置选项改回去,用完再关掉即可。
基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3
小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。
由于go-zero自带的sqlx太难用, 实在无法忍受写这么多的魔法字符串, 所以这边在go-zero中引入gorm
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想。接下来将写几遍文章来介绍ffrpc可以做什么。简单总结ffrpc的特性是: Ffrpc是c++ 网络通信库 全异步 + 回调函数 机制 支持普通二进制协议、protobuf、thrift 基于Broker模式设计 设计精巧,代码量小,核心ffrpc的代码只有1000行 接口的性能监控是集成式的,使用者自动获得了接口性能数据,方便优化接口 普通二进制协议示例 Ffrpc实现了一个最基本的二进制序列化方法,基本的
2.1 基本介绍 📷 管理类的utils工具是Lustre提供用来调整不同配置的工具。这些配置工具包括创建后端的块设备、扩展Lustre文件系统中的ost、更改文件的布局等一系列的功能。如下列举了Lustre文件系统中的工具命令的使用用途。 mkfs.lustre :用来ldikfs/zfs文件系统来格式化一个磁盘。 // 使用zfs格式化后端磁盘 $ wipefs -a /dev/sdg $ mkdir -p /lustre/mdt $ mkfs.lustre --fsname=bigfs --mgs -
最近看到项目有用thrift,值此周日闲着也是闲着,先了解一个大概,后边在项目中再深度感悟吧。这里首先介绍一下thrift是做什么的,一般的我们都知道程序不是简单的自己处理自己的数据,很多大型系统往往需要跨系统进行调用,但是跨系统调用往往有一个问题就是你怎么调用的,聪明的小伙伴也许直接想到了http,但是有没有想过http有什么问题?首先是安全问题啥的,还有就是要不断的json到对象的互相转化什么的。其实都很费时间,如此一来就造成了技术问题导致的响应时间问题。所以对于http来说固然是好,但是否有更好的办法?我们知道网络传输是一层一层的协议的包装。那么显然最快的方式是放到最外层了,省去不必要的链路解析工作。但是我们的tcp/ip肯定是要保留的,因此我们的办法要么就是重新造一个tcp/Ip,要么就是省去最上层的应用层协议,直接怼着tcp来干。这样不就节省了协议解析的时间时间么,对我们的rpc远程调用的本质就是这意思,用http来走的话不是不可以,大如springcloud也都是采用的http来走的,但其实上我们还可以直接走tcp,但是tcp的肯定需要服务端和客户端,因此走tcp的问题就是开发比较费事,那么有没有一套工具让我们开发变快,也就是帮我们自动生成,我们简单的修改一下就可以直接用了,答案是有的,这块比较出名的是facebook开源的thrift。这个thrift就是一个开源的能够生成跨语言rpc调用的客户端和服务端的代码。听起来很厉害,其实本质还是上边说的这些想法的一种实践,主要是thrift能跨语言生成,也就是说我们可以用java去rpc调用python的接口,甚至是C#的接口,这块你是否感觉thrift能够让你的应用跨语言进行rpc调用的功能呢,答案是yes。Thrift解决的痛点问题就是跨语言的rpc调用问题。当然thrift定义了一套规范,这就是thrift协议。
前言 Gin 是一款用 Go(Golang) 编写的 web 框架 Gin is a web framework written in Go (Golang). It features a martini-like API with much better performance, up to 40 times faster thanks to httprouter 因为 httprouter, 它提供了更高的性能 这里演示一下如何安装 Gin Tip: 当前的版本为 Gin 1.2 和 Go 1.10 (
//GO语言 实现端口扫描 //缺陷 //port 无法设置成全局变量不知道怎么设置的 //var l = list.New() 这个是数组操作并不是消息队列 跟消息队列功能类似 //实现功能 //实现生成 IP段 //实现端口扫描 //实现参数传入 //写入文件到本地 //main.go 58.215.20.30 58.215.201.30 80 //文件名 开始IP 结束IP 扫描端口 //QQ2929
这里会联合protobuf语法以及protobuf如何去定义rpc服务,前面我们只生成了结构体,现在我们要让他为我们同时把接口生成,有了响应的接口,我们就再也不用去手写接口了。
不进入这个行当,很少会知道,人们对低延时的渴求。专业人士为了低延时,做过各种各样的努力。以往我们将数据库的某些SQL从秒级优化到毫秒级,至少会在心底里欢呼一下,百倍提升!但在这个行业,人们为了减少1毫秒,可以做出什么疯狂的事情呢?
像许多RPC系统一样,gRPC基于定义服务的思想,指定可以使用其参数和返回类型远程调用的方法。
gRPC (gRPC Remote Procedure Calls ) 是Google发起的一个开源远程过程调用(Remote procedure call)框架。
在之前的两篇文章中,我们已经介绍了使用 gRPC 创建 RPC 应用的前导知识。我们了解到 gRPC 支持多语言,本文我们介绍在 Golang 语言中怎么使用 gRPC。
一 iSCSI target的磁盘种类 大型文件 单一分区(partition) 磁盘 数组 RAID LVM 二 iSCSI创建步骤 建立用于共享的磁盘设备(分区/磁盘/文件) 创建后备磁盘 创建相应的IQN 创建相应的规则 #(可选) 为后备磁盘创建LUN 指定侦听的IP和端口 #(可选) 检查并保存配置 防火墙规则开放 服务(开机)启动 三 建立所需磁盘设备 3.1 建立一个3GB大小的/dev/sdc1作为共享 1 Device Boot Start End
之前写过了Grpc服务开发和接口测试初探【Java】,中间耽搁了一些时间,Go版本的gRPC测试开发实践才有时间学习使用。其中也是由于自己Go语言不够熟悉导致的。之前有段时间想暂时放弃Go语言的学习,导致了Go的生疏,原因是从Groovy到Java性能。
领取专属 10元无门槛券
手把手带您无忧上云