WebHook机制
1.什么是web hookwebhook是一个API概念,并且变得越来越流行,我们能用事件描述的事物越来越多,webhook的作用范围也就越大, webhook作为一个清凉的事件处理应用,正变得越来越有用我们在网上做的工作,大部分其实就是事件,webhooks已经成为了连接系统的主要方式,不管是用户创建,支付成功,DockerHub镜像推送或者Git仓库上的合并请求,这些都是非常有用并且轻量级的共
1.什么是web hook
webhook
是一个API
概念,并且变得越来越流行,我们能用事件描述的事物越来越多,webhook
的作用范围也就越大,webhook
作为一个清凉的事件处理应用,正变得越来越有用
我们在网上做的工作,大部分其实就是事件,webhooks
已经成为了连接系统的主要方式,不管是用户创建,支付成功,DockerHub
镜像推送或者Git
仓库上的合并请求,这些都是非常有用并且轻量级的共享信息的方式
-
简单来说,就是一种反向
API
,类似于触发器一样-
打个比方,比如项目A要从项目B获取数据,通常需要项目B提供一个
API
接口,然后项目A去请求项目B的接口,获取数据 -
通过
webhook
机制,对客户端和服务端的模式进行逆转 -
继续新增加一个需求,项目A需要从项目B获取实时数据,如果按照传统做法,不停的去请求接口,就算是实现了这个功能,但是,效率和性能都非常的低
-
通过
webhook
机制,我们在项目B中加上一个触发器,在项目B每次创建新数据或者修改了某个数据,就会自动触发, 便会向项目B的hook地址进行请求,项目A收到项目B的请求,然后对数据进行处理
-
2.mysql
外键的选择
所有的web开发都离不开性能和效率,我们就来聊聊
mysql
物理外键的性能问题
为何说外键有性能问题,让我们慢慢分析一下
- 数据库需要维护外键的内部管理,这样就给数据库增加了一些性能负担,尽管是些小负担,但是在数据量庞大的时候,和优化过的数据库差距也是很大的
- 外键等于把数据的一致性事务实现,全部交给数据库服务器完成,同样也会增加数据库服务器的压力
- 有了外键,当做一些设计外键字段的增删改等操作之后,需要触发相关操作去检查,从而不得不消耗资源
- 外键还会因为需要的请求对其他表内部加锁而容易出现死锁的情况
虽然很多人不推荐你使用物理外键,但你听到更多的是mysql,而不是SQL server或者其他,比较公认的是,他的外键设计得确实不怎么好,限制多功能不强大等等
还有,最重要的一点是,万一主键所在的表需要拆分,重构,那么,物理外键对应的表,也要进行一系列繁琐的操作,另一方面,数据库帮你保证级联关系,自己不保证思路清晰啊
所以,逻辑外键在业界是比较成熟的,不适用物理外键,我们也可以约定逻辑外键,不再数据库中声明,外键,只在程序中实现关联
那么,逻辑外键实现了物理外键的功能,这,才是开发人员的第一选择
说到这里,在数据库的策略上,我们也可以选择逻辑删除
逻辑删除,就是,只对表进行更新增加操作,不进行删除,不再使用的历史数据,定期的归档来减少压力
更多推荐
所有评论(0)