当前位置: 首页 > news >正文

山西省网站备案住房和成乡建设部网站

山西省网站备案,住房和成乡建设部网站,上海市住房和城乡建设厅官方网站,酒店网站建设报价详情消息中间件: 消息中间件基于队列模式实现异步 / 同步传输数据作用:可以实现支撑高并发、异步解耦、流量削峰、降低耦合 传统的 HTTP 请求存在的缺点: HTTP 请求基于响应的模型,在高并发的情况下,客户端发送大量的请求…
  1. 消息中间件:
    1. 消息中间件基于队列模式实现异步 / 同步传输数据
    2. 作用:可以实现支撑高并发、异步解耦、流量削峰、降低耦合
  2. 传统的 HTTP 请求存在的缺点:
    1. HTTP 请求基于响应的模型,在高并发的情况下,客户端发送大量的请求达到服务器端可能会导致我们服务器处理请求堆积
    2. Tomcat 服务器处理每个请求都有自己独立的线程,如果超过最大线程数会将该请求缓存到队列中,如果请求堆积过多的情况下,可能会导致 Tomcat 服务器崩溃的问题
    3. 所以一般都会在 nginx 入口实现限流熔断。网关整合 Sentinal,整合服务保护框架
    4. HTTP 请求处理业务逻辑比较耗时的情况下,容易造成客户端一直等待,阻塞等待过程中会导致客户端超时发生重试策略,可能会引发幂等性问题
    5. 注意事项:接口是 HTTP 协议的情况下,最好不要处理比较耗时的业务逻辑,耗时的业务逻辑应该单独交给线程或者是 MQ 处理
  3. MQ 应用场景:
    1. 异步发送短信
    2. 异步发送新人优惠券
    3. 处理比较耗时的操作
    4. 方式:
      1. 单线程方式:用户需要等待四秒才会执行完毕,体验感极差
        @RestController
        public class MemberService {@RequestMapping("/mq")public String addMember(){// 1.向数据库插入数据System.out.println("注册会员");sms();return "用户注册成功";}public String sms(){System.out.println("发送短信");try {System.out.println("正在发送短信");Thread.sleep(3000);}catch (Exception e){e.printStackTrace();}System.out.println("发送优惠券");System.out.println("短信发送成功");return "短信发送成功";}
        }
    5. 多线程方式:
      1. 创建异步类:
        @RestController
        public class MemberService {@AutowiredMemberServiceAsync memberServiceAsync;@RequestMapping("/mq")public String addMember(){// 1.向数据库插入数据System.out.println("注册会员");//sms();memberServiceAsync.sms();return "用户注册成功";}
        }
      2. 主线程调用副线程:
        @Component
        public class MemberServiceAsync {@Async  //异步注解public String sms(){System.out.println("发送短信");try {System.out.println("正在发送短信");Thread.sleep(3000);}catch (Exception e){e.printStackTrace();}System.out.println("发送优惠券");System.out.println("短信发送成功");return "短信发送成功";}}
      3. 在启动类加上注解:
      4. 多线程启动方式,用户体验感提升,用户注册完毕会员之后不用等待发送短信和优惠券的时间,就可执行别的操作
  4. 多线程处理逻辑:
    1. 用户向数据库中插入一条数据之后,在单独开启一个线程异步发送短信和优惠券操作
    2. 用户只需等待 1 秒
    3. 优点:适合于小项目实现异步
    4. 缺点:可能会消耗服务器 CPU 资源
  5. MQ 处理业务逻辑:
    1. 先向数据库中插入一条会员数据,让后向 MQ 中投递一条数据,MQ 服务器端在将消息推送给消费者异步解耦处理发送短信和优惠券
  6. MQ 与多线程之间的区别:
    1. MQ 可以实现异步 / 解耦 / 流量削峰问题
    2. 多线程也可以实现异步,但是消耗 CPU 资源,没有实现解耦
  7. MQ 消息中间件名词:
    1. Producer 生产者:投递消息到 MQ 服务器端
    2. Consumer 消费者:从 MQ 服务端获取消息处理业务逻辑
    3. Broker:MQ 服务器端
    4. Topic 主题:分类业务逻辑发送短信主题、发送优惠券主题
    5. Queue:存放消息模型、队列
      1. 先进后出,后进先出原则
      2. 底层由数组和链表实现
  8. 主流 MQ 区别对比:
http://www.yayakq.cn/news/996631/

相关文章:

  • 棋牌网站搭建公司哈尔滨个人优化排名
  • 鲜花网站建设的项目介绍企业管理系统下载
  • 舞蹈网站建设报价菠菜网站建设尊尚天成
  • 深圳做网站 百度智能小程序wordpress 伪静态规则 nginx
  • 北京上云网站建设公司西部数码wordpress
  • 电商网站策划书江阴外贸网站制作
  • 上海小企业网站建设北京优化排名技术
  • 销售产品单页面网站文字创意logo设计
  • 企业做网站的费用计入什么科目视频直播系统源码
  • 免费入驻的网站设计平台wordpress本地环境迁移
  • 旅游网站开发方案百度文库我的电脑做网站服务器
  • 网站专栏建设方案企业怎么建网站
  • 怎么做网站设旅游电网站建设目标
  • 棋牌游戏网站建设费用wordpress分类目录
  • 北京cms建站模板温州专业全网推广建站公司
  • 学做投资网站做早餐煲汤网站
  • 上海建站外贸分类id wordpress
  • 企业网站营销的实现方式软件开发行业市场分析
  • 网站数字签名三亚旅游网站建设
  • 南宁企业自助建站搭建网站要多少钱
  • 河南企业网站优化外包c2c网站页面设计特点
  • 免费申请电子邮箱注册东莞网站优化效果如何
  • 深圳微商城网站设计电话深圳网站建设服务哪便宜
  • 织梦网站专题模板食品电子商务网站建设论文
  • php 手机网站学完网站建设再可以学什么
  • 博客网站建设方案书网站建设佰首选金手指四
  • 沂水县的旅游景区的网站建设作品展示的网站
  • 网站 工作室 建设 方案网页设计制作实训报告模板
  • 房管局备案查询网站百度识图网页版 在线
  • 抖音小程序怎么删除网站seo收费