转载至我的博客https://www.infrastack.cn,公众号:架构成长指南 在并发一致性控制场景中,我们常常用forupdate悲观锁来进行一致性的保证,但是如果不了解它的机制,就进行使用,很容易出现事故,比如forupdate进行了锁表导致其他请求只能等待,从而拖垮系统,因此了解它的原理是非常必要的,下面我们通过一系列示例进行测试,来看看到底是什么场景下锁表什么场景下锁行 验证 示例说明 创建一个账户表,插入基础数据,以唯一索引、普通索引、主键、普通字段4个维度进行select...forupdate查询,查看是进行锁表还是锁行 表创建 创建一个账户表,指定account_n...

  Mzl3nCbI2ZCX   2024年03月12日   33   0   0 MySQL

转载至我的博客https://www.infrastack.cn,公众号:架构成长指南 当我们使用Mysql数据库到达一定量级以后,性能就会逐步下降,而解决此类问题,常用的手段就是引入数据库中间件进行分库分表处理,比如使用Mycat、ShadingShpere、tddl,但是这种都是过去式了,现在使用分布式数据库可以避免分库分表 为什么不建议分库分表呢? 分库分表以后,会面临以下问题 分页问题,例如:使用传统写法,随着页数过大性能会急剧下降 分布式事务问题 数据迁移问题,例如:需要把现有数据通过分配算法导入到所有的分库中 数据扩容问题,分库分表的数据总有一天也会到达极限,需要增大分片 开...

  Mzl3nCbI2ZCX   2024年02月19日   45   0   0 架构设计

转载至我的博客https://www.infrastack.cn,公众号:架构成长指南 背景 随着公司业务快速发展,对业务数据进行增长分析的需求越来越迫切,与此同时我们的业务数据量也在快速激增、每天的数据新增量大概在30w左右,一年就会产生1个亿的数据,显然基于传统MySQL数据库已经无法支撑满足以上需求 基于上述需求和痛点,决定提供一个灵活的多维实时查询和分析平台,帮助业务线做精细化运营。 业务分析 现有业务数据有以下特点,查询多、更新少,基本不会更新1个月以前的数据,但是查询范围较大,有时需要查询几年前的数据,而且数据会以年、月等不同维度统计来进行增长分析 因此以上场景使用OLTP引擎...

  Mzl3nCbI2ZCX   2024年02月19日   133   0   0 大数据

转载至我的博客https://www.infrastack.cn,公众号:架构成长指南 今天给各位分享一个非常牛的实时分析型数据库ApacheDoris,几乎国内的一二线大厂都在使用它做数据分析,如下图,这只是一小部分 同时我司也在使用它,他目前支撑了我们亿级业务数据的多维实时查询分析,而且性能很不错 Doris介绍 官方地址:https://doris.apache.org/ ApacheDoris源于百度2008年启动的产品Palo在2018年捐献给Apache基金会,是一个基于MPP架构的高性能、实时的分析型数据库,他非常简单易用,而且性能还不错,仅需亚秒级响应时间即可获得查询结果...

  Mzl3nCbI2ZCX   2024年01月23日   22   0   0 大数据

转载至我的博客https://www.infrastack.cn,公众号:架构成长指南 大家好,我是蜗牛哥,好多开发人员,尤其是没接触过k8s的人员对如何在k8s中部署一个前后端应用很模糊,不知如何下手,所以本篇讲一下如何快速在k8s部署一个前后端应用,让大家对k8s有个快速认识 前置依赖 k8s集群,如果没有安装,请参考k8s部署手册 kubectl,客户端部署需要依赖 应用镜像构建 应用镜像构建不用自己去执行,相关镜像已经推送到dockerhub仓库,如果要了解过程和细节,可以看一下,否则直接跳到k8syaml文件配置章节 Java应用镜像构建 代码地址:https://githu...

  Mzl3nCbI2ZCX   2024年01月12日   13   0   0 Java

