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

移动网站设计上机考试谷歌seo搜索引擎优化

移动网站设计上机考试,谷歌seo搜索引擎优化,做产品目录设计用什么网站好,做商城网站公司吗背景 我们核心业务中订单完成时,需要完成后续的连带业务,扣件库存库存、增加积分、通知商家等。 如下图的架构: 这样设计出来导致我们的核心业务和其他业务耦合,每次新增连带业务或者去掉连带业务都需要修改核心业务。 一方面&…

背景

我们核心业务中订单完成时,需要完成后续的连带业务,扣件库存库存、增加积分、通知商家等。

如下图的架构:

这样设计出来导致我们的核心业务和其他业务耦合,每次新增连带业务或者去掉连带业务都需要修改核心业务。

一方面,不合符软件设计的OCP原则;二方面,修改核心业务风险、成本也是很大的。

方案

基于上述方案的问题,我们设计了新的方案。新的方案,可以动态接入新的连带业务,不会入侵核心业务,降低了变动的风险和成本。

1. 订单下发统一的ORDER_CREATED事件消息;

 消息格式如下:

{
    "enterEvent":"ORDER_CREATED",
    "data":{
        "order_id":"OR2023111000000001"
    },
    "source":"ORDER",
    "datetime":"2023-11-10 21:40:52"
}

2. 所有核心业务发送到MQ的消息,统一发送到分发中心DISPATCHER_CENTER。

消息统一中心获取配置的路由信息,将消息发送到MQ。

*** @author darmi*/
@Component
public class KafkaEventListener {@Autowiredprivate MsgDispatcherCenterRepository msgDispatcherCenterRepository;@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;@Autowired@Qualifier(value = "eventExecutor")private Executor eventExecutor;@KafkaListener(topics = {"DISPATCHER_CENTER"})public void dispatchMsg(String event) {DispatcherCenterEvent dispatcherCenterEvent = DispatcherCenterEvent.getObject(event);eventExecutor.execute(() ->{msgDispatcherCenterRepository.findMsgDispatcherCenterByCenterEventAndActive(dispatcherCenterEvent.getCenterEvent(), Boolean.TRUE).forEach(e -> kafkaTemplate.send(e.getRouteEvent(), dispatcherCenterEvent.getData()));});}}

Mysql的消息路由表设计如下:

CREATE TABLE `tb_msg_dispatcher_ center` (`id` int NOT NULL AUTO_INCREMENT,`center_event` varchar(255) NOT NULL,`route_event` varchar(255) NOT NULL,`active` tinyint NOT NULL DEFAULT '0',`created` timestamp NOT NULL,`updated` timestamp NOT NULL,PRIMARY KEY (`id`),KEY `idx_center_event_active` (`center_event`,`active`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

 3. 各个业务监听消息,处理自己的业务。

 @KafkaListener(topics = {"ADD_POINT"})public void addPoint(String event) {//    添加积分}@KafkaListener(topics = {"REDUCE_STOCK"})public void reduceStock(String event) {//   扣件库存}@KafkaListener(topics = {"NOTICE_MERCHANT"})public void noticeMerchant(String event) {//    通知商家}

总结

这个方案是一个简易可行的方案,符合快速上手并实施。在人力、时间、成本不充足的情况下,基本能满足我们的需求。

如果想让它作为平台级的技术组件推广,还有一些细节的点可以优化。

  • 核心的业务是否也可以分离出来,通过平台配置的方式自动分发数据到消息中心。
  • 消息中心每次都会从数据库拉去路由表信息,这样性能不好,可以放在分布式缓存或本地内存。这时需要注意缓存数据的一致性问题。
  • 分发中心是否存在性能瓶颈、集群化等。
  • 连带业务是否也可以通过配置,自动拉取MQ的消息。

http://www.tj-hxxt.cn/news/61872.html

相关文章:

  • 龙岩市住房与城乡建设局网站seo超级外链工具
  • 做毕业设计网站教程搜索引擎收录
  • icp网站信息seo词条
  • wordpress 公告插件长沙seo服务哪个公司好
  • 阿里云上做网站独立站
  • wordpress搭建小说站关键字挖掘
  • 农村电商做什么项目好seo网络推广专员
  • iis添加网站的物理路径crm系统
  • wordpress4.5 火车头湘潭seo培训
  • 管理网站用什么系统好seo顾问服务公司
  • 博罗网站制作公司网站链接交易
  • 做网站能带来什么网络营销公司网络推广
  • 移动应用开发技术有哪些北京seoqq群
  • 可以做单的猎头网站什么是新媒体营销
  • 商务网站建设实训报告1500字互联网营销的特点
  • 男女视频做爰的网站推广方法有哪几种
  • 郑州网站优化推广培训百度网页游戏大厅
  • 厦门网站建设哪家专业2020站群seo系统
  • 织梦做的网站打包在dw修改百度知道合伙人答题兼职
  • asp做网站优点网络舆情的网站
  • 网站三级页面怎么做美国新冠疫情最新消息
  • da面板做两个网站企业的网络推广
  • 滨江网站建设优化大师免费下载安装
  • 电商网站开发公司广州网络营销运营
  • 秦皇岛找一家能建网站的公司哪个平台推广效果好
  • 动易网站制作教程海外短视频软件
  • ps做特效哪个网站好新闻稿发布平台
  • 玛沁县公司网站建设外媒头条最新消息
  • 南昌网站设计公司网络广告的形式有哪些
  • 做外贸推广的网站seo的中文意思是什么