深入理解分布式事务,高并发下分布式事务的解决方案
1、什么是分布式事务分布式事务就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全
微服务架构下分布式事务解决方案——阿里GTS
1微服务的发展微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、京
如何优化 MySQL 大分页查询?
大部分开发和DBA同行都对分页查询非常非常了解,看帖子翻页需要分页查询,搜索商品也需要分页查询。那么问题来了,遇到上千万或者上亿的数据量怎么快速的拉取全量,比如大商家拉取每月千万级别的订单数量到自己独立的ISV做财务统计;或者拥有百万千万粉丝的公众大号,给全部粉丝推送消息的场景。本文讲讲个人的优化分
支撑百万并发的“零拷贝”技术,你了解吗?
零拷贝(Zero-copy)技术指在计算机执行操作时,CPU不需要先将数据从一个内存区域复制到另一个内存区域,从而可以减少上下文切换以及CPU的拷贝时间。它的作用是在数据报从网络设备到用户程序空间传递的过程中,减少数据拷贝次数,减少系统调用,实现CPU的零参与,彻底消除CPU在这方面的负载。实现零拷
8种方案解决重复提交问题
1.什么是幂等在我们编程中常见幂等select查询天然幂等delete删除也是幂等,删除同一个多次效果一样update直接更新某个值的,幂等update更新累加操作的,非幂等insert非幂等操作,每次新增一条2.产生原因由于重复点击或者网络重发eg:点击提交按钮两次;点击刷新按钮;使用浏览器后退按
SQL 性能优化梳理
前言本文主要针对的是关系型数据数据库MySql。键值类数据库可以参考:https://www.jianshu.com/p/098a870d83e4先简单梳理下Mysql的基本概念,然后分创建时和查询时这两个阶段的优化展开。1基本概念简述1.1逻辑架构第一层:客户端通过连接服务,将要执行的sql指令传
美团配送系统架构演进实践
写在前面美团配送自成立以来,业务经历了多次跨越式的发展。业务的飞速增长,对系统的整体架构和基础设施提出了越来越高的要求,同时也不断驱动着技术团队深刻理解业务、准确定位领域模型、高效支撑系统扩展。如何在业务高速增长、可用性越来越高的背景下实现系统架构的快速有效升级?如何保证复杂业务下的研发效率与质量?
京东架构专家分享京东架构之路
京东咚咚架构演进咚咚是什么?咚咚之于京东相当于旺旺之于淘宝,它们都是服务于买家和卖家的沟通。自从京东开始为第三方卖家提供入驻平台服务后,咚咚也就随之诞生了。我们首先看看它诞生之初是什么样的。1.0诞生(2010-2011)为了业务的快速上线,1.0版本的技术架构实现是非常直接且简单粗暴的。如何简单粗
你知道怎么找到世界名校的免费课程么?
程序员书库(ID:CodingBook)猿妹编译链接:https://www.lifewire.com/free-online-courses-and-how-to-find-them-on-the-web-4092524在线大学课程的好处是你在网上就可以学到各大高校的课程,但是,你知道几个免费提供
吐血整理,1000行MySQL命令,很实用
来源:https://tinyurl.com/y6ggmxzn基本操作数据库操作表的操作数据操作字符集编码数据类型(列类型)列属性(列约束)建表规范SELECTUNION子查询连接查询(join)TRUNCATE备份与还原视图事务(transaction)锁表触发器SQL编程存储过程用户和权限管理表
Mybatis:PageHelper分页插件源码及原理剖析
作者:祖大俊my.oschina.net/zudajun/blog/745232PageHelper是一款好用的开源免费的Mybatis第三方物理分页插件,其实我并不想加上好用两个字,但是为了表扬插件作者开源免费的崇高精神,我毫不犹豫的加上了好用一词作为赞美。原本以为分页插件,应该是很简单的,然而P
为什么不推荐使用存储过程?
来源:杨洋的围脖啊sf.gg/a/1190000011138993之所以有这个题目,我既不是故意吸引眼球,也不想在本文对存储过程进行教科书般论述。最近项目中遇到的存储过程问题,让我想起了去年在武汉出差时一位同事的发问:我觉得存储过程挺好用的,为什么你不建议用?当时我好似胸有万言,但终究没用一个实在的
Java并发基础,不怕你看不懂
本文公众号来源:我没有三颗心脏作者:我没有三颗心脏一、前言当我们使用计算机时,可以同时做许多事情,例如一边打游戏一边听音乐。这是因为操作系统支持并发任务,从而使得这些工作得以同时进行。那么提出一个问题:如果我们要实现一个程序能一边听音乐一边玩游戏怎么实现呢?publicclassTester{pub
Springboot 使用单元测试
文章来源:https://dwz.cn/bC1N6R0v原文作者:美码师目标了解单元测试的背景了解如何利用springboot实现接口的测试了解如何利用mokito做代码的mock一、About单元测试单元测试其实是一种廉价的技术,是由开发者创建运行测试代码,用于对程序模块(软件设计的最小单位)进行
Springboot项目的接口防刷(实例)
来源:https://urlify.cn/ERf6Rr说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考。技术要点:springboot的基本知识,redis基本操作,首先是写一个注解类:importjava.lang.annotation.Retention;importjav
感受lambda之美,推荐收藏,需要时查阅
一、引言java8最大的特性就是引入Lambda表达式,即函数式编程,可以将行为进行传递。总结就是:使用不可变值与函数,函数对不可变值进行处理,映射成另一个值。二、java重要的函数式接口1、什么是函数式接口函数接口是只有一个抽象方法的接口,用作Lambda表达式的类型。使用@FunctionalI
线上服务 CPU 100%?一键定位 so easy
0、背景经常做后端服务开发的同学,或多或少都遇到过CPU负载特别高的问题。尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步,传统的方案一般是4步:1
滴滴出行千亿级消息队列炼成记
滴滴出行的消息技术选型1.1历史初期,公司内部没有专门的团队维护消息队列服务,所以消息队列使用方式较多,主要以Kafka为主,有业务直连的,也有通过独立的服务转发消息的。另外有一些团队也会用RocketMQ、Redis的list,甚至会用比较非主流的beanstalkkd。导致的结果就是,比较混乱,
RabbitMQ在分布式系统的应用
由于之前做的项目中需要在多个节点之间可靠地通信,所以废弃了之前使用的Redispub/sub(因为集群有单点问题,且有诸多限制),改用了RabbitMQ。使用期间得到不少收获,也踩了不少坑,所以在此分享下心得。怎么保证可靠性的?RabbitMQ提供了几种特性,牺牲了一点性能代价,提供了可靠性的保证。
业务中台总体架构介绍与交易业务中台核心设计
架构总原则:大中台+小前台的架构思路业务中台采用领域驱动设计(DDD),在其上构建业务能力SAAS,持续不断进行迭代演进。平台化定位,进行了业务隔离设计,方便一套系统支撑不同玩法的业务类型和便于定制化扩展。前后端分离,通过服务接入层进行路由适配转发。天然的分库分表,消息解耦和分布式缓存设计,支持弹性