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

昆明seocn整站优化校际凡科平台

昆明seocn整站优化,校际凡科平台,网页美工软件,wordpress主机服务器销售源码目录 1. 本文简介: 1.1 java序列化的缺点 --- 1.1.1 无法跨语言 ---1.1.2 易被攻击 --- 1.1.3 序列化后的流太大 --- 1.1.4 序列化性能太差 2. 配置总览 2.1 基础配置 2.2 连接重试配置 2.3 异常重试机制 2.4 确认模式(本篇是自动) --- 2.4.1…目录 1. 本文简介:  1.1 java序列化的缺点 --- 1.1.1 无法跨语言 ---1.1.2  易被攻击 --- 1.1.3 序列化后的流太大 --- 1.1.4 序列化性能太差 2. 配置总览 2.1  基础配置 2.2 连接重试配置 2.3  异常重试机制 2.4 确认模式(本篇是自动) --- 2.4.1 如图所示 2.5 发送确认设置 --- 2.5.1 参数解释: (老版的功能 直接是一个布尔值 false不开启  true开启) --- 2.5.2  写一个callbackConfig, 重写方法 2.6 重新配置序列化 --- 方法一: 都以application/json传递接收 --- 方法二:  都以application/json传递接收 --- 展示效果:  3. 配置总结 3.1 完整的application.properties的配置 3.2 完整的application.yml配置 4. 文章传送门   5. 下文预告 1. 本文简介:  rabbitmq的连接配置, 以及回收机制配置, 修改默认java序列化方式 1.1 java序列化的缺点 --- 1.1.1 无法跨语言 serialVersionUID版本号必须相同,相同类名 版本号不一样 反序列化失败 ---1.1.2  易被攻击 Apache Commons Collections 允许链式的任意的类函数反射调用攻击者通过“实现了 Java 序列化协议”的端口把攻击代码上传到服务器上再由 Apache Commons Collections 里的 TransformedMap 来执行。 --- 1.1.3 序列化后的流太大 Java 序列化实现的二进制编码完成的二进制数组大小比 ByteBuffer 实现的二进制编码完成的二进制数组大小要大上几倍。 --- 1.1.4 序列化性能太差 ObjectOutputStream序列化效率很低 2. 配置总览 2.1  基础配置 #基础配置 spring.rabbitmq.host* spring.rabbitmq.port5672 spring.rabbitmq.usernamepzy spring.rabbitmq.password* spring.rabbitmq.virtual-hostdevelop 2.2 连接重试配置 # 开启rabbit初始化重试机制 spring.rabbitmq.template.retry.enabledtrue ## 最大重试间隔时间 spring.rabbitmq.template.retry.max-interval1000ms ## 最大重试次数 spring.rabbitmq.template.retry.max-attempts3 # 间隔乘数 spring.rabbitmq.template.retry.multiplier1 # 初始化的时间间隔 spring.rabbitmq.template.retry.initial-interval1000ms 2.3  异常重试机制 #异常重试机制设置[未加死信队列 五次异常后 直接抛弃了] #设置是否重回队列 true即出现异常会将消息重新发送到队列中 spring.rabbitmq.listener.simple.default-requeue-rejectedtrue #设置是否启用消息重试机制默认为false。 spring.rabbitmq.listener.simple.retry.enabledtrue #设置消息重试的最大次数默认为3。 spring.rabbitmq.listener.simple.retry.max-attempts5 #设置消息重试的初始间隔时间默认为1000ms。 spring.rabbitmq.listener.simple.retry.initial-interval2000ms #设置消息重试的时间间隔倍数默认为1(重试时间越来越长) spring.rabbitmq.listener.simple.retry.multiplier1.2 ##设置消息重试的最大时间间隔默认为10000ms。 spring.rabbitmq.listener.simple.retry.max-interval3000ms 2.4 确认模式(本篇是自动) #spring.rabbitmq.listener.simple.acknowledge-modenone spring.rabbitmq.listener.simple.acknowledge-modeauto #spring.rabbitmq.listener.simple.acknowledge-modemanual #spring.rabbitmq.listener.direct.acknowledge-modemanual--- 2.4.1 如图所示 2.5 发送确认设置 #发布消息成功到交换器后会触发回调方法(默认禁用none) spring.rabbitmq.publisher-confirm-typecorrelated #消息发布不可达目的地的时候 才进行回退 spring.rabbitmq.publisher-returnstrue --- 2.5.1 参数解释: (老版的功能 直接是一个布尔值 false不开启  true开启) None 禁用发布确认模式是默认值CORRELATED 发布消息成功到交换机后会触发回调方法SIMPLE  有两种效果:  其一: 效果和 CORRELATED 值一样会触发回调方法 其二: 在发布消息成功 使用 rabbitTemplate 调用 waitForConfirms 或 waitForConfirmsOrDie 方法 等待 broker 节点返回发送结果根据返回结果来判定下一步的逻辑要注意的点是 waitForConfirmsOrDie 方法如果返回 false 则会关闭 channel无法发送消息到 broker --- 2.5.2  写一个callbackConfig, 重写方法 package com.aisce.axmall.order.config.rabbitmq;import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.context.annotation.Configuration;/*** rabbitmq的成功与失败* 消息回调* author pzy* description: TODO* version 1.0.1 beta版*/ Slf4j Configuration public class RabbitCallbackConfig implements RabbitTemplate.ConfirmCallback, RabbitTemplate.ReturnCallback {/*** 消息正常发送 或者发送到broker后出现问题* param correlationData* param ack* param cause*/Overridepublic void confirm(CorrelationData correlationData, boolean ack, String cause) {if (!ack) {log.error(confirm发送到broker失败\r\n correlationData{}\r\n ack{}\r\n cause{},correlationData, ack, cause);} else {log.info(confirm发送到broker成功\r\n correlationData{}\r\n ack{}\r\n cause{},correlationData, ack, cause);}}/*** 压根没到目的地 执行* param message* param replyCode* param replyText* param exchange* param routingKey*/Overridepublic void returnedMessage(NonNull Message message, int replyCode,NonNull String replyText, NonNull String exchange, NonNull String routingKey) {log.error(error returnedMessage \r\n message{}\r\n replyCode{}\r\n replyText{}\r\n exchange{}\r\n routingKey{},message, replyCode, replyText, exchange, routingKey);}//可进行后续操作} 2.6 重新配置序列化 有两种方式(原理差不多) --- 方法一: 都以application/json传递接收 Configuration public class RabbitConfig { Bean public MessageConverter messageConverter(){return new Jackson2JsonMessageConverter(); } --- 方法二:  都以application/json传递接收 /*** rabbitmq配置类** author pzy* version 0.1.0* description: TODO*/ Configuration public class RabbitConfig {Autowiredprivate SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory;Autowiredprivate RabbitCallbackConfig rabbitCallbackConfig;BeanRabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate rabbitTemplate new RabbitTemplate(connectionFactory);//消息到不到队列 自动重新返回到生产者rabbitTemplate.setMandatory(true);//其实前面配置加了rabbitTemplate.setConfirmCallback(rabbitCallbackConfig);rabbitTemplate.setReturnCallback(rabbitCallbackConfig);// 使用 JSON 序列化与反序列化rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());rabbitListenerContainerFactory.setMessageConverter(new Jackson2JsonMessageConverter());return rabbitTemplate;} } --- 展示效果:  3. 配置总结 3.1 完整的application.properties的配置 #beta版 rabbitmq V3.0.1 版本启动测试 pzy #基础配置 spring.rabbitmq.host* spring.rabbitmq.port5672 spring.rabbitmq.usernamepzy spring.rabbitmq.password* spring.rabbitmq.virtual-hostdevelop #发送确认机制设置 #发布消息成功到交换器后会触发回调方法(默认禁用none) spring.rabbitmq.publisher-confirm-typecorrelated #消息发布不可达目的地的时候 才进行回退 spring.rabbitmq.publisher-returnstrue# 队列设置 #设置每次预抓取的数量是3,处理完之前不收下一条 默认250 spring.rabbitmq.listener.simple.prefetch3 # 手动确认模式 #spring.rabbitmq.listener.simple.acknowledge-modemanual spring.rabbitmq.listener.simple.acknowledge-modeauto #spring.rabbitmq.listener.direct.acknowledge-modemanual# 开启rabbit初始化重试机制 spring.rabbitmq.template.retry.enabledtrue ## 最大重试间隔时间 spring.rabbitmq.template.retry.max-interval1000ms ## 最大重试次数 spring.rabbitmq.template.retry.max-attempts3 # 间隔乘数 spring.rabbitmq.template.retry.multiplier1 # 初始化的时间间隔 spring.rabbitmq.template.retry.initial-interval1000ms#异常重试机制设置[未加死信队列 五次异常后 直接抛弃了] #设置是否重回队列 true即出现异常会将消息重新发送到队列中 spring.rabbitmq.listener.simple.default-requeue-rejectedtrue #设置是否启用消息重试机制默认为false。 spring.rabbitmq.listener.simple.retry.enabledtrue #设置消息重试的最大次数默认为3。 spring.rabbitmq.listener.simple.retry.max-attempts5 #设置消息重试的初始间隔时间默认为1000ms。 spring.rabbitmq.listener.simple.retry.initial-interval2000ms #设置消息重试的时间间隔倍数默认为1(重试时间越来越长) spring.rabbitmq.listener.simple.retry.multiplier1.2 ##设置消息重试的最大时间间隔默认为10000ms。 spring.rabbitmq.listener.simple.retry.max-interval3000ms# beta版 3.2 完整的application.yml配置 properties 转成 yml 后 注释没了 具体看上面的 #只有服务的消费者 决定怎么消费确认 生产者决定不了 spring: rabbitmq:listener:simple:acknowledge-mode: manualdefault-requeue-rejected: trueretry:enabled: trueinitial-interval: 2000msmax-attempts: 5max-interval: 3000msmultiplier: 1.2host: * port: 5672username: pzypassword: *virtual-host: develop# 新版的就是publisher-confirm-typecorrelatedpublisher-confirms: truepublisher-returns: truetemplate:retry:enabled: trueinitial-interval: 1000msmax-attempts: 3max-interval: 1000msmultiplier: 1 4. 文章传送门   微服务: 00-rabbitmq出现的异常以及解决方案 微服务: 01-rabbitmq的应用场景及安装(docker) 微服务 02-rabbitmq在springboot中如何使用(上篇) 微服务: 03-rabbitmq在springboot中如何使用(下篇) 5. 下文预告 微服务: 05-rabbitmq设置重试次数并设置死信队列
http://www.zqtcl.cn/news/539167/

