一般来说在我们的项目中,按照严格分层的结构划分的话,大致是 handler、service(DDD 中细分为 application 和 domain ),dao。 对于 dao 层,如果出现错误,我们的处理方式是直接上抛,选择性的打日志处理错误,比如可能有些接口涉及到在…
叠甲,写这篇文章主要是分享在看 DDD 的项目实践中的一些学习感悟,因为本人懒得看理论,所以都只是猜测 DDD 要这么设计。具体还是要参考 DDD 官方网站:https://domain-driven-design.org/zh/ddd-concept-reference.html 最近字节开源了它们的 open-coze,前端是 React…
因为我做后端,对前端相关的平台以及一些工具了解的不是很多,最近偶然了解到 Vercel 这个平台,它提供的能力是,与云 Git 仓库相关联后,将代码部署到 Vercel 平台的机器上,同时会给每个项目分配一个域名,当然也可以自己添加。 但 Vercel 提供的能力也比较有限,大部分情况下它支持前端静态页面的部署,比如个人博客/介绍、项目链接、其他小工具可以采用它部署,当然它也提供支持轻量后端逻辑的,只是它的后端逻辑属于…
最近看了 jyy 2022 版的 OS 课程,目前进度是并发。对于并发部分,jyy 分了六节课,我目前是看了三节课,梳理一下这三节课的思路。 并发:多处理器编程 这节课的主要问题:如何理解多处理系统? 多处理器编程:入门…
前言 之前有写过一个 OJ 业务项目放在简历上,那么 OJ 最重要的是评测模块,它的核心思想就是拿到用户代码,执行后,返回结果,当然这是从功能角度来说,从评测本身角度来说,我们更多考虑的是安全问题,因为用户代码是具有不确定性的,我们往往不能直接运行或者说起码要采取一些措施,否则不被信任的代码如果直接被运行很可能对我们的服务器造成损害:比如用户代码可能包含 fork 炸弹、恶意网络请求、死循环等,我们需要有一些手段去控制,那么就需要一个”黑盒“,它能够提供这么一种环境,对用户的代码进行一些限制。那么这个黑盒就是我们常说的“容器”。 提到容器我们都知道 Docker,理所当然的,我的评测也是利用了…
在 MVCC 机制下,Redo Log 和 Bin Log 主要在事务提交时发挥作用,它们的作用和触发时机如下: 1. 事务执行过程中的日志行为…
概览 在分布式环境下,各个微服务都会有不同的实例,服务注册和服务发现解决了“有哪些可用实例”的问题,剩下面临的就是,“这么多可用实例,我该把请求发给谁?”。直觉来说,大部分人如果听过一些专业名词,此时会直接想到“负载均衡”。那负载均衡到底是什么呢? 负载均衡是在支持应用程序的资源池中平均分配网络流量的一种方法。现代应用程序必须同时处理数百万用户,并以快速、可靠的方式将正确的文本、视频、图像和其他数据返回给每个用户。为了处理如此高的流量,大多数应用程序都有许多资源服务器,它们之间包含很多重复数据。负载均衡器是位于用户与服务器组之间的设备,充当不可见的协调者,确保均等使用所有资源服务器。 ------- aws 事实上负载均衡是手段而不是目的。因此从目的上来说,我们其实不需要搞什么负载均衡,我们的目的就是把请求转发给“最适合”处理这个请求的节点。最适合意味着:- 如果这个请求需要很多内存,那么将它转发给内存多的节点。- 如果这个请求是 CPU 密集的,那么将它转发给…
目前在 Go Web 领域有很多较出名的开源框架,Gin 、Hertz、Echo、Beego、Iris。它们都有各自的特点,并为开发者提供了很好的 API 支持,性能上都很好。 先来看看各个框架的抽象结构 Gin: Engine:…