自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

gdutlhh的专栏

技术加学习生活

  • 博客(60)
  • 资源 (19)
  • 收藏
  • 关注

原创 结构体所占空间大小的运算

在C/C++中我们常常会看到有求一个结构体的大小的情况,有时候我们就会想:不就是结构体中各个数据类型所占的空间加起来就行啦,那么事实上是不是这样呢?答案:不是滴。原因是:为了加快读写数据的速度,编译器就实现了数据对其的做法来为每一个结构体分配空间。这里我只讲结构体中数据对其的一个要点:2倍。2倍(本人自己总结的)是指有两个倍数要记住,第一就是结构中的各类型的倍数,第二就是结构体这个类型的倍

2012-08-27 10:57:45 11383 5

原创 trace使用jaeger还是zipkin?

接上一遍文章,上次说到通过otel观测微服务,在收集和可视化trace数据时候,我是用的是zipkin,但是zipkin有个问题,就是在高并发下,zipkin经常假死,根本访问不了,写入数据失败,而且还有大量的 wget - health。之前我通过加大内存到2G也没有解决该问题,于是我还是另辟蹊径,使用jaeger来做trace的处理和可视化。

2024-04-15 16:34:45 252

原创 使用opentelemetry搭建全链路追踪系统

由于项目是分布式微服务架构系统,为了实现服务的可观察性,决定搭建一套可观测的系统。由于我们当前使用的是go,而opentelemetry标准也是目前比较推荐的,并且其支持多语言,于是就想到用otel来搞了。废话不多说,进入主题。

2024-04-08 10:58:29 810

原创 kafka 可视化工具

平时我们几乎都是查询topics 和 consumer 比较多,选择topics选项卡,右边就会显示kafka当前所拥有的topic,要查看某个 topic里面的消息,直接点击相应topic就能进到相应页面。删除topic,删除消费者组,查看消费者组,查询消息所属partition等等。随着科技发展,中间件也百花齐放。但是kafka可视化工具就找了半天,最后还是觉得redpandadata/console这款web ui工具比较好用,尤其对于团队来说,一次安装,全员使用,就不需要每个人都安装一遍了。

2024-03-07 10:16:03 859 3

原创 grpc idle启动流程

改代码再 clientconn.go文件中,我们可以看到234行,调用了cc.idlenessMgr.ExitIdleMode(), 看描述 (创建名字解析器,负载均衡 等等)。于是我们接着进入 ExitIdleMode函数里面,不难发现里面调用了 m.enforcer.ExitIdleMode() 而该函数里面就会触发 我们自己的 name resolver buidler,也就是我们通过配置的 地址解析builder。到这里我们已经看到idle 建立流程。

2024-02-28 10:00:54 393

原创 kratos 没更新grpc链接(consul 发现失效)

当idle timeout 时候就会触发这个ccr.resolver.Close(),从而导致discoveryResolver 的close函数被触发,因此cancel就随即执行,后续的服务发现函数就自动退出了。由于我们设置了日志打印debug级别,因此当B服务重启后,A服务一定会打印 [resolver] update instances xxx 信息的,但目前我们没有看到该信息。当我们微服务闲置一段时间后,目前有A 微服务监听 B微服务。当B服务重启后,A服务中的B服务地址并没有随之变更。

2024-02-27 17:18:13 837

原创 go error思考

Is(err error, code int) 判断错误是否某个类型错误。2、错误应该在产生的时候带有堆栈,方便在写入日志后可以快速定位整个调用链。1、带标识,可以加个code(类型int)这样子就可以标识某种错误类型。由于项目原因,需要添加自定义error包,于是乎就有了这篇文章的思考。2、在用户new错误时候应该把当前堆栈记录下来,以便后面日志记录。1、错误带有明确的标识,方便外部判断该错误是否是指定错误。3、错误不应该占用太多的资源(cpu,memory等)。首先应该提供以下对外接口。

2023-08-02 11:00:15 107

原创 请按照这样子做?国内it内情

目前软件开发公司现状

2023-08-02 10:23:57 72

原创 goland 正则搜索

goland 正则搜索

2023-06-14 09:40:07 166

原创 2020-09-05

win10安装使用dockerdocker安装直接到官网下载,不过官网说明了安装docker需要的前提条件是Windows 10 64-bit: Pro, Enterprise, or Education (即家庭版这个安装包不能用,你得通过另一种方式安装,这里就不多说win10home版本下的安装了)==========在你安装过程中,简单介绍下这个安装包都包含了什么东东:docker引擎(Docker Engine),docker客户端(Docker CLI client),还......

2022-07-31 00:20:13 77

原创 指数方pow

指数方go 版实现

2022-04-26 14:31:59 104

原创 go panic

go panic和error类型的注意点

2022-03-06 16:00:42 188