转载至我的博客,公众号:架构成长指南 在金融系统中,我们会跟钱打交道,而保证在高并发下场景下,对账户余额操作的一致性,是非常重要的,如果代码写的时候没考虑并发一致性,就会导致资损,本人在金融行业干了8年多,对这块稍微有点经验,所以这篇聊一下,如何在并发场景下,保证账户余额的一致性 1.扣款流程是什么样的? publicvoidpayout(longuid,varpayAmount){ 查询账户总额 varamount="SELECTamountFROMaccountWHEREuid=$uid"; 计算账户余额 varbalanceAmount=amount-payAmount; if(b...

  Mzl3nCbI2ZCX   2024年01月10日   11   0   0 Java

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 试想一下,如果有一个项目有50个微服务,每个微服务都有service、deployment、ingress、pvc等yaml文件,算下来大概有200个文件,然后这个项目需要基于k8s进行私有化交付,如果是你会怎么快速部署应用? 首先让我们先思考一下 200个文件是否通过kubectlapply进行部署,写个shell脚本for循环一个个读取执行?,但是如果这些yaml文件更新了,如何同步? 如果这些pod进行需要升级怎么办,一个个修改镜像tag? yaml文件关联地址如何更新,比如数据库地址、文件系统地址,日志目...

  Mzl3nCbI2ZCX   2024年01月08日   15   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 时序数据库有很多,比如Prometheus、M3DB、TimescaleDB、OpenTSDB、InfluxDB等等。Prometheus和VictoriaMetrics是开源的时间序列数据库,在复杂的环境中提供了强大的监控和警报解决方案。然而,它们的设计不同,并提供了独特的功能,这些功能可能会影响它们在监视工作负载方面的性能、可扩展性和易用性。本文分析Prometheus和VictoriaMetrics之间的差异,以为特定需求的用户提供最合适的解决方案。 Prometheus Prometheus最初是Sound...

  Mzl3nCbI2ZCX   2024年01月05日   15   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 前言 K8s本身不包含内置的监控工具,所以市场上有不少这样监控工具来填补这一空白,但是没有一个监控工具有prometheus全家桶使用率高,因为它由CNCF维护,已经成为了监控k8s集群的事实上的行业标准,下面介绍一下如何在K8s快速部署一个kube-prometheus项目,来实现对k8s相关资源监控与告警 kube-prometheus介绍 kube-prometheus是一个完整的监控解决方案,可以轻松地将其部署到Kubernetes集群中,它包括以下内容 Prometheus用于度量收集 Alertma...

  Mzl3nCbI2ZCX   2023年12月29日   56   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 在10分钟教你使用Prometheus监控SpringBoot工程中介绍了如何使用Prometheus监控SpringBoot提供的默认指标,这篇介绍如何自定义业务指标,并使用Prometheus进行监控并报警,同时在Grafana进行展现 示例介绍 我们模拟一个账务系统,主要功能有:充值与提现,其中会定义5个业务指标,如下 充值次数 充值金额 提现次数 提现金额 余额 针对以上5业务指标,会使用prometheus的三种Metrics类型,如下 Counter:只增不减的计数器,用作定义充值次数、提现次数 ...

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 如果有一种技术可以监控和采集任何应用信息,支持任何语言,并且应用完全无感知,零侵入,想想是不是很激动,那么这个技术是什么呢?就是eBPF,它应该是最近一两年非常热门的技术名词,我相信你或多或少都看到过,但可能不知道它能做什么,今天我们来讲讲这个革命性的技术eBPF,以及它在可观测领域的应用eBPF是什么? eBPF是什么? eBPF(extendedBerkeleyPacketFilter)是在Linux内核中运行的虚拟机技术,2014年它首次出现在Linux内核中,并经过这几年迭代,目前已经成熟。它提供了一种...

  Mzl3nCbI2ZCX   2023年12月28日   16   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 概述 在我们访问k8s中的pod服务时,一般通过nodeport映射pod端口进行访问,还有一种是通过ingress或者istio通过域名方式来访问,虽然两种方式能满足我们需求,但是如果针对临时访问,配置起来还是有点复杂和耗时,那么我们就可以使用kubectlport-forward来满足我们需求 port-forward介绍 kubectlport-forward是Kubernetes命令行工具kubectl提供的一个功能,用于在本地主机和Kubernetes集群中的Pod之间建立端口转发。 当你运行kubect...

  Mzl3nCbI2ZCX   2023年12月26日   14   0   0 Kubernetes

Kubernetes是最流行的容器编排和部署平台。它的强大功能特性,可以保障在生产中可靠地运行容器化应用程序。 然而,有灵活性的同时也带来了复杂性,在本文中,我们将探讨许多团队遇到的10个常见Kubernetes陷阱。能够识别并避免这些挑战将提高应用程序的可扩展性、可靠性和安全性,同时让你更好地控制集群及其部署。 1.使用latestTag部署容器 可以说,Kubernetes最常被违反的最佳实践之一就是在部署容器时使用latest标签。这将使我们面临无意中接收重大变更的风险,而这些变更可能影响系统稳定性。 每个人使用latest标签的方式各不相同,但大多数人都会将latest指向其项目的最...

  Mzl3nCbI2ZCX   2023年12月23日   43   0   0 kubernatesk8sk8skubernates

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 随着科技的进步,软件系统的部署架构也在不断演进,从以前传统的物理机到虚拟机、Docker和Kubernetes,我们经历了一系列变化。 这些技术的引入给我们带来了更高的资源利用率、更快的部署速度和更强大的扩展性,下面让我们一起探索这些演进,了解如何从传统部署走向现代化架构,为软件系统的开发和部署带来更多的便利和灵活性。 物理机部署 物理机部署在计算机早期阶段比较盛行,因为那时候虚拟化和云计算等技术还没有普及,物理机是主要的部署选择。 优点 性能和资源控制:物理机提供了直接访问硬件资源的能力,在某些对性...

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享 前言 最近在搞K8S的监控告警平台选型,对比了目前比较流行两款开源平台kube-prometheus、夜莺,也踩了一些坑分享一下 kube-prometheus 项目地址:https://github.com/prometheus-operator/kube-prometheus 目前使用最广泛的k8s的开源监控告警平台,在prometheus基础上,增加了对k8s的各种指标的监控,使用了KubernetesOperator进行了封装,几乎可以一键部署,部署起来以后登录Grafana,就可以看到各种指标,如下图 ...

  Mzl3nCbI2ZCX   2023年12月22日   95   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 随着科技的进步,软件系统的部署架构也在不断演进,从以前传统的物理机到虚拟机、Docker和Kubernetes,我们经历了一系列变化。 这些技术的引入给我们带来了更高的资源利用率、更快的部署速度和更强大的扩展性,下面让我们一起探索这些演进,了解如何从传统部署走向现代化架构,为软件系统的开发和部署带来更多的便利和灵活性。 物理机部署 物理机部署在计算机早期阶段比较盛行,因为那时候虚拟化和云计算等技术还没有普及,物理机是主要的部署选择。 优点 性能和资源控制:物理机提供了直接访问硬件资源的能力,在某些对性...

  Mzl3nCbI2ZCX   2023年11月30日   16   0   0 架构设计

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 对k8s有点了解技术人员,应该都只知道k8s是有服务注册发现的,今天就分析下这个原理,看看怎么实现的。 什么是服务注册与发现 服务注册与发现是一种机制,用于在集群中动态地发现和连接不同的服务,比如我们在开发微服务时,经常使用的Eureka、Nacos等 ServiceB把自己注册到ServiceRegistry叫做服务注册 ServiceA从ServiceRegistry发现ServiceB的节点信息叫做服务发现 K8s中为什么需要服务发现 动态性 在K8s集群中,Pod和服务的数量和位置都是动态变化的,Pod有...

  Mzl3nCbI2ZCX   2023年11月30日   10   0   0 Kubernetes

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 目的 SpringCloud线上微服务实例都是2个起步,如果出问题后,在没有ELK等日志分析平台,如何确定调用到了目标服务的那个实例,以此来排查问题 效果 可以看到服务有几个实例是上线,并且最终调用了那个实例 考虑到SpringCloud在版本升级中使用了两种负载均衡实现,Robin和LoadBalancer,下面我们提供两种实现方案 Robin实现方案 1.技术栈 SpringCloud:Hoxton.SR6 SpringBoot:2.3.1.RELEASE Spring-Cloud-Openfeign:2...

  Mzl3nCbI2ZCX   2023年11月28日   19   0   0 Java

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 工具介绍 今天给大家分享超实用的AI表格ChatExcel,这个工具是由北大团队在2022年3月开始开发的AI表格处理神器,上传你的表格后,只需要用文字描述你的需求,不需要你懂excel函数,AI就会自动帮你搞定。 ChatExcel和市面上其它AIGC产品最大不同在于,它是一个持续交互的过程,一次交互的产品对于生成的效果好不好,哪里不满意,用户都只能无条件接受,无法修改;但其实更贴近用户需求的是一个持续交互、迭代更新的过程。 以下是作者本人在知乎上表达的愿景和生态 工具地址 https://www.chatex...

  Mzl3nCbI2ZCX   2023年11月26日   16   0   0 AI综合

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 数据库和Redis如何保持强一致性,这篇文章告诉你 目的 Redis和Msql来保持数据同步,并且强一致,以此来提高对应接口的响应速度,刚开始考虑是用mybatis的二级缓存,发现坑不少,于是决定自己搞 要关注的问题点 操作数据必须是唯一索引 如果更新数据不是唯一索引,则数据库更新后的值,与缓存不一致,而查询还会走缓存,而查询的值是脏值。 查询唯一数据,数据值必须是全部字段 假如:B交易查询字段不是全部字段,进行查询放入缓存,A交易进行查询时,从缓存获取,由于A交易需要全部字段,所以就会出现不可预知的问题。 查询...

  Mzl3nCbI2ZCX   2023年11月25日   32   0   0 架构设计
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~