- 博客(21)
- 资源 (1)
- 收藏
- 关注
转载 nginx通过四层代理实现端口转发
公司原有的测试数据库在主机192.168.10.5上边,现在数据库转移到了192.168.10.4上,为了不让各个地方都需要更改地址,现在需要一个四层代理工具,将原来请求到192.168.10.5的3306端口转发到192.168.10.4的3306端口。这个工具,用到了nginx的四层代理。官方文档:http://nginx.org/en/docs/stream/ngx_st...
2019-07-01 16:28:01 13564
原创 微服务——服务的拆分
我在思考一个问题:我们为什么要搞微服务,整体式服务就不能满足吗?为什么一定要用微服务呢?服务的粒度拆的约来越细呢?当我们的业务复杂之后,设计一个系统难度会加大,还要适应快速迭代,就更难了。将业务的功能拆分之后,会让每个模块的设计变得简单。对于需求的变更,采用增加、修改模块的方式来实现也比较方便。但是,微服务同样带来了新的问题。1、通信。模块间的数据交流,增加了通信成本,我们采...
2019-05-06 22:21:13 278
转载 linux socket编程 出现信号SIGPIPE,分析及解决
在编写一个仿QQ软件,C/S模式。出现的问题:当客户机关闭时,服务器也随着关闭,纠结很久之后,我gdb了下,出现下面提示信息:Program received signal SIGPIPE, Broken pipe.0x0012e416 in __kernel_vsyscall ()在 网上查了一下出现SIGPIPE的原因:如果尝试send到一个已关闭的socket上两次,就会出现
2017-06-12 18:15:18 546
原创 sn集群开发感想
2017.04.25开发第一个版本的时候都会想到怎么简单怎么来,但是在开发和设计的过程中你会发现想出一个简单直接、满足要求的方式都比较难。
2017-04-25 14:38:32 330
原创 抛出异常
抛出异常后,从异常点开始后面的语句都不再执行,直接穿过各层函数的堆栈,直达catch为止,所以加锁时要特别注意,加锁,解锁操作最好是在try catch同一层。
2017-04-07 20:29:25 277
原创 gcc与g++的区别
一:gcc与g++比较编译c/c++代码的时候,有人用gcc,有人用g++,于是各种说法都来了,譬如c代码用gcc,而c++代码用g++,或者说编译用gcc,链接用g++,一时也不知哪个说法正确,如果再遇上个extern"C",分歧就更多了,这里我想作个了结,毕竟知识的目的是令人更清醒,而不是更糊涂。 误区一:gcc只能编译c代码,g++只能编译c++代码两者都可以,但是请注意:
2017-04-06 15:28:50 357
原创 linux下gcc默认搜索头文件及库文件的路径
一、头文件gcc 在编译时如何去寻找所需要的头文件:※所以header file的搜寻会从-I开始※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH※再找内定目录/usr/include/usr/local/include(centos7中该目录下是空的)gcc的一系列自带
2017-04-06 14:44:25 8504 1
原创 thrift使用总结
1、TSimpleServer可以实现只响应一个连接,但是其他连接还是会成功建立并进入establised状态,但是只响应一个连接的请求。2、当采用多对多模式(TThreadedServer)的时候,客户端断开会被监听到,该函数src/thrift/server/TThreadedServer.cpp 148 run中的reset函数会被调用。
2017-04-01 11:30:20 291
原创 uuid安装使用
环境: centos7安装:sudo yum -y install libuuid-devel.x86_64接口说明uuid_generate函数优先采用的算法:如果存在一个高质量的随机数生成器(/ dev / urandom),UUID将基于其生成的随机数产生。备用算法:在高质量的随机数生成器不可用的情况下,如果可以获取到MAC地址,则将利用由随机数生成器产生的随机数、当前时
2017-03-31 11:17:33 5459
原创 ctags使用
一、下载源码安装(网上提供的方法) 1)从http://ctags.sourceforge.net/下载源代码包后,解压缩生成源代码目录, 2)然后进入源代码根目录执行./configure, 3)然后执行make, 4)编译成功后执行make install。『基本功能使用方法』常用命令列表:
2017-03-30 11:30:24 287
原创 Object-Based与Object-Oriented的区别,个人理解
封装ob多态继承oo基于对象是一种Abstract DataType,它封装了一些复杂的操作,使之易于使用。比如说string,在C++中,通过类来实现。(封装一些数据及一些操作)面向对象的核心是多态,关键在于你不必知道对象的真正类型,只要知道它是一种什么类型,C++中,通过类,继承,虚函数来实现。《深度探索C++对象模型》上第一章最后几段的话:Object-ori
2017-03-29 11:22:07 3846
原创 shared_ptr的学习记录
1、对智能指针本身赋值操作,拷贝构造都会对计数器加1。这些特性的真正决定者是计数器的赋值、拷贝构造函数。2、对指向对象本身的析构发生在计数器析构时,判断计数器的成员变量(int)为1时做减1操作,并且析构指向的对象。计数器用来计数的成员变量的类型决定了最多有多少次引用,在linux64位系统上int是32位。3、对以下这段代码的理解。对友元类的private: tem
2017-03-29 10:54:46 277
原创 c++赋值构造函数为什么返回引用类型?
C++内置类型的赋值构造函数返回的是引用类型。为了在相同表达式和内置类型的表现一致,比如:(a + b)=c ps:默认赋值构造函数也是返回引用当然,不返回引用也是合法的赋值构造函数。
2017-03-16 13:45:57 1647
原创 两个类相互包含的处理策略
一、两个类相互包含的示范A.h/*A.h*/#ifndef __A_H__#define __A_H__#include "B.h"class A{ B* b;};#endifB.h/*B.h*/#ifndef __B_H__#define __B_H__#include "A.h"class B{private: A* a;
2017-02-15 17:52:33 458
原创 在std库中 cout<< 是右结合的
在std库中 cout<< 是右结合的,下面用代码来证明:#include int whole=20;int addwhole(){ whole+=8; return whole;}int subwhole(){ whole-=9; return whole;}void main(){ std::cout<<addwhole(
2013-10-08 10:04:08 971 1
原创 ffmepg.exe使用
1、使用ffmpeg将rtsp视频流录制成mp4文件视频流地址:rtsp://192.168.1.174:554/main命令:ffmpeg -y -i rtsp://192.168.1.174:554/test -vcodec copy -acodec copy -f mp4 e:\x.mp4 2、用ffmpeg将一部mp4格式的电影的视频和音频分离(未验证)命令:f
2013-06-14 14:15:53 977
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人