消息队列简介、linux环境变量_set、export、env
summary_2018/08
messageQueue
linux
1、日常
1.1、消息队列概述
1.2、linux:set、export and env
2、技术
2.1、消息队列概述
2.1.1、消息队列概述
- 消息队列时分布式中的常用组件,在很多商品抢购等限流削峰等场景都会使用。简单来说就是在不需要立即获得结果的时候,或者并发需量要控制,或者一些异步处理的时候都会使用到。
- 维基百科:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。
2.1.2、消息队列使用场景
- 应用耦合:当多个应用对同一消息进行处理时,避免强制的接口关联,减少服务间的影响,或者调用接口导致整个过程失败。
- 比如人脸识别系统,并不需要立即返回结果,两个服务之间并不需要直接调用,可以使用消息队列实现:
- 异步处理:当多个服务对同一消息进行处理时,可以使用并行的方式代替串行的方式。
- 发送短信和注册邮件可以异步执行,减少串行的时间,其实在某种意义上也可以做应用解耦:
- 限流削峰:在商品抢购等场景,限制并发请求,防止系统崩溃。
- 消息驱动系统:比如消息队列、生产者消费者等问题,可以避免直接调用下一个系统导致当前系统失败,对消息的处理方式更加灵活(比如定时、削峰)。
- 广播:用于订阅发布等场景。
2.1.3、消息队列的两种模式
2.1.4、几种常见消息队列组件:RabbitMQ/ActiveMQ/RocketMQ/Kafka
2.1.5、参考
2.2、linux环境变量:set、export and env
- 介绍
- 环境变量一般是指存在在系统中具有特定名字的变量,一般用于为程序或者操作系统提供运行所需要的参数。
- 分类(shell变量)
1、用户自定义变量(本地变量):局部变量,只对当前shell有效,不会传递给子shell(linux中的进程的是派生的)
// 设置本地环境变量
a=1
2、环境变量:全局变量,会在当前 Shell 和这个 Shell 的所有子 Shell 中生效。(比较特殊的是系统环境变量,存储在本地文件,对所有shell均有效,且不会被因为关闭shell、关机消失)
// 设置环境变量
env b=1
// 当然也可以使用export a命令将上面的本地变量导入为环境变量
// export在不存在环境变量时,会新建
export c=1
set、export and env的区别
- set:显示系统中已经存在的shell变量,以及设置shell变量的新变量值。(set 既可以查询所有的变量,也可以查询环境变量)
- export:用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。当然也可以用于设置环境变量。
- env:用于显示系统中已存在的环境变量,也可以建立,以及在定义的环境中执行指令。 (只能查询环境变量)
环境变量配置文件的加载过程