架构
文章平均质量分 93
程序员顺仔
个人微信号 zs6105326
公众号 程序员顺仔和他的朋友们
欢迎志同道合之士一起交流
展开
-
SQL规范落地实践
本文由707同学供稿~1.概述数据库在各类生产系统中是不可或缺的中间件,SQL代码作为操作数据库的标准语法,在日常开发中使用比例非常高,几乎每个批次都会有产品涉及,但各开发人员对SQL开发技能的掌握程度参差不齐。为了规避开发技能不足,而引发SQL质量问题的风险,在最大程度上规范开发方法,由数据库专家团队从历史经验和业界优秀实践中总结出一套SQL代码开发规范。然而,无法落地的规范,只能是空中楼阁,为了能够让规范顺利落地,我们通过将规范内化在工具中,将一条条规范条文具象化、可验证化,以检查开发人原创 2021-08-28 23:41:51 · 653 阅读 · 1 评论 -
多地多活与单元化架构
背景在业务发展到一定阶段之后,任何因故障而导致的服务中断都会带来巨大的损失。为了提高系统的伸缩能力与高可用能力,我们都不断的在努力消除系统单点瓶颈。如使用应用集群是为了解决服务层的单点问题,使用主从数据库是为了解决数据库层面的单点问题。尽管我们使用微服务架构,很好的解决了服务治理与监控问题,使得少数服务器出现故障仍不影响整体服务质量。但是由于所有的设备都存放在同一个机房内部,对于机房级的故障是无法承受的,如机房断电、火灾、地震等,造成的后果是灾难性的。虽然机房内部很好的解决了单点故障,但是机房本身却是单原创 2020-11-03 11:28:41 · 1294 阅读 · 6 评论 -
分布式事务的概念及实现方案
基本概念事务由多个计算任务构成的一组具有明确边界的工作集合。事务当中可能包括接口访问、网络通信、数据获取和处理。严格的事务实现应该具备具有原子性、一致性、隔离性、持久性四个特性。原子性(Atomicity):一个事务中的任务要么全部完成,要么全部失败。没有中间状态。隔离性(Isolation):不同事务之间的操作互不影响,并发的事务其中间状态对其他事务不可见。持久性(Durability):事务一旦完成,则状态永久有效。一致性(Consistency):事务涉及的资源或者数据在事务前后遵循某种原创 2020-10-27 19:28:37 · 698 阅读 · 0 评论 -
聊聊跨域的原理与解决方法
背景在最近的项目中,遇到这样一个场景:合作方开发H5页面并部署在合作方的服务器上,但页面中嵌入了我方的SDK,SDK会直接调用我方的接口,如下图:但是控制台中却会收到如下报错:Access to XMLHttpRequest at 'http://example1.com/test' from origin 'http://example2.com' has been blocked by CORS policy: Response to preflight request doesn't pass原创 2020-06-20 23:48:44 · 1411 阅读 · 0 评论 -
搞懂dubbo的SPI扩展机制
引言SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能。在谈dubbo的SPI扩展机制之前,我们需要先了解下java原生的SPI机制,有助于我们更好的了解dubbo的SPI。java原生的SPI先上例子:定义接口Animal :public interf原创 2020-06-14 12:57:11 · 414 阅读 · 1 评论 -
基于事件驱动架构的用户成长体系
背景概述用户成长体系通俗的来讲就是会员经验金币系统,通过量化的方式来衡量用户对平台的忠诚度、共享度等,同时提供一系列的激励机制,刺激用户留在平台上。简单来讲,成长体系的作用就是“获客”、“活客”。对于用户来说,一个好的用户成长体系能够提升用户的主动活跃,用户也可以从体系中获得成就感、特权等利益。比如京东的京豆可以用来抵扣下次消费,QQ超级会员能让用户享受不一定的尊贵体验。对于平台来说,通过用户成长体系可以了解用户对产品的使用情况,有助于了解用户的组成情况,可以作为后面精细化运营的基础。同时,成长原创 2020-06-07 18:19:56 · 344 阅读 · 0 评论