互联网时代越来越多的实时协作软件出现,例如在线点餐、文档编辑、在线绘图等。 今天来聊聊这些场景一般如何实现的。 场景和问题 实时协作软件一般用于多个人同时操作(也包括一个人多个会话)。例如 Google Doc 可以支持同时编辑文档,并将多人编辑的结果合并到一起展示,而且能相互看到其它人的操作。 但是,在实现过程中会有非常多的技术问题和业务逻辑问题需要考虑: Web 平台如 […]
互联网时代越来越多的实时协作软件出现,例如在线点餐、文档编辑、在线绘图等。 今天来聊聊这些场景一般如何实现的。 场景和问题 实时协作软件一般用于多个人同时操作(也包括一个人多个会话)。例如 Google Doc 可以支持同时编辑文档,并将多人编辑的结果合并到一起展示,而且能相互看到其它人的操作。 但是,在实现过程中会有非常多的技术问题和业务逻辑问题需要考虑: Web 平台如 […]
大部分程序员都会遇到过类似的 Bug:用户创建或者更新的数据在查询时偏移了 8 个小时。 我们有时候会在网上找一些文章,胡乱的配置后问题修复了,但是过一段时间后往往又会出现。 时间和时区的问题往往就像幽灵一样发生在程序员身上。 这一期的系统设计话题我们来盘点一下时间的问题,澄清相关的概念,以及相关的解决方案。 生活中的时间和时区 古人尸佼说,天地四方曰宇,往古来今曰宙,其中 […]
这个话题来自网友提交和项目上真实的案例,即如何实现企业内部多个应用之间的数据交换。 这个话题非常实用,我们先从问题开始聊起(在很多系统设计的过程中,我们发现问题比答案有时候更有价值,因为问题贴合业务价值)。 问题 案例 1 业务和推荐系统集成 假设有两个系统,分别是 A 系统和 B 系统。A 系统是一个事务处理系统,而 B 系统则是一个算法和推荐系统。A 系统向 B 系统提 […]
在上一部分,分层架构的目的是为了将业务规则剥离出来在单独的领域层中进行实现。再回顾一下领域驱动设计的分层中应用层代码的实现。 @Override public void pay(int orderId, float amount) { DesignerOrder order = designerOrderRepository.selectByKey(orderId); // […]
本文记录了JSF异步调用超时引起的接口可用率降低问题,介绍了排查思路和JSF异步调用的流程,本文分析的JSF源码是基于JSF 1.7.5-HOTFIX-T6版本 一、前言 本文记录了由于JSF异步调用超时引起的接口可用率降低问题的排查过程,主要介绍了排查思路和JSF异步调用的流程,希望可以帮助大家了解JSF的异步调用原理以及提供一些问题排查思路。本文分析的JSF源码是基于J […]
本期作者 邹靓 哔哩哔哩创平高级测试开发 前言 2022与2023年交棒的这一天里,作为互联网打工人的大家是在边看跨年晚会边享受美食?还是陪伴在父母身边唠家常?亦或者发生了不可避免的特殊线上case正在抢修中?曾经笔者属于悲催的后者,如果刚好你也被一些跨年/跨月等特殊时间case困扰,欢迎阅读本文一起交流讨论~ 常见时间case与防护分析 话不多说,上干货!笔者经过长年累月 […]
作者:华钟明 部门:技术中台 前言 2022年年初至今,团队持续在给业务应用做性能优化,主要目标是提高业务应用稳定性和降低业务应用的机器成本。到现在,代码层面的优化已经到了一定的瓶颈。所以就把优化的思路伸向了JVM的调优。有赞目前所有的Java应用采用的JDK版本是1.8.0_201,这个版本支持多个垃圾回收机制,比如CMS和G1等,而在有赞,除了个别应用有调整成G1垃圾收 […]
最近在整理以前的工作笔记,又发现一个有意思的bug,在一个service调用另外一个类的方法时,出现了一个Spring的事务问题,Transaction rolled back because it has been marked as rollback-only,时间过去有点儿久了,不记得是压测时出的问题还是线上运行时出的问题了。 2021-01-25 19:42:00. […]
上一篇文章中见过了事务的特性以及隔离级别,今天来说一下事务的传播性,事务是一个好东西,但是并不是每一个方法都应该加上事务,在事务的隔离级别中提到过一点:越是严格,耗费的性能越大,那么如果每个方法都加了事务,而不论是否会涉及到数据的修改,那么这就属于事务的滥用了,没起到应有的作用不说,反而还会一点点的拖慢你的系统。 为了应对这一问题,“事务的传播性”这一概念又横空出世了,打个 […]
“事务”,一个经常能听到的概念,它到底是个什么东西呢?数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成,事务的正确执行,使得数据从一种状态转换到另外一种状态。
本文基于Netty4.1展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给大家在实际开发实践、学习开源项目提供参考。这是一篇万字长文,建议先收藏,转发后再看。 Netty简介 Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 JDK原生NIO程序的问题 JDK原生也有一套网络应用程序API,但是存在 […]
在当前的环境下,为新业务设计系统的场景非常少了,很多系统开发工作都需要对原有系统进行迁移和切换。 不得不说,系统切换和迁移的难度有时候比新开发还大。这一期,我基于研讨会总结的内容,整理了一些迁系统迁移和切换的经验和模式。 问题和挑战 为了避免空谈,我们根据经验整理一些常见的场景,并以此分开讨论: 某企业开发了一套新的办公(OA)系统,需要将原有的审批信息迁移到新的办公系统。 […]
11 月 27 日晚滴滴发生了大范围、长时间的故障。官方消息说是“底层系统软件发生故障”,而据网上的小道消息,一个规模非常大的 K8s 集群进行在线热升级,因为某些原因,所有 Pod(容器)被 kill,而 K8s 的元数据已经被新版本 K8s 修改,无法回滚,因此恢复时间拉的很长。 从滴滴近期分享的技术文章来看,这个说法并不是空穴来风。滴滴团队近两个月正在把公司内部的 K […]
反映业务规则的代码是整个软件的核心,但是它一般只占很小的一部分,在传统的基于贫血模型的分层软件架构中,业务规则可能分散到各个层、各个代码段,从而使得通过代码来还原业务规则或者保证代码与业务规则一致将变得非常困难。DDD分层架构的核心思想就是将所有业务规则的代码抽取到领域层,保证领域层的编码与领域模型是完全一致的。 下图是DDD的分层架构。 一定要牢记:DDD分层架构一个核心 […]
prompt顾名思义就是“提示”的意思。prompt简单来说就是你给AI的指令。想要使用AI来把不同语言的翻译,在OpenAI上使用Prompt进行翻译中英文等。
BeanUtils (1) BigDecimal (1) CDC (1) ETL (1) github (1) heap (1) LLaMa (1) MAT (5) MDM (1) Sora (1) TCP (1) 业务图 (1) 企业应用 (1) 停机迁移 (1) 内存泄露 (4) 协议 (1) 可用性 (1) 基础设施层 (1) 堆内存 (1) 堆外存 (1) 大事记 (1) 实时协作 (1) 对象转换 (1) 应用架构 (1) 异常 (3) 技术规范 (1) 技术选型 (4) 提示工程 (1) 数据交换 (1) 数据共享 (1) 数据双写 (1) 日期 (1) 时间 (1) 时间线 (1) 术语 (1) 架构方案 (14) 流程图 (1) 精度 (1) 线程模型 (1) 经验分享 (1) 网络编程 (2) 解耦 (1) 软件复杂性 (1) 软件工程 (1) 重构 (3) 重试 (1) 隔离级别 (1) 集群扩容 (1) 领域层 (3) 领域模型 (1)
COPYRIGHT © 2014-2024 verysu.com . ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang