自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wintree的专栏

专注于Linux系统编程,网络编程,高性能服务器技术,c/c++技术学习

  • 博客(422)
  • 资源 (5)
  • 收藏
  • 关注

原创 macos下搭建minikube dashboard的启动

最近在复习一下k8s环境相关的知识,需要在自己电脑上搭建一个minikube的环境供自己使用。但是因为docker的镜像仓库最近被墙了,因此在执行minikube dashboard的时候,拉不到相应的镜像,就导致页面看不到相应的一些信息因此本文主要讲述如何把dashboard启动起来。我这里主要是在海外的一台服务器上进行来取,然后把他导入到本地的mac电脑上。一下就是我的具体的操作步骤。之后,还需要研究如何通过海外的代理服务器搭建一个自己的镜像仓库。首先,在可以访问镜像的机器上使用。命令下载所需的镜像。

2024-07-05 00:36:09 648

原创 go: ‘go mod vendor‘ cannot be run in workspace mode. Run ‘go work vendor‘ to vendor the workspace or

请注意,这些命令可能在不同的操作系统和shell中有所不同。如果你在使用Windows或其他shell,你可能需要使用不同的命令来设置环境变量。你的错误信息表明你正在使用Go的工作区模式,这是Go 1.18版本引入的新特性。如果你不想使用工作区模式,你可以通过设置环境变量。然后,你就可以像以前一样使用。命令不能运行,你需要使用。

2024-06-11 22:07:50 493

原创 golang中chan的高级用法

在阅读k8s的源代码中,发现了一些比较有意思的用法。在Go语言中,chan(通道)是一种用于在不同的goroutine之间进行通信的机制。方法中的参数表示一个只读的通道,用于接收停止信号。

2024-05-24 00:18:16 904

原创 我是如何带团队从0到1做了AI中台

因为这个项目是经费立项的形式,腾讯侧会以每半年投入百万经费的形式到项目组,因为部门也是成立不就,编制人员紧缺,只有核心岗位为腾讯的正式员工,也就是说,我们需要自己招外包同学来建立自己的团队,鉴于之前做粤省事成立开发团队的经验,如何快速的打造一直技术团队,只能招市场上多人会的语言,因此,果断我们选择了java作为开发语言,虽然我之前的java开发经验非常之少。1、研发流程规范,包括从需求阅读,到需求分解,tapd需求录入与跟进,概要设计,库表,接口设计,内部评审,研发周期确认等等一些列流程规范。

2024-05-06 22:20:01 785

原创 后台架构总结

疫情三年,全国各地的健康码成为了每个人的重要生活组成部分。虽然过去一年,但是回想起来任然历历在目。今天我就通过当时基于小程序的健康码架构,来给大家讲一下如何基于java,springboot等技术来快速搭建一个后台业务系统本次“腾讯防疫健康码”小程序项目本身因为时间特别仓促,从1月28号启动,到2月1号开始部署其他地市,业务迭代非常快速,已经达到了和阿里的健康码直面竞争的态势,全国各个省市抢地盘。

2024-04-29 10:31:05 1494 1

转载 RabbitMQ消息队列(一): Detailed Introduction 详细介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]历史应用场景  系统架构进一步的细节阐明1 使用ack确认Message的正确传递2 Reject a message3  Creating a queue4 Exchanges  5 Virtual hosts1. 历史    RabbitMQ是一个由erlan

2016-09-19 15:46:12 4594 2

转载 gdb Debugging Full Example (Tutorial): ncurses

I'm a little frustrated with finding "gdb examples" online that show the commands but not their output. gdb is the GNU Debugger, the standard debugger on Linux. I was reminded of the lack of example o

2016-08-15 11:46:48 8369

转载 漫谈C++11多线程内存模型v

目录(?)[+]写在前面        “C++11 feels like a new language” - Bjarne Stroustrup        的确,C++11核心已经发生了巨大的变化,它现在支持Lambda表达式、对象类型自动推断、统一初始化语法、Deleted和Defaulted函数、nullptr、委托构造函数、右值引用等等,本文主要讨论C+

2016-07-31 00:56:23 6669 1

转载 关于游戏架构设计的一些整理吧

