分布式 【中间件】
文章平均质量分 96
实战介绍分布式
码农C风
某985CS,学习沉淀、钻研技术
新技术的诞生总是有原因的,而逐步淘汰的技术也是有合理性的,存在即合理
framework 终究都是工具
展开
-
【中间件】DAL中间件intro
三层的软件架构通常分为:表示层,业务逻辑层和数据访问层。 按照单一职责,数据访问层应该是唯一可以和数据库进行交互的部分。数据访问层需要具备的功能包括: 数据的CRUD、 事务transaction的支持【保证数据一致性】数据库作为一种软件产品也是有很多的,为了统一不同厂商的数据库访问方式,主流的开发语言一般都定义了各自的数据库访问规范。 比如java的就是JDBC规范【定义了数据库操作接口和类,数据库厂商为了获得该类语言的用户,就会去实现这些接口,作为各自的JDBC驱动】 ----- 这样用户就原创 2023-11-29 21:18:12 · 1535 阅读 · 0 评论 -
【中间件】配置中心中间件intro
配置分离是一个基本的过程,把开关写在代码里面是非常低级的行为。we接触SpringBoot的时候,经常将配置写在yml文件中,但是文件打包发布之后,你如果再修改yml内容,那么就需要再次部署。 可以直接在yml中利用${XXX}的方式将参数设置为变量进行管理,不管是在K8s中配置还是在Potainer中配置都比较快捷, 这就是配置管理的重要性。配置Configuration是独立于程序的变量: 首先就是配置独立程序,不同的配置程序会有不同的行为。 常见的配置包括: DB Connection、 Th原创 2023-11-27 22:09:36 · 1059 阅读 · 0 评论 -
【中间件】消息队列中间件intro
为什么要使用MQ呢,首先就是考虑企业中的应用场景,比如`实时索引更新`、 `异步化流程`.... 这些使用MQ就可以轻易解决。 MQ最主要的功能就是异步解耦、流量削峰... - 异步: 消息生产者将消息投递到消息队列中,因为可靠性由MQ保证,所以生产者可以继续处理剩余的业务逻辑,提升可靠性,比如注册成功之后发送通知短信...- 松耦合: 生产者和消费者不需要知道对方的存在,只需要事先定义好消息的格式,不需要知道对方的实现细节,相比RPC调用强耦合(被调用方异常或者响应慢可能产生回压,甚至雪崩),MQ原创 2023-11-26 22:05:26 · 1759 阅读 · 0 评论 -
【中间件】服务化中间件理论intro
服务化(微服务)是分布式架构下后台的趋势,应对更大的流量和复杂的场景,后台服务化,而服务化带来的一些问题,也就是采用相关中间件来解决,所以Spring cloud是服务化的解决方案,和原本的开发框架SpringBoot没有什么冲突。服务化也只是一种措施,流量小的情况下大可不必微服务直接单体架构搞定。所以不管是微服务、还是云原生都是架构演变过程带来的新的解决方案,而深入到每一个节点的开发,还是和传统java开发一样。学习新的方案同时夯实开发基础以不变应万变。原创 2023-11-22 16:35:17 · 1100 阅读 · 0 评论 -
【中间件】中间件的宏观探讨漫谈
中间件 Middleware,字面上看就是起中间作用的构件。早期的概念就是再操作系统的基础上,为其他应用软件提供服务的==基础软件==, 就像一种软件胶水连接系统以及应用服务。 比如中间件简化应用间的通信方式【可以不用再调用复杂系统函数即可数据传输】原创 2023-11-20 17:54:08 · 986 阅读 · 0 评论 -
【分布式】分布式解决方案Redisson,远远不止redis
rabbitMQ是严格FIFO的,也就是按照队列的顺序先进先出,当然一般情况下性能都很优秀,但是对于一些特殊的场景可能出现一些问题: 延迟队列中的消息TTL不同这个时候rabbitMQ给出的结果还是按照入队的顺序,并不会根据TTL,这显然是不正确的,为了解决这种缺陷,可以考虑使用Redisson的延迟队列原创 2022-09-23 16:38:39 · 2936 阅读 · 1 评论 -
【分布式】基于Zookeeper实现分布式锁、秒杀问题复盘
分布式架构项目 --- 系统拆分、独立部署、服务模块解耦;随之而来的分布式事务、数据一致性、分布式架构下的并发安全问题; 除了可以利用数据库级别的乐观、悲观锁;以及借助redis原子性SETNX实现分布式锁,还可以利用注册中心Zookeeper实现分布式锁Zookeeper的功能特性:- 顺序一致性: 从同一个客户端发起的请求,最终严格按照顺序应用到ZooKeeper- 原子性: 所有的事务请求结果在整个集群所有机器上的应用情况一致,整个集群中所有机器的状态一致- 单一系统映像:原创 2022-09-21 22:13:14 · 1323 阅读 · 5 评论 -
【分布式】分布式锁解决方案介绍、DBMS级别乐观、悲观、redis的SETNX实现分布式锁
当前高并发、大数据量的时代,企业级应用大部分都是采用集群和分布式的方式进行部署,将 业务高度集中的传统企业级应用按照业务拆分为多个子系统,独立部署, 为了更好应对高并发【千万级流量,需要负载均衡,一个子系统部署多个实例(集群),均衡分摊前端的请求,应用、服务、文件都是分开的】, 但是高并发情况下的数据不一致问题就需要解决, 解决方案就是分布式锁🔒原创 2022-09-20 22:30:18 · 669 阅读 · 0 评论 -
【分布式】Rabbitmq死信队列模型、实战场景---订单延迟30min支付处理
延时、延迟处理指定的业务逻辑 ---- 在实际生产中非常常见, 比如商城订单完成之后,用户如果一直没有评价,5天后自动好评,会员到期前15天、某个业务到期前X天提示 【 ECS最近给我提示麻了】, 延迟处理的业务逻辑, 之前就是定时器扫表, 但是这样子性能太低了,数据库压力大,RabbitMQ的延迟队列就可以解决原创 2022-09-18 22:28:43 · 2169 阅读 · 0 评论 -
【分布式】SpirngBoot 整合RabbitMQ、Exchagne模式、确认消费
RabbitMQ在模块解耦,接口限流、异步通信等方面发挥重要作用,在成熟的RabbitMQ之前,项目一般采用Spring的事件驱动模型来进行异步通信缓存穿透 除了缓存null之外 还可以在之前加上布隆过滤器,也就是hash到一个大bitmap,查询先过滤看是否存在key,存在再查询缓存并且之前的Cache只是表面的知识,虽然加上分布式🔒可以抗住高并发,但是一旦缓存失效,需要准备高可用的解决方案, 并且必须使用mq限流,因为应用层容器Tomcagt的吞吐量有限,必须保证同时到达的流量不查过Tomca原创 2022-09-17 18:07:04 · 617 阅读 · 0 评论 -
【分布式】分布式中间件RabbitMQ、 cache注解
RabbitMQ作为分布式消息中间件,**实现了高级消息队列协议 AMQP,(advanced message queuing protocol)** ,执行单节点或者多节点集群的部署,满足目前高并发、大规模和高可用的要求原创 2022-09-15 15:10:24 · 903 阅读 · 0 评论 -
【分布式】红包秒杀系统、高并发安全分布式锁
红包系统作为一个非常广泛的服务,可以切实提高网站的收益,吸引流量,这里Cfeng将分享如何设计一款抢红包系统本文会从最开始的业务流程、业务流程分析、到数据库表和 红包分发算法、 JMeter高并发测试、高并发状态下使用分布式锁进行优化原创 2022-09-13 18:13:09 · 2521 阅读 · 3 评论 -
【分布式】分布式系统、Redis中间件 、Cache穿透、击穿、雪崩
分布式系统强大, system内部至少由多台计算机组成(性能更大), 一个统一的“机器中心”, 由**一组**独立的计算机组成【区别与之前的一台】- 但是,用户感知 该机器中心为一个单个系统,不能感知到计算机集群的存在原创 2022-09-12 21:20:32 · 617 阅读 · 0 评论