原创 this is incompatible with sql_mode=only_full_group_by

由于mysql 8.0以上版本对sql现在更加严格,所以假如你的sql中有是用group by 聚合,但是select字段又不是group by 里面的字段的话,就会提示这个错误。解决这个可以修改你的sql 或者直接关闭onlyfullgroup。首先查询SELECT @@sql_mode;去掉ONLY_FULL_GROUP_BY 然后执行SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ER.

2021-04-13 14:46:10 135

原创 google cloud通过sshkey远程登录

google cloud通过sshkey远程登录刚开始使用googlecloud的时候,都不知道为啥没有账号密码登录的,只能通过googlecloud

2021-02-22 22:46:48 1637

原创 go pprof项目中实践

最近由于项目中接口调用有挺多延迟的,因此就借此机会学习下go的pprof分析下项目性能。我们的go程序不是http服务,是使用tars框架开发的rpc服务。根据官方介绍,非http服务可以使用runtime/pprof包来记录性能profile。开始时候没搞懂跟 /net/http/pprof有啥区别。那就先尝试使用 runtime/pprof先,然后需要在main函数中添加如下代码 f, err := os.Create("cpu_profile.pprof") ...

2021-01-19 00:04:57 236

原创 go once仅且执行一次

最近看到用csdn友发了一篇关于go的sync.Once的分析,自己看了两遍才弄明白其设计。废话少说咱走起!!!暂且不说项目需要用到的场景,我们就纯粹学习下人家是怎么设计的。func main(){ myOnce := sync.Once{} myOnce.Do(doSomething)}func doSomething(){ fmt.Println("im doing things")}直接进入Do方法,看看他是如何保证多线程且生命周期内仅执行一次的。type.

2021-01-13 23:30:50 1345

原创 mysql_real_connect: SSL connection error: unknown error number

error: [TC_Mysql::connect]: mysql_real_connect: SSL connection error: unknown error number如题:由于服务器硬盘坏了,要换硬盘,重新安装了系统,然后就又重新部署了一遍服务器环境。本来想着这个通过docker应该很快就可以把mysql ,tars和redis部署出来,whoknows ,一部署出各种问题。上面报错就折腾了我两天多的时间。一开始自己以为是docker部署的网络环境和mysql的网络环境不在同一...

2020-11-30 22:13:04 6445 11

原创 windows安装mingw

说句实话,之前使用mingwgui安装时候 ,感觉有点复杂,选择太多,也不知道选择哪些合适,因此使用官网的方法3命令行安装:废话不多说,小二上菜。1、下载mingw-get管理工具(就是通过这个工具支持命令行安装)mingw-get建议使用代理(因为国内实在太慢了)选择mingw-get-0.6.3-mingw32-pre-20170905-1-bin (这个文件,windows一般选择zip后缀文件)2、将下载好的文件解压到 C:\MinGW目录下 ,如下里面有b...

2020-07-25 11:22:37 516

原创 centos设置环境变量

centos一般不建议在 /etc/profile文件设置环境变量,而应该在 ~/.bash_profile中设置用户的环境变量。在bash_profile文件中直接在PATH变量后面接上你需要添加的路径即可,注意多个路径以冒号(:)分割。如PATH=$PATH:$HOME/bin:/usr/local/go/bin...

2020-07-20 23:07:22 188

原创 数据库中的脏读、不可重复读和幻读的理解

我们知道数据库事务具有ACID四个特性,其实在实际生产环境中我们更多的考虑的是 Isolation(事务隔离)这个级别。这个隔离会分为四个级别:Read Uncommitted、Read committed、Repeatable Read和Serializable 。隔离级别对比 级别/是否会产生结果 脏读 不可重复读 幻读 Read Uncommitted 是...

2019-10-27 15:33:24 141

原创 go引用类型的坑