一个大型的网落游戏服务器应该包含几个模块:网络通讯,业务逻辑,数据存储,守护监控(不是必须),其中业务逻辑可能根据具体需要,又划分为好几个子模块。这里说的模块可以指一个进程,或者一个线程方式存在,本质上就是一些类的封装。 对于服务器的并发性,要么采用单进程多线程,要么采用多进程单线程的方式,说说两种方式的优缺点: 一、单进程多线程的服务器设计模式,只有一个进

2016-07-03 20:51:05 8480

转载 socket中的函数遇见EINTR的处理

这几天,写服务器代码过程当中,遇见EINRT信号的问题,我是借鉴 《unp 》,采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录一下。网络上查找到的信息很多。下面是我查找到的和EINTR有关的介绍:1  http://blog.csdn.net/yanook/article/details/7226019  慢系统调用函数如何处理中断信号EINTR2  

2016-07-03 00:29:49 7289

转载 Linux 系统性能分析工具图解读

最近看了 Brendan Gregg 大神著名的 Linux Performance Observability Tools,这么好的资料不好好学习一下实在是浪费了,又找到了大神的ppt 和 演讲(需爬墙),于是把相关的命令和概念连预习,学习,复习走了一遍。首先学习的是大神提出的 Basic Tool 有如下几个:uptimetop (htop)

2016-06-21 23:18:12 8517

转载 GCC 提供的原子操作

gcc从4.1.2提供了__sync_*系列的built-in函数,用于提供加减和逻辑运算的原子操作。其声明如下:type __sync_fetch_and_add (type *ptr, type value, ...)type __sync_fetch_and_sub (type *ptr, type value, ...)type __sync_fetch_and

2016-06-11 10:44:26 4447 1

转载 CPU负载的分析

最近对我的本本(4核8线程)用top命令看系统状况出现了CPU利用率超过200%的情况,非常诧异,查了下相关资料,把这个问题弄清楚了。首先来分析下CPU Loadload average: 0.09, 0.05, 0.01分别是1分钟、5分钟、15分钟的平均Load。Load这个东西怎么理解呢,就像一条马路,有N个车道,如果N个进程进入车道,那么正好一人一个,再多一

2016-06-06 12:04:31 9428

转载 Ubuntu 源码安装最新版本 gcc 5.x版本

首先下载最新版http://www.netgull.com/gcc/releases/gcc-5.3.0/ Pre-KnowledgeThe regular procedure to build any program from source code is simply the below three steps:① ./configure② 

2016-04-12 16:44:43 9040

转载 动态库的链接和链接选项-L,-rpath-link,-rpath

链接动态库如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的配置搜索绝对路径。同时,Linux也提供了环境变量LD_LIBRARY_PATH供用户选择使用,用户可以通过设定它来查找除默认路径之外的其他路径,如查找/work/lib路径,你可以在

2016-04-07 09:54:09 6088

转载 开源的相关记录

Protocal Buffer是google开源的用于数据交换的库,常用于跨语言的数据访问,担任的角色一般为对象的序列化/反序列化。 另一个与之类似的开源软件是facebook开源的thrift,它们两个最大区别是thrift提供了自动生成RPC的功能而Protocal Buffer需要自己实现,但Protocal Buffer的一个优势是其序列化/反序列化非常高效。AD:51CTO首届中

2016-04-03 12:20:47 5185

转载 一步步编写并发阻塞队列

这篇文章主要介绍了linux中编写并发队列类,功能有:并发阻塞队列、有超时限制、有大小限制设计并发队列复制代码代码如下:#include #include using namespace std;template class Queue { public:     Queue( )     {   

2016-03-14 11:32:06 7190

原创 linux 下的编程效率分享

操作性能memset  1K150W次/smemcpy  1K150W次/smalloc 小字节 单线程100W次/sgettimeofday30W~400W次/stime30W~400W次/sgetpid

2016-03-05 13:25:54 5427 1

转载 backgroud thread

