草庐IT

数仓架构

全部标签

腾讯QQ桌面版架构升级:内存优化探索与总结

相比用户停留时间短、用完即走的Web页面,桌面QQ用户在一次登录后,可能会挂机一周以上,这段期间,如果没有严格控制好QQ内存占用,那么结果可能是用户交互响应变慢、甚至Crash。在系统监控工具里,高内存占用也会被直观地反映出来,带来不好的口碑。MACQQ灰度期间,也听到了一些用户关于内存占用偏高的声音。即然不能置若罔闻,那么必须得痛下决心系统地来一波内存占用分析与优化。在这个过程中,团队前前后后挖出来了不少优化项,最终,可以让桌面QQ在内存占用上达到一个相对较低且稳定的状态。本文内容是探索桌面QQ内存优化上的一个阶段性小结,肯定还有更多内存优化trick,欢迎各位多多提意见。背景新版桌面QQ自

云原生Kubernetes:Kubeadm部署K8S单Master架构

目录一、理论1.kubeadm2.Kubeadm部署K8S单Master架构3.环境部署4.所有节点安装docker5.所有节点安装kubeadm,kubelet和kubectl6.部署K8S集群7.安装dashboard8.安装Harbor私有仓库9.内核参数优化方案二、实验1.Kubeadm部署K8S单Master架构2. 部署流程 3.环境部署4.所有节点安装docker5.所有节点安装kubeadm,kubelet和kubectl6.部署K8S集群7.安装dashboard8.安装Harbor私有仓库三、问题1.加入k8s集群报错2.Kubernetes各版本对应支持的docker版本

微服务架构-服务网关(Gateway)-路由功能详解

路由功能详解这一节我们看一看Gateway中的路由是怎么工作的;GateWay网关的路由功能可不是简简单单的“转发"请求,在请求到达网关要流转到指定服务之间发生了很多事儿,它不光可以拒绝请求,甚至可以"篡改”请求的参数,我们接下来就去看看路由这里面的门道。1、路由三重门Gateway中可以定义很多个Route,一个Route就是一套包含完整转发规则的路由,主要由三部分组成:断言集合:断言是路由处理的第一个环节,它是路由的匹配规则,它决定了一个网络请求是否可以匹配给当前路由来处理。之所以它是一个集合的原因是我们可以给一个路由添加多个断言,当每个断言都匹配成功以后才算过了路由的第一关。过滤器集合:

622.【系统架构】模块的耦合类型

耦合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非直接耦合则表示模块之间无任何直接联系。模块的耦合类型通常也分为7种。非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过上级模块的控制和调用来实现的。数据耦合:一组模块借助参数表传递简单数据。标记耦合:一组模块通过参数表传递记录等复杂信息(数据结构)。控制耦合:模块之间传递的信息中包含用于控制模块内部逻辑的信息。通信耦合:一组模块共用了一组输入信息,或者它们的输出需要整合以形成完整数据,即共享了输入或输出。公共耦合:多个模块都访问同一个公共数据环境,公共的数据环境可以是全局数据结构、共享的通

大厂案例 - 腾讯万亿级 Elasticsearch 架构实践

文章目录概述提纲益处正文一、Elasticsearch简介0.应用领域搜索引擎可观测性安全检测发展现状1.系统架构集群架构物理数据模型查询2.腾讯应用现状搜索领日志实时分析时序数据二、技术挑战1.可用性2.成本3.性能三、架构设计实践1.可用性优化1.1解决方案2.2集群扩展性2.3健壮性架构2.3.1服务限流2.3.2异常容忍2.成本优化2.1解决方案2.2内存优化2.3数据上卷:计算置换存储2.4日志即数据库3.性能优化3.1解决方案3.2时序Merge四、总结及未来规划1.现状总结2.未来发展3.开源协同案例复盘概述Elasticsearch(ES)作为首选的开源分布式搜索分析引擎,通过

信息收集的有效方法——为企业搭建信息架构,优化信息管理

作者:禅与计算机程序设计艺术1.简介20世纪末,互联网爆炸席卷全球,产生了海量的数据,而这些数据极大的激发了人们对数据分析的需求。为应对这个数据分析需求,网络安全专家、程序员和科学家们一起合作,开发出了各种基于机器学习的方法。当今,人工智能正成为企业解决复杂问题的核心驱动力,越来越多的企业也将其用于信息管理中,帮助他们更好地发现信息价值并对其进行加工整理。本文从收集、整理、存储、分析等四个方面综述了信息收集过程,并给出了最佳实践方案。2.基本概念及术语介绍数据收集分类非结构化数据:指没有固定格式或标准的、易于被计算机处理的数据,如图像、视频、文本、音频、文档等;结构化数据:指具备一定格式或标准

Unity 打造游戏攻击技能架构与设计

一、技能系统的设计在MOBA游戏中,每个英雄角色都会有多个技能,这些技能可以分为普通攻击和技能攻击两种。普通攻击是英雄角色的基本攻击方式,而技能攻击则需要消耗一定的资源(如蓝量)才能使用。在设计技能系统时,我们需要考虑以下几个方面:对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。技能类型的分类根据技能的不同作用,我们可以将技能分为以下几种类型:(1)主动技能:需要玩家手动触发的技能,例如瞬移、大招等。(2)被动技能:无需玩家触发,自动生效的技能,例如增加攻击力、减少受到的伤害等。(3)持续技能:需要一定时间才能生效的技

如何在云原生架构下构建多租户系统?Practical Cloud Native Applications

作者:禅与计算机程序设计艺术1.简介在云原生时代,容器技术正在成为最具革命性的技术之一。容器化部署、弹性伸缩、动态负载均衡等特性使得开发者可以快速响应业务需求而无需关心底层基础设施问题。同时,通过云平台提供的服务和资源,开发者也能够降低成本、提升性能。那么,如何在云原生架构下构建多租户博客系统,并将其部署到AWSEKS上呢?BitnamiLabs的工程师们早已为读者提供了详尽的指导和方案,本文将带领读者完成此任务。目标受众具有基本的云计算知识,了解基本容器技术、Kubernetes、CI/CD工具链等。2.基本概念与术语说明什么是Kubernetes?Kubernetes是一个开源的容器编排系

微服务架构下网关的技术选型

1简介当使用单体应用程序架构时,客户端(Web或移动端)通过向后端应用程序发起一次REST调用来获取数据。负载均衡器将请求路由给N个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表,并将响应返回给客户端。微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,势必会出现安全方面的各种问题,另外内外耦合严重。客户端可以直接向每个微服务发送请求,其问题主要如下:客户端需求和每个微服务暴露的细粒度API不匹配。部分服务使用的协议不是Web友好协议。可能使用Thrift二进制RPC,也可能使用AMQP消息传递协议。微服务难以重构。如果合并两个服务,或者将一个服务拆分成两个或

基于SpringCloud的微服务架构学习笔记(2)注册中心Eureka和负载均衡Ribbon

目录1.7Eureka注册中心1.7.1远程调用的问题1.7.2eureka原理1.7.3搭建EurekaServer1.7.4服务注册:注册user-service1.7.4服务注册:注册order-service1.7.6order-service完成服务拉取(能够自助选择服务)1.7.7总结1.8.2负载均衡策略1.8.4饥饿加载1.8.5总结1.7Eureka注册中心1.7.1远程调用的问题地址信息获取:服务消费者如何获取服务提供者的地址信息(不能每次都写死):URL:http://localhost:8081/user/"+order.getUserId()多选一:如果有多个服务提供