10、服务网关

文章目录

消息服务

服务部署

RabbitMQ是目前使用广泛的消息队列中间件。当前使用的版本为3.7.9

Erlang

有两种安装Erlang的方式。一种为安装RabbitMQ专属Erlang,只包含了RabbitMQ所需要的组件,由RabbitMQ团队提供;另一种为安装完整版本的Erlang。这里采用第一种方案

创建仓库文件

sudo vim /etc/yum.repos.d/rabbitmq-erlang.repo

erlang 21.x,选择bintray仓库,复制内容如下

6.X

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/6
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

7.X

[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1

最后执行安装命令

sudo yum install erlang

RabbitMQ

导入数据签名

sudo rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

创建仓库文件

sudo vim /etc/yum.repos.d/rabbitmq.repo

rqbbitmq 3.7.x,选择bintray仓库,复制内容如下

6.X

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1

7.X

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

最后执行安装命令

sudo yum install rabbitmq-server

设置开机自启动

sudo chkconfig rabbitmq-server on

启动服务

sudo service rabbitmq-server start

配置

开启web管理插件

sudo rabbitmq-plugins enable rabbitmq_management

从3.3.1开始,guest用户只能用于本机访问。如果想在其它服务器访问web管理,一种方式为添加新用户;一种方式为在配置文件中修改guest访问权限。这里采用第一种方案

sudo rabbitmqctl add_user fsl fsl
sudo rabbitmqctl set_user_tags fsl administrator
sudo rabbitmqctl set_permissions -p / fsl ".*" ".*" ".*"

为了配合nginx的转发需求,需为web管理的地址添加前置路径

sudo cp /usr/share/doc/rabbitmq-server-3.7.10/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
sudo vim /etc/rabbitmq/rabbitmq.config

添加path_prefix配置

[
  %% ...
  {rabbitmq_management,
    [{path_prefix, "/mq"}]},
  %% ...
].

参考

Installing on RPM-based Linux (RHEL, CentOS, Fedora, openSUSE)

centos 6.7下安装rabbitmq 3.6.6过程

RabbitMQ Tutorials

AMQP 0.9.1模型简介英文中文

AMQP 0.9.1快速指南英文中文

RabbitMQ入门到精通视频教程

RabbitMq系列

服务规范

队列选型

RabbitMQ官方支持以下五种队列类型。本平台主要采用主题模式。

队列名称 队列模型 适用
简单队列 在这里插入图片描述
工作队列 在这里插入图片描述
发布/订阅模式 在这里插入图片描述
路由模式 在这里插入图片描述
主题模式 在这里插入图片描述

运行环境

对于生产者,将消息发送至不同环境的交换机。对于消费者,绑定不同的环境的队列接收消息

环境类型 服务地址 交换机名称 队列名称 队列描述
开发环境 172.16.20.121 exchange.topic.dev queue.portal.dev 门户开发环境队列
queue.ams.dev 资产开发环境队列
综测环境 172.16.20.121 exchange.topic.sit queue.portal.sit 门户综测环境队列
queue.ams.sit 资产综测环境队列
业测环境 172.26.150.148 exchange.topic.uat queue.portal.uat 门户业测环境队列
queue.ams.uat 资产业测环境队列
正式环境 172.26.150.160 exchange.topic.prod queue.portal.prod 门户正式环境队列
queue.ams.prod 资产正式环境队列

命名规则

类型 命名规范 示例 说明
消息 公司.主题.数据 fsl.hr.org FSL人事领域的部门数据
路由键 公司.主题.数据.目标系统 fsl.hr.org.portal 点对点,将FSL的HR数据的组织数据发送至个人门户
路由键 公司.主题.数据.* fsl.sys.dict.* 广播,将FSL的数据字典数据发送至所有系统
交换机 exchange.类型.环境 exchange.topic.dev 开发环境交换机
队列 queue.系统.环境 queue.portal.sit 门户综测队列
绑定键 公司.主题.数据.目标系统 fsl.hr.org.portal 点对点,个人门户接收FSL的HR数据的组织数据
绑定键 #.目标系统 #.portal 点对点,个人门户接收所有发送到本系统的数据
绑定键 #.数据.* #.dict.* 广播,个人门户接收所有的数据字典数据

数据持久化

类型 属性 描述
消息持久化 MessageProperties.PERSISTENT_TEXT_PLAIN 确保消息始终能从硬盘恢复
交换机持久化 durable:true 确保交换机始终能从硬盘恢复
队列持久化 durable:true 确保队列始终能从硬盘恢复

数据可靠性

类型 属性 描述
生产者确认 confirmSelect->waitForConfirms 只有成功发送并返回后,才会认为消息发送成功
消费者确认 autoAck=false->basicAck 只有成功消费并返回后,才会认为消息消费成功

ack机制图示

在这里插入图片描述

典型场景

应用场景 持久化 可靠性
数据同步
服务调用
日志存储
通知通讯

服务目录

LCP平台

消费者
名称 消息key
组织 hr_org
部门 hr_dept
岗位 hr_post
员工 hr_personnel
员工工作关系 hr_psnjob
外部组织 carrier_org
外部部门 carrier_dept
外部岗位 carrier_post
外部员工 carrier_personnel
外部员工工作关系 carrier_psnjob
数据字典类型 dict_enumtype
数据字典 dict_enum
账号 fsl.portal.user

门户

生产者
名称 消息key 路由键
账号 fsl.portal.user fsl.portal.user.*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值