redis终于在2.4版本里引入了除主线程之外的后台线程,这个事情由来已久.早在2010年2月就有人提出aof的缺陷,提及的问题主要有:1 主线程aof的每次fsync(everysecond模式)在高并发下时常出现100ms的延时,这源于fsync必不可少的磁盘操作,即便已经优化多次请求的离散小io转化成一次大的连续io(sina的同学也反映过这个问题).2 主线程里background

2016-02-04 00:21:18 5296

转载 Skip List(跳跃表)原理详解与实现

本文内容框架:§1 Skip List 介绍§2 Skip List 定义以及构造步骤§3 Skip List 完整实现§4 Skip List 概率分析§5 小结   §1 Skip List 介绍 Skip List是一种随机化的数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要

2016-02-02 14:43:19 7389

原创 wait3,wait4 用法

wait3和wait4的用法

2016-01-24 20:01:23 14368 1

转载 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法

昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.csdn.net/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE_WAIT的状态。 在服务器的日常维护过程中,会经常用到下面的命令:netstat -n | aw

2016-01-16 14:05:17 7635 1

转载 高并发服务器架构--SEDA架构分析

纯粹转发,没有深入研究,转自:SEDA架构笔记一、传统并发模型的缺点基于线程的并发特点:每任务一线程直线式的编程使用资源昂高,context切换代价高,竞争锁昂贵太多线程可能导致吞吐量下降,响应时间暴涨。基于事件的并发模型特点:单线程处理事件每个并发流实现为一个有限状态机

2015-12-28 11:50:02 10291 2

转载 使用gprof对程序的性能分析(集合贴)

综述gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序。gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。gprof默认不支持多线程程序,默认不支持共享库程序。gcc -pg 编译程序运行程序,程序退出时生成 gmon.outgprof ./prog gmon.out -b 查看输出注意事项程序如果不是

2015-12-24 11:58:24 17900

转载 Apache Mesos总体架构

