
分布式架构
文章平均质量分 77
zcswl7961
Ezui
展开
-
架构核心原理
文章目录架构核心原理思维导图架构核心原理1,架构设计需要考虑的几个方面高可用,伸缩性,扩展性,安全性2,以多种维度去分析一个高性能服务架构的设计应用服务,缓存机制,存储服务(存储服务包含基础的数据存储,以及搜索数据存储)。3,无状态的应用服务是我们设计高可用服务的基础。4,幂等性的应用服务设计是解决服务调用 失效,重连,数据一致性的基础5,CAP理论一般CAP理论是我们在去分析数据高可用的理论基础。无论是传统的数据存储或者是分布式数据存储,都会保证A(可用性),传统数原创 2021-01-07 15:58:13 · 1462 阅读 · 1 评论 -
Netty研究
文章目录1 netty的版本2 netty的核心类3 零拷贝(zero-copy)4 nio的epoll空轮询bug5 要读Netty源码嘛?这篇文档是本人在学习netty,使用netty和阅读netty源码的过程中的总结,涉及到的学习知识点和学习重点会一一介绍,1 netty的版本netty目前官方的稳定tag是:netty-5.0.0.Alpha2 但是,官方声明中已经是摒弃了netty5分支的开发,具体的原因可见:https://github.com/netty/netty/issues/44原创 2020-11-27 16:30:46 · 3202 阅读 · 0 评论 -
mybatis源码阅读
文章目录1 介绍2 源码概述2.1 几个比较重要的类2.2 构建过程1 介绍最近看了一下mybatis3的源码,发现了一下有趣而且值得学习的地方2 源码概述2.1 几个比较重要的类SqlSession:这个类是整个mybatis的核心类,通过该类,我们执行命令,获取映射示例和对应的事务管理器。基于mybatis原生的jar包时,SqlSession是通过SqlSessionFactory进行创建对于SqlSessionFactory的创建,其内部是通过创建者模型SqlSessionFa原创 2020-11-09 22:37:30 · 2905 阅读 · 2 评论 -
linux用户态和内核态
一 水贴今天是10月24,也就是传说中的程序员日,刚好是周六,所以就来水一贴内核态和用户态对于linux中的内核态和用户态之间的关联,我觉得下面的图片很形象该图片来源于:https://www.cnblogs.com/bakari/p/5520860.html如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供转载 2020-10-24 10:43:52 · 2226 阅读 · 0 评论 -
程序员如何阅读英文文档
文章目录为什么要看英文文档谈经验阅读方法语法词汇如何去记单词对全文的把握批判的观点读英语文章如何利用google来搜索答案转载为什么要看英文文档在回答怎么做之前,我想说说为什么要这么做。在我们学习新技术的过程中不是有中文文档吗?既然有中文文档,为什么还要去学习阅读英文文档呢,这不是多此一举吗?我想说的是,这绝对不算多此一举。很多的英文文档虽然有对应翻译的中文文档。但是很多东西的翻译质量是不敢恭维的。就拿一个最常见的书来讲吧,《think in java》就算一本大家公认的好书。但是如果你拿着本书的中转载 2020-09-22 17:25:24 · 2771 阅读 · 2 评论 -
大数据生态系列学习
文章目录1 前言2 大数据能为我们做什么3 Hadoop3.1 HDFS3.2 MapReduce3.3 YARN4 Spark5 Flink6 参考1 前言最近学习了一下大数据,算是对于大数据进行了一个大致的了解掌握,以下是个人在学习大数据方面的总结,2 大数据能为我们做什么数据即资产,在互联网和云时代的今天,大数据的分析能为企业带来无穷的价值,同时,大数据量的分析也能够使我们掌握数据,分析规律。大数据改造了我们的生活,它能优化、提高、高效化并最终捕获住利益。3 Hadoop既然要学习原创 2020-09-22 16:47:03 · 1088 阅读 · 1 评论 -
zipkin无法接收链路日志问题
文章目录1 问题2 现象3 解决1 问题最近在使用zipkin做微服务链路追踪的时候,发现链路信息一直注册不到zipkin-server中,导致在zipkin-server中看不到链路信息,一度让我怀疑人生2 现象zipkin-server 我是使用的是:zipkin-server-2.12.2-exec 版本,从Spring Cloud 的F版本之后,官方就建议我们不需要自己再去构建zipkin serve服务,我们可以通过:https://zipkin.io/pages/quickstart原创 2020-08-21 18:46:39 · 2528 阅读 · 0 评论 -
分库分表技术
文章目录1 什么是分库分表2 分库分表解决了什么问题3 mycat和sharding-jdbc的区别3.1 mycat原理3.2 sharding-jdbc原理4 sharding-jdbc使用1 什么是分库分表2 分库分表解决了什么问题3 mycat和sharding-jdbc的区别3.1 mycat原理3.2 sharding-jdbc原理4 sharding-jdbc使用...原创 2020-06-16 13:56:00 · 2007 阅读 · 1 评论 -
分布式一致性Raft算法
文章目录1 raft算法详解2 raft算法实例2.1 nacos中的raft算法实现2.2在之前的博客中,zookeeper原理及apache zookeeper源码阅读,我在里面介绍了关于zk选主算法:分布式一致性算法Paxos,对于Paxos算法的理解,一直都是公认的生涩难懂,在这个博客中,我们会学习另一个分布式一致性算法,那就是raft1 raft算法详解首先,raft算法是一种基于日志复制的一致性算法,并且raft的结果等价于paxos算法,同时它是一种更加简单,更易理解的分布式一致性算法原创 2020-06-02 11:01:38 · 3398 阅读 · 1 评论 -
Feign-Get请求自动转成Post问题分析
文章目录1 现象2 解决3 解决1 现象Feign使用中有一个小小的细节之处,在明明我们使用Get配置的时候,我们会发现Feign会将Get请求转成Post调用。直接上示例:接口提供者: @GetMapping(value = "/provider") public String test(@RequestParam(value = "name", defaultValue = "zcswl7961") String name) { List<String&g原创 2020-05-25 20:44:37 · 11152 阅读 · 5 评论 -
RPC服务调度架构图
文章目录一 调度流图二 负载均衡思考一 调度流图二 负载均衡思考轮询:随机:LRU:一致性Hash:权重:原创 2020-03-09 18:08:45 · 717 阅读 · 0 评论 -
深入分析Java-RMI
文章目录1 介绍2 机制2.1 内部体系架构2.2 原理3 代码示例1 介绍java本身的内部中是提供了一种RPC框架-RMI(即Remote Method Invoke,远程方法调用),位于rt.jar包中,以java.rmi开头的package中。它是一种允许一个对象驻留在一个系统(JVM)来访问/调用一个物体在另一个JVM中运行的机制2 机制2.1 内部体系架构在一个RMI 的...原创 2020-03-05 21:31:02 · 1818 阅读 · 0 评论 -
扫码登陆的逻辑实现
介绍首先介绍下什么是扫码登录。现在大部分同学手机上都装有微信、qq和淘宝这一类的软件。而这些app都有他们相对应的网页端。为了让用户在使用他们的网页时登录更加方便和安全,使用手机扫一扫就可以登录的服务,就显的自然而然了。一 网页端与服务器的配合逻辑:接下来就是对于这个服务的详细实现首先用户打开网站的登录页面的时候,向浏览器的服务器发送获取登录二维码的请求。服务器收到请求后,随机生成一个u...转载 2020-02-27 11:14:17 · 1640 阅读 · 0 评论 -
java中BO,VO,DTO,DO等之间的转换
文章目录1 介绍2 转换2.1 通过get,set方法进行类型转换2.2 基于反射的机制2.3 基于cglib字节码修改1 介绍阿里的java代码开发规范中,关于各个层的命名规范是这么定义这里面有我们比较常见的POJO对应的实体定义格式,其中VO(View Object):是针对于视图层,用于展示层(前端页面),它的作用是把某个视图需要展示的数据进行封装。DTO(Data Trans...原创 2019-12-26 23:18:48 · 8784 阅读 · 1 评论 -
业务逻辑中如何更好的处理空值?
文章目录1 场景2 问题现场2.1 深入listUser研究2.2 深入研究get方法2.3 深入入参1 场景存在一个UserSearchService用来提供用户查询的功能:public interface UserSearchService{ List<User> listUser(); User get(Integer id);}2 问题现场对于面向对象...转载 2019-12-24 15:17:47 · 523 阅读 · 0 评论 -
java开发中的代码设计规范
文章目录介绍如何写好业务代码?代码整洁之道--观后感介绍当你十分纠结新创建的一个类如何命名,或者创建一个方法如何给他起一个比较富有直译的方法名的时候,这个时候,束缚你的并不是你的代码能力,有时候就是你对于代码整体逻辑的设计的能力,而这个能力,是需要你长期的代码编写和代码设计的过程中,慢慢锻造出来的。每一个人其实都会有这么一个情况,有时候我们在看别人的代码的时候,总是觉得看的逻辑不清晰,看不...原创 2019-12-11 09:22:46 · 1558 阅读 · 0 评论 -
部署策略
文章目录一 介绍二 部署能力的演变2.1 原始部署2.2 脚本化2.3 平台化2.4 脚手架一 介绍在我们日常的开发流程中,对于单体架构的服务而言,我们可以通过简单的命令进行启动部署,但是对于多体架构和容器化的服务而言,我们可以通过容器脚本的方式进行部署的策略,这样可以大大的节省人力资源成本,使服务的部署运维能力不会变的那么笨重。二 部署能力的演变2.1 原始部署例如,我们要开发一个简...原创 2019-11-25 10:58:35 · 816 阅读 · 0 评论 -
分布式系统架构演进过程
文章目录前言1. 概述2. 基本概念分布式高可用集群负载均衡正向代理和反向代理3. 架构演进3.1 单机架构3.2 第一次演进:Tomcat与数据库分开部署3.3 第二次演进:引入本地缓存和分布式缓存3.4 第三次演进:引入反向代理实现负载均衡3.5 第四次演进:数据库读写分离3.6 第五次演进:数据库按业务分库3.7 第六次演进:把大表拆分为小表3.8 第七次演进:使用LVS或F5来使多个Ngi...转载 2019-11-08 17:32:57 · 815 阅读 · 0 评论 -
设计一个电商平台积分兑换系统
文章目录简介1、拉开差距的一类面试题2、业务需求的描述3、对业务流程的思考4、物流配送进度查询,考虑到了吗?5、事务的保证6、消息中间件的引入7、重试机制的引入8、引入幂等性机制9、对这类面试题的总结简介本博客转载至:狸猫技术窝 公众号作者:原子弹大侠,阿里高级技术专家1、拉开差距的一类面试题现在面试经常会遇到一类问题,面试官让你现场设计出某个业务场景下的一个系统,这个系统往往在业务或...转载 2019-11-07 19:05:05 · 809 阅读 · 0 评论 -
分布式事务和二阶段提交(2PC),三阶段提交(3PC)
文章目录前言1 分布式事务2 理论基础2.1 CAP 理论(1)CP架构(可用性降低)(2)AP架构(一致性降低)2.2 BASE 理论3 分布式事务协议3.1 X/Open XA 协议3.2 2PC:二阶段提交协议3.3 3PC:三阶段提交协议4 解决方案4.1 强一致性分布式事务4.2 最终一致性分布式事务方案①本地消息表②MQ 消息事务③最大努力通知④补偿事务 TCC前言本博客转载至:...转载 2019-11-07 15:43:29 · 928 阅读 · 0 评论 -
分布式系统架构--服务降级和熔断
文章目录参考一 服务降级1,降级评判2,降级等级3,降级方式二 服务熔断1,服务熔断和服务降级的比较1,服务熔断中需考虑的设计2,服务熔断恢复需注意的问题三 Hystrix组件参考《亿级流量网站核心架构》,高并发之服务降级与熔断一 服务降级由于爆炸性的流量冲击,对一些服务进行有策略的放弃,以此缓解系统压力,保证目前主要业务的正常运行。它主要是针对非正常情况下的应急服务措施:当此时一些业务...原创 2019-10-27 16:00:55 · 2697 阅读 · 0 评论 -
分布式系统架构--限流
文章目录一 什么是限流二 常见的限流算法1,计数器2,令牌桶算法3,漏桶算法4,区别三 限流场景1,应用级限流2,分布式限流3,接入层限流一 什么是限流在开发高并发系统时,有很多手段来保护系统,如缓存,降级和限流,限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的请求进行限速来保护系统。一旦达到限速之后可以通过拒绝服务(定向页面跳转)或者排队等待的方式,以保证系统的高可用,防止瞬时...原创 2019-10-26 23:50:57 · 1279 阅读 · 0 评论 -
业务设计原则--幂等设计
文章目录一 介绍二 问题什么是幂等性如何做幂等设计应用程序的幂等操作通过状态机设计数据库方面的考虑一 介绍在传统的单体应用架构中,即同一个进程内,对于一个函数,或者一系列的函数调用,结果只有两种,要么成功,要么失败(我们可以通过事务的方式控制多个函数的事务调用)但是在分布式架构系统中,服务与服务之间的调用通过网络远程RPC调用的时候,除了调用成功或者失败之外,还会出现第三个结果–超时,超时...原创 2019-10-24 23:03:11 · 781 阅读 · 0 评论 -
业务设计原则--防重设计
文章目录一 引言一 正题支付场景下遇到的问题解决支付遇到的问题异常补偿机制防重设计(通用简单性的设计思路)一 引言《亿级流量网站架构核心技术》一书中关于业务设计的原则中第一个提到的就是防重设计,那我们就来好好的学习对应的防重设计是如何体现在复杂的支付系统中。声明:本博客是个人的实际学习中,涉及到了网络中一些优秀的博客(优秀的博客阅读之后会让你豁然开朗,感谢大佬),附件如下:作者:无敌码农...原创 2019-10-24 14:33:10 · 1746 阅读 · 0 评论