- 博客(177)
- 资源 (15)
- 收藏
- 关注
原创 K8s DaemonSet的介绍
是 Kubernetes 中的一种控制器,用于确保每个(或某些指定的)节点上运行一个 Pod 副本。它是为部署守护进程设计的,例如需要在每个节点上运行的任务或工具。在部署 DaemonSet 时,可以配置节点的**亲密性(Affinity)排斥性(Toleration)**属性来控制 Pod 的调度行为。
2024-12-25 15:34:09
1026
原创 K8s 常用资源介绍
指的是可以在集群中管理的对象(Objects)。这些资源用来定义和控制应用、服务、以及集群的状态。允许用户扩展 Kubernetes API 以满足特殊需求。工作负载资源定义和管理运行在集群中的应用程序。服务资源负责暴露和访问运行中的应用。用于管理应用程序的配置和持久化存储。在 Kubernetes 中,用于配置和管理集群的行为。用于扩展和优化资源利用率。控制网络流量和安全性。
2024-12-25 15:10:23
819
原创 K8s 不同层次的进程间通信实现
集群中的 Pod 可以通过 Kubernetes 的服务(Service)或者直接使用 Pod 的 IP 地址进行通信。跨集群的通信需要更复杂的设置,例如服务网格、云供应商的互连服务,或基于 DNS 和负载均衡的自定义解决方案。Pod 是 Kubernetes 中的最小部署单元,通常包含一个或多个共享相同网络命名空间的容器。公网用户通常通过 Kubernetes 的外部服务类型访问集群内的服务。(用于非网络的配置共享)
2024-12-25 14:48:15
1023
原创 K8s HPA的常用功能介绍
HPA 是 Kubernetes 集群中高效、灵活的扩展机制,通过动态调整 Pod 副本数来应对负载变化,保障应用性能。结合自定义指标、监控工具和资源管理,HPA 能帮助开发团队实现更高效的资源利用和服务稳定性。
2024-12-19 16:27:39
990
原创 K8s ConfigMap的基础功能介绍
在 Kubernetes 中,是一种用于管理配置信息的资源对象,它允许你将,方便管理和更新应用配置,而无需重新构建镜像或重启服务。日常中,ConfigMap 常用来管理配置数据,比如服务地址、全局参数、功能开关等。:游戏服务通常由多个微服务组成,例如登录服务、玩家数据服务、战斗服务等,ConfigMap 可以用来存储这些服务的地址或 DNS。:游戏需要经常调整参数,如体力恢复速度、活动时间、掉落倍率等,通过 ConfigMap 管理这些参数。
2024-12-18 19:49:17
1141
原创 K8s中 statefulset 和deployment的区别
是两种管理 Pod 的控制器,它们的主要区别在于。在 Kubernetes 中,
2024-12-18 11:43:41
1279
原创 K8s 中Istio 的使用示例
你的进程主要通过接收流量。Envoy 拦截 Pod 的入站和出站流量,并将其转发到你指定的端口。如果需要原始网络包,可以通过eBPF或tcpdump直接监听 Pod 的网络接口。结合和,可以控制 Envoy 如何路由流量到你的进程。Istio 的日志和指标输出也可以提供网络流量的详细信息,供你的进程分析。根据需求选择合适的接入方式,可以有效实现网络包的获取与处理。
2024-12-17 11:13:01
984
原创 K8s 如何自己实现云上的proxy代理
一个在 Kubernetes 内部实现的网络代理进程,核心功能包括流量转发、服务发现、负载均衡、健康检查、安全性、监控日志等。实现时应兼顾性能、动态配置管理以及容错能力。根据需求,可以选择基于现有代理方案进行二次开发或直接实现一个轻量级的代理。
2024-12-17 10:56:15
1128
原创 k8s pod之间的通讯方式
在 Kubernetes 中,不同命名空间(namespace)下的 Pod 之间是可以通信的,但需要遵循一些规则和方法。以下是常见的方式和注意事项:Kubernetes 中的网络是全局的,所有 Pod 默认处于同一个平坦的网络空间。也就是说,Pod 在不同命名空间中可以通过 Pod 的 IP 地址 直接通信,但这种方式并不推荐,因为 Pod 的 IP 地址可能会动态变化。为了让不同命名空间中的 Pod 更加方便地通信,通常通过 Kubernetes 的 Service 来完成。在 Kubernetes 中
2024-12-13 19:33:20
1600
原创 k8s 部署方式kustomization和helm的区别
Kustomize 和 Helm 是 Kubernetes 中两种流行的配置管理工具,它们都用于管理 Kubernetes 资源,但它们的设计理念、功能和适用场景有所不同。以下是两者的详细对比:1. 基本概念Kustomize功能:原生于 Kubernetes 的工具,用于基于已有的 YAML 配置文件进行修改和覆盖(Patch)。 设计理念:通过声明式的配置管理,对现有的资源文件进行变更,而不依赖模板。 特点: 无需模板。 修改现有 YAML 而不改变其基础定义。 通过叠加(Ov
2024-12-13 17:09:46
1336
原创 k8s Service的基础使用
如果你的 C++ 服务配置正确并且 StatefulSet 和 Service 的 YAML 文件无误,服务应该能够顺利接收到 8090 端口转发来的消息。来转发 8090 端口的流量后,你的 C++ 服务需要确保能够正确接收和处理这些转发来的消息。在 StatefulSet 的 Pod 中,C++ 服务需要监听 8090 端口,处理来自 Kubernetes。如果 C++ 服务工作正常,应该可以看到服务返回的响应。等网络库来实现一个 TCP 或 HTTP 服务器。在 Kubernetes 中,为。
2024-12-12 16:36:05
641
转载 初识 GO
导读:2007年,受够了C++煎熬的Google首席软件工程师Rob Pike纠集Robert Griesemer和Ken Thompson两位牛人,决定创造一种新语言来取代C++,这就是Golang。出现在21世纪的GO语言,虽然不能如愿对C++取而代之,但是其近C的执行性能和近解析型语言的开发效率以及近乎于完美的编译速度,已经风靡全球。特别是在云项目中,大部分都使用了Golang来开发,不得不...
2018-09-20 10:45:03
405
1
原创 MySQL 优化查询
1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num is ...
2018-08-01 14:22:18
381
原创 Twitter-Snowflake,64位自增ID算法详解
Twitter-Snowflake算法产生的背景相当简单,为了满足Twitter每秒上万条消息的请求,每条消息都必须分配一条唯一的id,这些id还需要一些大致的顺序(方便客户端排序),并且在分布式系统中不同机器产生的id必须不同。Snowflake算法核心把时间戳,工作机器id,序列号组合在一起。 除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下41...
2018-03-16 15:10:35
782
原创 C# 反射
一、概念:1、反射机制是一种运行时获取类(Type对象)和动态调用对象的成员的机制。a.可以获取有关已加载的程序集和在其中定义的类型(如类、接口和值类型)的成员信息;b.可以使用反射在运行时创建指定类的对象,以及调用和访问这些对象的成员。这种动态获取的信息以及动态调用对象的方法的功能称为反射机制。 2、C#编译原理:(1)C#生成exe文件后,放在bin目录
2017-11-02 13:23:40
600
转载 负载均衡
什么是负载均衡负载均衡(Load Balance)是分布式系统架构设计中必须考虑的因素之一,它通常是指将请求/数据【均匀】分摊到多个操作单元上执行,负载均衡的关键在于【均匀】。常见的负载均衡方案常见互联网分布式架构如上,分为客户端层、反向代理nginx层、站点层、服务层、数据层。可以看到,每一个下游都有多个上游调用,只需要做到,每一个上游都均匀访问每一个下游,就能实
2017-10-12 10:46:29
426
转载 单点系统架构的优化
一、需求缘起明明架构要求高可用,为何系统中还会存在单点?回答:单点master的设计,会大大简化系统设计,何况有时候避免不了单点在哪些场景中会存在单点?先来看一下一个典型互联网高可用架构。典型互联网高可用架构:(1)客户端层,这一层是浏览器或者APP,第一步先访问DNS-server,由域名拿到nginx的外网IP(2)负载均衡层,ngi
2017-10-12 10:40:55
1624
原创 mongo 脚本整理
1 修改某列名称 db.playerMgr.update({},{$rename:{"id":"playerId"}},false,true)2 删除某列db.players.update({},{$unset:{'stage':''}},false,true)
2017-09-23 16:56:40
1045
原创 2017 原创整理 lua面试题
1、Lua中有8个基本类型分别为nil、boolean、number、string、userdata、function、thread和table。 2、给出下面 表达式的输出是什么print(type("Hello world")) --> stringprint(type(10.4*3)) --> numberprint(type(p
2017-09-18 10:55:17
16406
转载 ZMQ和MessagePack的简单使用
近段日子在做一个比较复杂的项目,其中用到了开源软件ZMQ和MessagePack。ZMQ对底层网络通信进行了封装,是一个消息处理队列库, 使用起来非常方便。MessagePack是一个基于二进制的对象序列化类库,具有跨语言的特性,同样非常容易使用。在我做的项目中,消息类通过 MessagePack进行压包,然后写入ZMQ的消息结构体,通过ZMQ传递,最后接收者利用MessagePack进行解包,从
2017-09-14 20:19:32
1011
1
原创 mongodb常用命令脚本化-自动化运维
mongodb常用命令脚本化-自动化运维把一些运维中常用到的mongodb命令写成shell脚本,极大的方便了维护1 设置副本集#!/bin/bash#mongodb 进入client 并use admincd /usr/mongodb/binMongoDB='./mongo 192.168.1.7:37017'$MongoDB use admin
2017-09-04 10:07:08
716
原创 王者荣耀的帧同步机智
这是王者荣耀技术分析系列第二篇,有兴趣请持续关注。1、像《王者荣耀》一样红过2、从《王者荣耀》来聊聊游戏的帧同步3、游戏服务器的架构演进农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU)均值为5412.8万
2017-07-05 17:25:51
8242
1
原创 Thrift server端的几种工作模式分析
Thrift服务器端几种工作模式分析与总结Thrift为服务器端提供了多种工作模式,本文中将涉及以下5中工作模式:TSimpleServer、TNonblockingServer、THsHaServer、TThreadPoolServer、TThreadedSelectorServer,这5中工作模式的详细工作原理如下:1. TSimpleServer模式TSim
2017-06-29 15:11:57
463
原创 ZeroMQ
1 ZeroMQ概述ZeroMQ是一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字。ZeroMQ是网络通信中新的一层,介于应用层和传输层之间(按照TCP/IP划分),其是一个可伸缩层,可并行运行,分散在分布式系统间。2 系统架构2.1总体架构ZeroMQ几乎所有的I/O操作都是异步的,主线程不
2017-06-13 16:08:18
24190
原创 Nlog配置实例 彩色Console target
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <target name="coloredConsole" xsi:type="ColoredConsole" useDefaultR
2017-03-14 16:35:58
4881
原创 c#实现的LRU算法
using System.Collections.Generic;using System.Threading;namespace Lru{ public class LRUCache { const int DEFAULT_CAPACITY = 255; int _capacity; ReaderWriterLockSli
2017-02-17 17:13:28
2587
1
原创 windows 平台 mongo 主从配置
sc create MongoDB binPath= "\"I:\mongodb\mongodb-win32-x86_64-3.0.6\bin\mongod.exe\" --service --config=\"D:\Mongodb\mongo.cfg\"" DisplayName= "MongoDB" start= "auto"sc create MongodbSlave binPat
2017-02-14 11:23:53
1042
转载 游戏服务端究竟解决了什么问题?
转自:点击打开链接1.写在前面既然是游戏服务端程序员,那博客里至少还是得有一篇跟游戏服务端有关的文章,今天文章主题就关于游戏服务端。写这篇博客之前也挺纠结的,一方面是因为游戏服务端其实不论架构上还是具体一些逻辑模块的构建,都属于非常成熟的技术,举个简单的例子,像端游的多zone/scene/game进程+单全局进程架构,网上随便一搜能搜出来几十篇内容差不多的。另一方面是因为中国特色
2016-12-27 14:16:22
2052
2
转载 游戏服务器优化
网络游戏服务器注意事项,优化措施1:IO操作是最大的性能消耗点,注意优化余地很大。2:算法数据结构。排序寻路算法的优化。list,vector,hashmap的选择。大数据寻址,不要考虑遍历,注意考虑hash.3:内存管理。重载new/delete,内存池,对象池的处理。4:数据的提前准备和即时计算。5:CPU方面的统计监视。逻辑帧计数(应当50ms以内)。6:预分配池减少
2016-12-27 11:29:29
2064
转载 游戏服务器 数据同步方案
游戏数据同步方案 首先我们介绍实时对战手游中最难解决的技术问题——弱网络下的数据同步问题。 通过对玩家的游戏数据进行观察,发现玩家的游戏环境存在很大差异,不同玩家会使用不同的2G/3G/4G/Wifi网络,不同网络之间的延迟相差很大。另外移动网络质量不稳定,且都是按流量收费,这些都是需要考虑的问题。手机在网络间的切换,又会造成底层网络断线、地址变化等问题,都是常见
2016-12-26 15:26:59
11117
转载 redis简单应用
redis简单应用启动和结束--启动redis服务E:\redis>redis-server.exe redis.windows.conf--结束redis服务127.0.0.1:6379> shutdownnot connected>3、修改配置文件的两种方式3.1、运行中使用config set命令修改--连接redis,-h ip> -a pwd>
2016-08-10 09:35:40
3650
原创 mongoVUE的增删改查操作使用说明
1、 精确查询 1)右键点击集合名,再左键点击Find 或者直接点击工具栏上的Find 2)查询界面,包括四个区域 {Find}区,查询条件格式{"sendId":"000101"}表示查询sendId=000101的记录,(注:mongodb区分大小写,写成{"sendid":"000101"}会查询不到)查询条件包含and时,格式为:{"sendId":
2016-05-13 16:34:15
14006
2
转载 Nlog 配置总结
Writes log messages to one or more files.Since NLog 4.3 the ${basedir} isn't needed anymore for relative paths.Supported in .NET, Silverlight, Compact Framework and Mono.Configuration Sy
2016-04-05 10:43:35
7383
原创 Redis 主从复制
一、Redis的Replication: 这里首先需要说明的是,在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识,后面给出实际操作的案例。 下面的列表清楚的解释了Redis Replication的特点和优势。 1). 同一个Master可以同步多个Slaves。
2016-03-01 17:27:00
383
原创 Redis : ServiceStack.Redis之IRedisClient
事实上,IRedisClient里面的很多方法,其实就是Redis的命令名。只要对Redis的命令熟悉一点就能够非常快速地理解和掌握这些方法,趁着现在对Redis不是特别了解,我也对着命令来了解一下这些方法。一、属性 IRedisClient的属性如下:属性说明ConnectTimeout 连接超时Db当前数据库的ID或下标
2016-03-01 17:06:08
1081
原创 redis 五种数据类型的使用场景
1.String常用命令:除了get、set、incr、decr mget等操作外,Redis还提供了下面一些操作:获取字符串长度往字符串append内容设置和获取字符串的某一段内容设置及获取字符串的某一位(bit)批量设置一系列字符串的内容应用场景:String是最常用的一种数据类型,普通的key/value存储都可以归为此类,value其实不仅是Stri
2016-03-01 14:05:21
551
原创 NetMQ 测试用例
近期研究了一下NetMQ,设想把他用在分布式爬虫上面,NetMQ是一个封装了Socket队列的开源库,他是ZeroMQ的.net移植版,而ZeroMQ是用C写成的,有人测试过他的性能,几乎可以秒杀其他所有的MQ(MSMQ,RabitMQ等等,都不是他的对手),不过他也有一个弱点,消息不支持持久化!当然,这个功能可以自己实现,我这里只讲性能,不需要持久化下面的例子是我基于NetMQ官网的例子
2016-01-22 20:51:25
2847
50家顶尖企业笔试题大全
2010-10-19
Modbus 调试精灵 V1.024
2010-08-27
Visual Assist X 1840 安装文件及破解文件
2012-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人