其实说实话,go就没有引用类型,都是值的拷贝,不信?你跑下下面代码package mainimport ( "fmt")type Student struct { Name string Age int Gender int NickName string}func modifySlice(stuSli []Student) (err erro...

2019-09-30 14:25:23 160 1

原创 mindoc源码编译和部署

主要讲下编译过程和遇到问题因为mindoc 是使用go 开发的,所以要知道go中的包的管理模式,官网介绍是使用dep管理的,但是因为可以下载到源码,因此我选择使用mod 方式来处理依赖包关系,当然你也可以直接使用go get 这个是最直接的方式吧。首先下载源码 :https://github.com/lifei6671/mindoc然后把源码放到随便一个目录下,因为在go mod 方式...

2019-08-17 19:59:09 1067

原创 go 判断类是否实现了指定接口

在go 语言编程中,有时候我们想知道某个结构体(即有些人称之为类)是否实现了某个接口类型,那么如何去做呢,根据我查找的资料得知处理如下:type IFace iterface { Eat() string}type Bird struct { Eyes string Color int}要判断Bird 是否实现了接口 IFace 直接v...

2019-07-30 23:13:13 2838

原创 通过samba设置linux系统目录为共享

因为搭建了一个apache服务器,所以自己想通过windows来直接来修改www下的脚本文件,于是搭建了samba服务,配置如下[php]        browseable=yes        path=/var/www/html        writable=yes        write list = root即允许root 通过 windows访问li

2016-10-20 23:35:25 851

原创 lua并发机制之--coroutine

lua的coroutine也就是协程,跟C++中的线程有点像,但他事顺序执行的。主要需要理解三个函数coroutine.create()、coroutine.yield()、coroutine.resume()create函数将创建一个协程,其参数为所执行的函数。function corfun(x,y)print("run cor",x,y)if(x)local k =

2016-10-08 00:57:17 915

转载 connect实现非阻塞模式

文章出处:LinuxKernel参考博客:①setsockopt()函数使用详解:http://blog.csdn.net/tody_guo/article/details/5972588②setsockopt :SO_LINGER 选项设置:http://blog.csdn.net/factor2000/article/details/3929816③TIME_W

2016-09-29 20:18:11 1115

转载 TCP详解

文章转自LinuxKernel 博客园一、TCP与UDP的优缺点①TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端的可靠传输。对可靠性要求较高的应用层协议,如FTP、Telnet、SMTP、HTTP、

2016-09-29 20:09:42 412

原创 protobuf源码编译

google proto编译使用方式

2016-09-28 12:53:27 2738

原创 C++实现控制台输出具有颜色类

使用c++实现一个在控制台打印不同级别文字以不同颜色显示的功能,该类还有待完善

2016-09-27 22:43:45 3454

原创 贪吃回旋蛇n

int **arr = new int*[n]; for (int m = 0; m < n; ++m) arr[m] = new int[n]; bool horizontal = true, reversed = false; int i = 0, j = 0; for (int k = 1; k < n*n + 1; ++k) { if (horizontal) {

2016-09-23 14:35:45 852

翻译 ABA问题

ABA问题分析 /* Naive lock-free stack which suffers from ABA problem.*/ class Stack { std::atomic top_ptr; // // Pops the top object and returns a pointer to it. // Obj* Pop() {

2016-08-10 21:18:52 636

原创 C++模板的坑

最近在写C++ 模板类,发现在.h中声明,在.cpp中定义,然后main函数文件中使用这个模板类就会一直link2019,一开始还以为是vs设置编译顺序问题,但是搞了半天发现vs都是从include“” 开始编译工程的,所以不存在这种问题,后来咨询了我的大学好舍友 终于知道原因了,原来是模板不能把声明和定义分开文件实现的,我了个擦,这真是个生坑啊 啊啊啊,希望大家注意。

2016-04-25 17:14:10 660

翻译 C++对象模型

最近在看侯捷的C++对象模型,顺便把他的例子也做了一遍便于深刻理解C++模型,例子如下:头文件#ifndef MODEL_H#define MODEL_H#include #include using namespace std;templateclass Point{public: Point(type coords[dim]); Point(); type& ope

2016-04-24 11:08:15 263

原创 Lua与C++ 交互

最近比较有时间,就想总结下自己学到的东西。由于我出来工作就是使用了 lua 和 c++,因此这里想说下怎么使用这两个东西来搭建程序,怎么完成一个应用,当然我个人能力有限,有哪里说的不对的地方,还请网友们多多指点,大家相互学习。好了废话少说。。。开始lua是解析行脚本语言,他不能单独运行,于是我们下载他的解析器源码,点击这网址 http://www.lua.org/ 在官网中找到lua源码包

2016-04-19 12:11:37 426

翻译 密码学

1、Caesar密码就是移位法,把现在明文字母往后移动3位,密文C=(p+3)mod 262、playpair密码是基于一个5X5的矩阵的,使用一个关键字构造。(从左到右,上到下)

2013-01-13 09:44:08 616

原创 回旋数的求解

回旋数就是从中间的1开始然后围绕着这个1,按自然数的增长形式回旋1,如:43444546474849 42212223242526 4120

2012-10-21 22:42:34 1193

原创 实现两个有序链表的合并

如题,实现两个带头链表的合并,返回合并后的链表的头指针#includeusing namespace std;struct Node{ //节点类型int data;Node *next; };Node * pSort(Node *a,Node *b) //带有头指针的链表 {if(a->next==NULL)return b;if(b-

2012-10-21 22:33:35 549

原创 计算一个数的二进制的存在的一的位数

如题:这里提出两种实现方法1、不需要通过循环int CNByteNum(int x){   x=(x & 0x55555555) + ((x>>1) & 0x55555555);   x=(x & 0x33333333) + ((x>>2) & 0x33333333);   x=(x & 0x0F0F0F0F) + ((x>>4) & 0x0F0F0F0F);   x=

2012-10-21 22:29:36 557

翻译 将无符号整形每一位都翻转过来

最近笔试的时候碰到了这样的题目,但是不会做,回来查了一下书之后,其实现与君共享。如  00000000 00000000 00000000 00000011  反置后为     11000000 00000000 00000000 00000000  不需要通过循环unsigned rev(unsigned x){x=(x & 0x55555555) > 1;x

2012-10-21 22:27:37 996

原创 指向二维数组的指针定义方式

看了一些资料,指向二维数组的指针定义方式并不是直接定义指针的指针int   a[3][6];int **p=a;        像这样定义是错误的因为a代表着除了第一列以外的列数的维数大小,如a+1的地址就是a[1]的地址,也就是a[1][0]的地址,而p仅是整形指针的指针,没跨越一次就是4字节,因此他们的大小是不匹配的,所以这样子直接等于号是不正确的。要真正的定义方式应概是定义指

2012-10-12 21:44:42 30260

go编程语言

GO零基础学习文档,非常好的参考文档。学习go必备文档,零基础带你飞

2018-11-01

protobuf3.0 以上

windows上的protobuf转换工具,包含了lib库,里面还有例子。注意在3里面required关键字已经去除了,而且proto文件需要添加sytax=&quot;proto3&quot; ;标识来说明是使用那个版本转换,可以看出版本3转换出来的文件比之前版本小了很多,大家可以下来看看

2016-09-28

mysql驱动ODBC

mysql驱动ODBC ,适合于windows 64位平台 mysql驱动ODBC ,适合于windows 64位平台

2012-09-01

BCB XE2的MD5码代码

在BCBXE2上可以使用,32位的输出,调用方法 String str=this->Edit1->Text; MD5 md5; int i=str.Length(); char *p=new char[i+1]; AnsiString tmp=str; strcpy(p,tmp.c_str()) ; p[i+1]='\0'; md5.update(p,i); str=md5.TranToString(); delete []p; this->Edit2->Text=str;

2012-07-26

C++Builder 2011XE中的msimg.bpl

文件名无效是用着个可以解决。文件名无效是用着个可以解决文件名无效是用着个可以解决文件名无效是用着个可以解决

2011-07-19

树的实验-数据结构用C++实现

树 此系统可演示树的各种基本操作 很形象 输入一棵树的表达式他就自动生成对应的树 试试你就知道有多强大 里面加有实验报告 可运行的EXE文件

2011-07-16

图书管理课程设计用C++实现

C++实现的图书管理,里面用到B-树,有图形界面很好,较为强大,得了个优

2011-07-16

大一的C语言课程设计

大一要做的C语言课程设计,大一要做的C语言课程设计,大一要做的C语言课程设计,大一要做的C语言课程设计,大一要做的C语言课程设计,大一要做的C语言课程设计,

2011-07-16

Excel版得三国杀

现在你可以用微软的Excel就可以玩了的三国杀,很好很强大,喜欢玩的同志们赶紧下啊

2011-06-29

很好的数据结构演示系统

演示了各种数据结构,每一种算法都给你演示出来,很好很强大,很适合初学者还有想深入研究的人们+想自己做出一个数据结构的演示的朋友们

2011-06-29

数据结构复习资料+考题

数据结构啊,考试试题 考试练习题 包括多年的考题都有啊

2011-06-29

计算机组成原理复习试题加答案

计算机组成原理你上不起啊计算机组成原理你上不起啊计算机组成原理你上不起啊

2011-06-29

一款很好的Photoshop学习教程软件

一款很好的Photoshop软件教程,免安装的,直接打开就可以连接网络来接受教授级得授课,免去你付费的烦忧,而且学到一级的教学

2011-05-29

visual studio2010学习教程

运用visual studio 2010你会有一种说不出的愉快,对于初学者这是一门很好的教程,保证你会看得懂,到时候你就可以一争高低了

2011-05-29

Nokia应用软件及游戏软件

关于Nokia的应用程序软件,游戏软件,很好用的而且比较新版。

2011-05-28

汇编四个实验的实验报告

里面有很全的代码,都能通过编译,大学期间做的四个实验都有,1、比较字符2、 用表格形式显示字符 3、 分类统计字符个数 4 、 查找电话号码

2011-05-28

汇编编译器和一些程序(统计字符)(显示ASC代码)

开发汇编用的工具,里面还有对输入字符进行统计的程序,个人觉得很好的程序

2011-05-19

汇编语言从入门到有兴趣

初学者得很好阅读篇,领导你进入汇编的神奇世界

2011-05-12

汉化式VMware虚拟机

一款很好的虚拟机,不用修改什么,傻瓜式的安装,安装后很好用

2010-12-24

空空如也

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

TA关注的人

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