1. 前言同其他大部分分布式系统一样,Apache Mesos为了简化设计,也是采用了master/slave结构,为了解决master单点故障,将master做得尽可能地轻量级,其上面所有的元数据可以通过各个slave重新注册而进行重构,故很容易通过zookeeper解决该单点故障问题。(什么是apache mesos?参考:《统一资源管理与调度平台(系统)介绍》,本文分析基于M

2015-12-07 20:18:11 2648

转载 Pthreads并行编程之spin lock与mutex性能对比分析

Pthreads并行编程之spin lock与mutex性能对比分析POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护

2015-12-05 00:29:07 5582

转载 C++ STL 学习 :for_each与仿函数(functor)

C++ STL 学习 :for_each与仿函数(functor)(一)摘自网络作者: zieckey  时间: 2010-07-20 13:38:00先看wikipedia定义:A function object, also called a functor, functional, or functionoid,[1]  is a computer progra

2015-12-03 23:56:16 2878

原创 c++ template 的traits技术

本技术相对来说比较难理解,这种技术,是在stl源码中使用到的,给我感觉的作用就是对类的解耦。因为,工作中用到这种技术相对来说,比较少,所以,我目前还不是非常理解,下面是我敲书上的例子。首先上一段代码#ifndef BEARCORNER_H#define BEARCORNER_H#include using std::ostream;class Milk{public:

2015-11-28 01:12:13 1858

转载 Leveldb源码分析3 Cache

leveldb 实现了一个LRUCache。和标准的LRUCache一样没有什么特别之处。LRUCache内部有一个Hash表用于快速查找key对应的双向链表,双向链表中记录了value的值。利用双线链表实现LRUCache的算法在《操作系统》中描述的很清楚,这里不再描述。hashtable不是c++标准库的一部分,出于代码移植的考虑,leveldb自己实现了一个哈希表(Han

2015-11-08 23:55:11 1825

原创 linux 系统调用sysconf函数使用

在看开源代码的时候,尤其是获取cpu核数的时候,发现了一个很好用的一个函数 #include long sysconf(int name);通过名字可以猜到,该函数是获取一些系统的参数。然后通过man sysconf我们可以知道该函数的使用条件, POSIX  allows an application to test at compile or r

2015-11-07 01:52:26 21615 5

转载 Twitter-Snowflake,64位自增ID算法详解

Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。Snowflake算法核心把时间戳,工作机器id,序列号组合在一起。  除了最高位bit标记为不可用以外,其余三组bit占

2015-11-05 00:21:34 4405

原创 GCC参数详解

[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件 2.将预处理后的文件不转换成汇编语言,生成文件.s 3.有汇编变为目标代码(机器代码)生成.o的文件 4.连接目标代码,生成可执行程序 [参数详解] -c    只激活预处理,编译,和汇编,也就是他只把

2015-11-04 14:49:57 2704

转载 linux中内存使用,swap,cache,buffer的含义

首先介绍一下linux中内存是如何使用的。当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存来使用,也称为Swap。如果给所有应用分配足够内存后,物理内存还有剩余,linux会尽量再利用这些空闲内存,以提高整体I/O效率,其方法是把这部分剩余内存再划分为cache及buffer两部分加以利用。从磁

2015-11-02 14:15:13 1175

转载 LVS技术浅析-WHY

LVS是Linux Virtual Server的缩写,意思是Linux虚拟服务器,早在2.4内核就已经合并入linux标准内核,并被全球各大互联网公司广泛使用;据我所知,国内百度/新浪/阿里/腾讯等都在使用LVS;下图是LVS在常用互联网应用架构中的位置:LVS处于最前端,用于将用户请求转发到后端的多台webserver上。LVS引入Virtual Server的概念,用

2015-10-27 09:50:00 1301

转载 Google Protocol Buffer 的使用和原理

Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式。它可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

2015-10-13 15:23:00 1264

转载 最值得阅读学习的 10 个 C 语言开源项目代码

原文出处: 平凡之路的博客   欢迎分享原创到伯乐头条伯乐在线注:『阅读优秀代码是提高开发人员修为的一种捷径』http://t.cn/S4RGEz 。之前@伯乐头条 曾发过一条微博:『C 语言进阶有哪些优秀的代码可以阅读?』http://t.cn/R72EdtY 。今天来看看 平凡之路 推荐的《最值得阅读学习的 10 个 C 语言开源项目代码》。1. Webbench

2015-10-12 09:35:33 1650

原创 直播间架构设计

趁着十一后,事情相对少,我来总结一下YY娱乐后台的整体结构。首先,娱乐后台都是基于公司的一整套分布式框架来进行开发的。内部的网络层代码都是基于C++实现的,封装了epoll的 非阻塞的网络操作。详细代码的deamo可以看我的写的相对来说比较清晰的一个。一、整体架构这个结构是相对来说比较简单了,只抽取了结构中比较重要的层,YY客户端,首先从service manager

2015-10-10 19:25:12 14720 1

转载 Syscall系统调用Linux内核跟踪

在Linux的用户空间,我们经常会调用系统调用,下面我们跟踪一下read系统调用,使用的Linux内核版本为Linux2.6.37。不同的Linux版本其中的实现略有不同。在一些应用中我们可以看到下面的一些定义:#define real_read(fd, buf, count ) (syscall(SYS_read, (fd), (buf), (count)))

2015-09-30 17:53:32 1796

原创 线程安全的简单的通用的cache

templateclass StupidCacheKV{private:map cache;mutable sox::mutex StupidCacheMutex;public:void set(const string& key, const T & value){sox::scope_lock lock(StupidCacheMutex);cache[k

2015-08-31 19:52:35 1649

转载 内存数据库中的索引技术

引言  传统的数据库管理系统把所有数据都放在磁盘上进行管理,所以称作磁盘数据库(DRDB: Disk-Resident Database)。磁盘数据库需要频繁地访问磁盘来进行数据的操作,磁盘的读写速度远远小于CPU处理数据的速度,所以磁盘数据库的瓶颈出现在磁盘读写上。  基于此,内存数据库的概念被提出来了。内存数据库(MMDB:Main Memory Database,也叫主存数据

2015-08-30 17:49:36 2169

标准库boost程序库导论(中文版).chm

标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm标准库boost程序库导论(中文版).chm

2011-08-23

C++ static 用法总结

C++ static 用法总结C++ static 用法总结

2011-08-23

关于c++ 继承多态的深度思考

c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考c++ 继承多态 深度思考

2011-08-23

空空如也

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

TA关注的人

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