![](https://img-blog.csdnimg.cn/20200424151819590.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
中间件框架
开源中间件
loulanyue_
使我有洛阳二尺地,安能配六国将相
展开
-
解决MQ中消息积压、重复、丢失等问题
消息丢失消息发送出去,由于网络问题没有抵达服务器1.做好容错方法(try-catch),发送消息可能会网络失败,失败后要有重试机制,可记录到系统数据库,采用定期扫描重发的方式。2.做好日志记录,每个消息状态是否都被服务器收到都应该被记录3.做好定期重发,如果消息没有发送成功,定期去数据库扫描未成功的消息进行重发消息抵达Broker,Broker要将消息写入磁盘才算成功,此时Broker尚未持久化完成,宕机。publisher必须加入确认回调机制,确认成功的消息,修改数据库消息状态自从ACK状态原创 2020-06-14 23:51:33 · 2179 阅读 · 0 评论 -
简述RPC框架的原理
RPC的框架,首先加入有一个服务端,把这个接口暴露、发布出去,需要在服务端启动的时候,把这个接口发布到我的一个注册中心里面,而客户端就是那个consumer,在启动的时候,去注册中心里面找发布的一个接口,注入到consumer的服务里面,这样的话就相当于创建了一个start的代理对象,它把服务之间的通信封装成了一个对象的调用,但是底下设计到了比如说网络通信,还有一个协议的转换,netty+序列号的过程...原创 2020-06-11 23:47:59 · 195 阅读 · 0 评论 -
如何通过阿里开源中间件seata的@GlobalTransactional实现分布式事务
一、seata是什么2019年1月蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案,Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务Simple Extensible Autonomous Transaction Architecture,简单可扩展自治事务框架官网:http://seata.io/zh-cn/二、seata有什么用分布式事务处理过程由1ID+3组件组成Transaction ID(XID) 全局唯一的事务idTransacti原创 2020-05-25 22:57:05 · 6071 阅读 · 0 评论 -
讲一讲Springboot的启动流程
Springboot启动流程主要分为两个部分:第一部分进行SpringBootApplication的初始化模块,配置一些基本的环境变量、资源、构造器、监听器第二部分实现了SpringApplication.run() 方法,主要调用了spring容器启动方法扫描配置,加载bean到spring容器中,包括启动流程的监听模块、加载配置环境模块、及核心的创建上下文环境模块,自动注入等功能一、S...原创 2020-02-18 23:18:37 · 1264 阅读 · 1 评论 -
SpringBoot实现图片上传
图片上传:NewsController@Controller@RequestParam("file")MultipartFile filefile.getOriginalFilename().lastIndexOf(".");String fileName = UUID.randomUUID().toString().replaaceAll("-","")+"."+fileExt;...原创 2019-05-01 20:15:04 · 2623 阅读 · 0 评论 -
深入浅出中间件之Apache Dubbo
深入浅出RPC框架dubbo原创 2019-04-26 22:04:24 · 3581 阅读 · 0 评论 -
深入理解Tomcat容器的结构
一.Tomcat 总体结构1.Server(服务器)是Tomcat构成的顶级构成元素,所有一切均包含在Server中,Server的实现类StandardServer可以包含一个到多个Services。2.次顶级元素Service的实现类为StandardService调用了容器(Container)接口,其实是调用了Servlet Engine(引擎),而且StandardServic...原创 2019-07-10 20:47:41 · 311 阅读 · 0 评论 -
消息中间件的特点:异步解耦消峰
一、消息模型点对点消息生产者向消息队列中发送了一个消息之后,只能被一个消费者消费一次。发布/订阅消息生产者向频道发送一个消息之后,多个消费者可以从该频道订阅到这条消息并消费。发布与订阅模式和观察者模式有以下不同:观察者模式中,观察者和主题都知道对方的存在;而在发布与订阅模式中,生产者与消费者不知道对方的存在,它们之间通过频道进行通信。观察者模式是同步的,当事件触发时,主题会调用观察...原创 2019-09-23 18:43:36 · 701 阅读 · 0 评论 -
用zookeeper实现分布式锁,配合模板模式和CountDownLatch
一、什么是分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式,在高并发的多台主机之间,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁,二、常见分布式锁的实现方式1. MySQL数据库的乐观锁2. redis redission3. zookeeper 添加临时节点,用完后再退出三、分布式锁的实现3.1 引入zkclient依赖 <...原创 2020-03-04 23:44:41 · 694 阅读 · 2 评论 -
消息中间件中RocketMQ与Kafka的存储区别
存储区别原创 2019-04-20 21:32:32 · 4431 阅读 · 0 评论