楼主: dlmxv90851
983 1

Vue3+ElementPlus+Koa2 全栈开发后台系统 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

96%

还不是VIP/贵宾

-

威望
0
论坛币
266 个
通用积分
55.0568
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1668 点
帖子
98
精华
0
在线时间
69 小时
注册时间
2020-4-17
最后登录
2024-9-19

楼主
dlmxv90851 发表于 2022-12-7 19:40:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Vue3+ElementPlus+Koa2 全栈开发后台系统
工作异步中常用的接口性能优化
在工作中,我们经常会遇到界面响应慢、超过阈值触发报警,甚至网关超时、App无响应、用户投诉等情况。虽然有些场景可能是业务本身复杂的逻辑造成的,但还是要靠程序员来抵制一切。
今天我们就来说说常用的在工作中的接口性能优化方法:异步。


说到异步,可能很容易想到同步、阻塞和非阻塞。


异步:当一个方法或服务被调用时,当被调用的服务没有完成处理时,是否有返回或响应。当业务处理完成后,返回的响应称为同步;当接收到的请求还没有被处理时,有一个立即的响应被称为异步。
阻塞和非阻塞:当一个方法或服务被调用时,当方法服务没有返回时,当前线程是否可以做其他任务(被挂起)是没有区别的。
1.多线程异步调用。
使用主线程池来并发处理一些操作,以减少总体响应时间。可以直接使用线程池、@Async异步任务、CompletableFuture等。


线程池、@Async和CompletableFuture的用法和注意事项后面会详细讨论。


具体场景,比如近期业务中与商机相关的后台管理。需要查询家长,学生,销售等姓名。这些数据存储在其他系统中,本地冗余会造成数据不一致。一般情况下,会根据查询结果动态查询相应的数据,然后进行补充。


当然最好配合缓存,如果数据量不太大的话,比如销售数据甚至可以全部缓存。当然,后面我们会单独讲缓存。


image.png


2通过队列的异步任务等。
这种方式其实就是用MQ削峰填谷,任务是异步的。其实削峰填谷也可以看作是异步处理的一个场景,但其目的是缓冲瞬时请求。任务异步的目的是让一些任务异步,而不是阻塞主任务的执行,提高响应速度。


2.1削峰填谷
还是为了最近的生意。在做与用户增长相关的业务时,用户从登陆页面向内部系统提交数据,内部系统会简单处理数据,然后推送到外部CRM系统。与客户沟通后,销售会将线索转化为商机。在这个转换过程中,CRM会将数据推送到内部系统。内部系统会根据传输过来的数据进行各种操作,比如创建和更新家长,创建和更新学生,各种附加业务信息。整个操作涉及多个系统,有时甚至无法控制。


外部CRM系统可以通过脚本函数进行扩展,根据业务需要增加内部系统的按钮。此按钮操作是同步闭锁。当调用函数(接口)不返回时,整个页面都无法操作,这是一种非常不友好的交互方式。


image.png


2.2任务异步化
这个场景是我第一次做商城项目的时候。用户下单支付后,首先更新本地订单记录,然后推送消息到第三方物流系统,向用户发出与订单相关的站内信,并可能触发推荐人的积分赠送和返利计算,并可能触发相关营销规则发放优惠券。

Vue3+ElementPlus+Koa2 全栈开发后台系统
download:链接:https://pan.baidu.com/s/1kDDolB6suxp0dtrF4mBePA?pwd=egfu
提取码:egfu
--来自百度网盘超级会员V5的分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Element PLUS LEM Plu EME

沙发
chmlx 发表于 2023-11-26 07:10:43

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-21 21:52