<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wintree的专栏]]></title><description><![CDATA[专注于Linux系统编程,网络编程，高性能服务器技术，c/c++技术学习]]></description><link>https://blog.youkuaiyun.com/wallwind</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wallwind]]></copyright><item><title><![CDATA[k8s学习之cobra命令库学习]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/140249503</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/140249503</guid><author>wallwind</author><pubDate>Sun, 07 Jul 2024 17:44:50 +0800</pubDate><description><![CDATA[打开k8s代码的时候，我发现基本上那几个核心服务都是使用cobra库作为命令行处理的能力。因此，为了对代码之后的代码学习的有比较深入的理解，因此先基于这个库写个demo，加深对这个库的一些理解吧在这里了，Cobra是一个用Go语言实现的命令行工具。并且现在正在被很多项目使用，例如：Kubernetes、Hugo和Github CLI等。通过使用Cobra，我们可以快速的创建命令行工具，特别适合写测试脚本，各种服务的Admin CLI等。]]></description><category></category></item><item><title><![CDATA[macos下搭建minikube dashboard的启动]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/140193565</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/140193565</guid><author>wallwind</author><pubDate>Fri, 05 Jul 2024 00:36:09 +0800</pubDate><description><![CDATA[最近在复习一下k8s环境相关的知识，需要在自己电脑上搭建一个minikube的环境供自己使用。但是因为docker的镜像仓库最近被墙了，因此在执行minikube dashboard的时候，拉不到相应的镜像，就导致页面看不到相应的一些信息因此本文主要讲述如何把dashboard启动起来。我这里主要是在海外的一台服务器上进行来取，然后把他导入到本地的mac电脑上。一下就是我的具体的操作步骤。之后，还需要研究如何通过海外的代理服务器搭建一个自己的镜像仓库。首先，在可以访问镜像的机器上使用。命令下载所需的镜像。]]></description><category></category></item><item><title><![CDATA[go: ‘go mod vendor‘ cannot be run in workspace mode. Run ‘go work vendor‘ to vendor the workspace or]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/139609899</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/139609899</guid><author>wallwind</author><pubDate>Tue, 11 Jun 2024 22:07:50 +0800</pubDate><description><![CDATA[请注意，这些命令可能在不同的操作系统和shell中有所不同。如果你在使用Windows或其他shell，你可能需要使用不同的命令来设置环境变量。你的错误信息表明你正在使用Go的工作区模式，这是Go 1.18版本引入的新特性。如果你不想使用工作区模式，你可以通过设置环境变量。然后，你就可以像以前一样使用。命令不能运行，你需要使用。]]></description><category></category></item><item><title><![CDATA[golang中chan的高级用法]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/139160505</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/139160505</guid><author>wallwind</author><pubDate>Fri, 24 May 2024 00:18:16 +0800</pubDate><description><![CDATA[在阅读k8s的源代码中，发现了一些比较有意思的用法。在Go语言中，chan（通道）是一种用于在不同的goroutine之间进行通信的机制。方法中的参数表示一个只读的通道，用于接收停止信号。]]></description><category></category></item><item><title><![CDATA[我是如何带团队从0到1做了AI中台]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/138510434</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/138510434</guid><author>wallwind</author><pubDate>Mon, 06 May 2024 22:20:01 +0800</pubDate><description><![CDATA[因为这个项目是经费立项的形式，腾讯侧会以每半年投入百万经费的形式到项目组，因为部门也是成立不就，编制人员紧缺，只有核心岗位为腾讯的正式员工，也就是说，我们需要自己招外包同学来建立自己的团队，鉴于之前做粤省事成立开发团队的经验，如何快速的打造一直技术团队，只能招市场上多人会的语言，因此，果断我们选择了java作为开发语言，虽然我之前的java开发经验非常之少。1、研发流程规范，包括从需求阅读，到需求分解，tapd需求录入与跟进，概要设计，库表，接口设计，内部评审，研发周期确认等等一些列流程规范。]]></description><category></category></item><item><title><![CDATA[后台架构总结]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/138303875</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/138303875</guid><author>wallwind</author><pubDate>Mon, 29 Apr 2024 10:31:05 +0800</pubDate><description><![CDATA[疫情三年，全国各地的健康码成为了每个人的重要生活组成部分。虽然过去一年，但是回想起来任然历历在目。今天我就通过当时基于小程序的健康码架构，来给大家讲一下如何基于java，springboot等技术来快速搭建一个后台业务系统本次“腾讯防疫健康码”小程序项目本身因为时间特别仓促，从1月28号启动，到2月1号开始部署其他地市，业务迭代非常快速，已经达到了和阿里的健康码直面竞争的态势，全国各个省市抢地盘。]]></description><category></category></item><item><title><![CDATA[RabbitMQ消息队列（一）: Detailed Introduction 详细介绍]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/52586416</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/52586416</guid><author>wallwind</author><pubDate>Mon, 19 Sep 2016 15:46:12 +0800</pubDate><description><![CDATA[版权声明：本文为博主原创文章，未经博主允许不得转载。