相关文章:

  • 自己可以给公司做网站吗网站建设 用ftp上传文件
  • 电子商务网站开发与管理网站建设的设备
  • 网站建设项目公司沈阳网站关键字优化
  • 可以做淘宝联盟的免费网站优质国外网站
  • 石家庄营销型网站建设公司服装公司网站源码
  • 网站开发的软硬件需求做网站盘锦
  • 创意网站建设排行榜python和php哪个做网站
  • 开锁做网站怎么样榆林网站开发公司
  • 松原市建设局网站苏州网站建设-中国互联
  • 标书制作教程视频网站福田祥菱v1单排
  • 点网站出图片怎么做能看人与动物做的网站
  • 免费开源建站系统源码wordpress公共函数在哪里
  • 西昌市建设工程管理局网站模块化网站开发
  • 无限看片的视频大全免费下载上海网络优化方法
  • 物流公司做网站注重什么问题中国建设银行征信中心网站
  • 教务处网站建设专业做鞋子的网站吗
  • 梦幻创意网站建设成都做网站设计哪家便宜
  • 织梦网站栏目修改教程丝绸之路网站建设意义
  • 如何知道一个网站是谁做的北京装饰公司前十名
  • 杭州网站建设哪个平台好visualstudio 做网站
  • 广州站是哪个站h5建站系统
  • 网站首页网址应该有对应的域名南京高端模板建站
  • 自己做的网站竞价优化怎么做网站流量赚钱吗
  • 人力资源网站建设mip网站模板
  • 太原市住房和城乡建设部网站网站 备案 换空间
  • 怎么做网站备份网站运营数据周报表怎么做
  • 度更新网站做详情页网站
  • 酷炫网站模板wordpress自动发货插件
  • 网站做多个镜像wordpress无法显示向导
  • 交易类网站建设费用工厂招工最新招聘信息