目录(?)[-]

历史应用场景  系统架构进一步的细节阐明

1 使用ack确认Message的正确传递2 Reject a message3  Creating a queue4 Exchanges  5 Virtual hosts





1. 历史

    RabbitMQ是一个由erlan]]></description><category></category></item><item><title><![CDATA[gdb Debugging Full Example (Tutorial): ncurses]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/52209850</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/52209850</guid><author>wallwind</author><pubDate>Mon, 15 Aug 2016 11:46:48 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[漫谈C++11多线程内存模型v]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/52076325</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/52076325</guid><author>wallwind</author><pubDate>Sun, 31 Jul 2016 00:56:23 +0800</pubDate><description><![CDATA[目录(?)[+]



写在前面

        “C++11 feels like a new language” - Bjarne Stroustrup

        的确，C++11核心已经发生了巨大的变化，它现在支持Lambda表达式、对象类型自动推断、统一初始化语法、Deleted和Defaulted函数、nullptr、委托构造函数、右值引用等等，本文主要讨论C+]]></description><category></category></item><item><title><![CDATA[关于游戏架构设计的一些整理吧]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51816841</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51816841</guid><author>wallwind</author><pubDate>Sun, 03 Jul 2016 20:51:05 +0800</pubDate><description><![CDATA[一个大型的网落游戏服务器应该包含几个模块：网络通讯，业务逻辑，数据存储，守护监控（不是必须），其中业务逻辑可能根据具体需要，又划分为好几个子模块。

这里说的模块可以指一个进程，或者一个线程方式存在，本质上就是一些类的封装。

 

对于服务器的并发性，要么采用单进程多线程，要么采用多进程单线程的方式，说说两种方式的优缺点：

 

一、单进程多线程的服务器设计模式，只有一个进]]></description><category></category></item><item><title><![CDATA[socket中的函数遇见EINTR的处理]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51813491</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51813491</guid><author>wallwind</author><pubDate>Sun, 03 Jul 2016 00:29:49 +0800</pubDate><description><![CDATA[这几天，写服务器代码过程当中，遇见EINRT信号的问题，我是借鉴 《unp 》，采用continue或者goto again循环解决的。但是感觉这个还是很有必要记录一下。网络上查找到的信息很多。下面是我查找到的和EINTR有关的介绍：
1  http://blog.youkuaiyun.com/yanook/article/details/7226019  慢系统调用函数如何处理中断信号EINTR
2  ]]></description><category></category></item><item><title><![CDATA[服务器端开发的一些建议]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51750053</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51750053</guid><author>wallwind</author><pubDate>Fri, 24 Jun 2016 09:44:23 +0800</pubDate><description><![CDATA[摘要: 本文作为游戏服务器端开发的基本大纲，是游戏实践开发中的总结。第一部分专业基础，用于指导招聘和实习考核， 第二部分游戏入门，讲述游戏服务器端开发的基本要点，第三部分服务端架构，介绍架构设计中的一些基本原则。希望能帮到大家
一 专业基础
1.1 网络
1.1.1 理解TCP/IP协议网络传输模型滑动窗口技术建立连接的三次握手与断开连接的四次握手连接建立与断开过程中的各种状态TCP/IP协]]></description><category></category></item><item><title><![CDATA[Linux 系统性能分析工具图解读]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51730904</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51730904</guid><author>wallwind</author><pubDate>Tue, 21 Jun 2016 23:18:12 +0800</pubDate><description><![CDATA[最近看了 Brendan Gregg 大神著名的 Linux Performance Observability Tools，这么好的资料不好好学习一下实在是浪费了，又找到了大神的ppt 和 演讲（需爬墙），于是把相关的命令和概念连预习，学习，复习走了一遍。



首先学习的是大神提出的 Basic Tool 有如下几个：



uptime


top （htop）

]]></description><category></category></item><item><title><![CDATA[GCC 提供的原子操作]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51635673</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51635673</guid><author>wallwind</author><pubDate>Sat, 11 Jun 2016 10:44:26 +0800</pubDate><description><![CDATA[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]]></description><category></category></item><item><title><![CDATA[CPU负载的分析]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51594553</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51594553</guid><author>wallwind</author><pubDate>Mon, 06 Jun 2016 12:04:31 +0800</pubDate><description><![CDATA[最近对我的本本（4核8线程）用top命令看系统状况出现了CPU利用率超过200%的情况，非常诧异，查了下相关资料，把这个问题弄清楚了。
首先来分析下CPU Load


load average: 0.09, 0.05, 0.01


分别是1分钟、5分钟、15分钟的平均Load。
Load这个东西怎么理解呢，就像一条马路，有N个车道，如果N个进程进入车道，那么正好一人一个，再多一]]></description><category></category></item><item><title><![CDATA[Ubuntu 源码安装最新版本 gcc 5.x版本]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51134843</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51134843</guid><author>wallwind</author><pubDate>Tue, 12 Apr 2016 16:44:43 +0800</pubDate><description><![CDATA[首先下载最新版
http://www.netgull.com/gcc/releases/gcc-5.3.0/





 Pre-Knowledge

The regular procedure to build any program from source code is simply the below three steps:

① ./configure

② ]]></description><category></category></item><item><title><![CDATA[动态库的链接和链接选项-L，-rpath-link，-rpath]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51083158</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51083158</guid><author>wallwind</author><pubDate>Thu, 07 Apr 2016 09:54:09 +0800</pubDate><description><![CDATA[链接动态库

如何程序在连接时使用了共享库，就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录，然后按照/etc/ld.so.conf里面的配置搜索绝对路径。同时，Linux也提供了环境变量LD_LIBRARY_PATH供用户选择使用，用户可以通过设定它来查找除默认路径之外的其他路径，如查找/work/lib路径,你可以在]]></description><category></category></item><item><title><![CDATA[开源的相关记录]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/51049758</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/51049758</guid><author>wallwind</author><pubDate>Sun, 03 Apr 2016 12:20:47 +0800</pubDate><description><![CDATA[Protocal Buffer是google开源的用于数据交换的库，常用于跨语言的数据访问，担任的角色一般为对象的序列化/反序列化。 另一个与之类似的开源软件是facebook开源的thrift，它们两个最大区别是thrift提供了自动生成RPC的功能而Protocal Buffer需要自己实现，但Protocal Buffer的一个优势是其序列化/反序列化非常高效。

AD：51CTO首届中]]></description><category></category></item><item><title><![CDATA[一步步编写并发阻塞队列]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/50884941</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/50884941</guid><author>wallwind</author><pubDate>Mon, 14 Mar 2016 11:32:06 +0800</pubDate><description><![CDATA[这篇文章主要介绍了linux中编写并发队列类，功能有：并发阻塞队列、有超时限制、有大小限制





设计并发队列



复制代码代码如下:


#include 
#include 
using namespace std;



template 
class Queue 
{ 
public: 
    Queue( ) 
    { 
  ]]></description><category></category></item><item><title><![CDATA[linux 下的编程效率分享]]></title><link>https://blog.youkuaiyun.com/wallwind/article/details/50808430</link><guid>https://blog.youkuaiyun.com/wallwind/article/details/50808430</guid><author>wallwind</author><pubDate>Sat, 05 Mar 2016 13:25:54 +0800</pubDate><description><![CDATA[操作


性能




memset  1K


150W次/s




memcpy  1K


150W次/s




malloc 小字节 单线程


100W次/s




gettimeofday


30W~400W次/s




time


30W~400W次/s




getpid]]></description><category></category></item></channel></rss>