刷新
消息中间件RabbitMQ

博主头像 什么是RabbitMQ? RabbitMQ是一款开源的,Erlang编写的,基于AMQP协议的消息中间件 为什么使用MQ?MQ的优点 异步处理 - 相比于传统的串行、并行方式,提高了系统的吞吐量。 应用解耦 - 系统间通过消息通信,不用关心其他系统的处理。 流量削锋 - 可以通过消息队列长度控制请求 ...

阿里高级技术专家方法论:如何写复杂业务代码?

博主头像 张建飞是阿里巴巴高级技术专家,一直在致力于应用架构和代码复杂度的治理。最近,他在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。结合实际的业务场景,他沉淀了一套“如何写复杂业务代码”的方法论,在此分享给大家,相信同样的方法论可以复制到大部分复杂业务场景... ...

京东达达核心系统架构:从短平快到体系化的设计精要

博主头像 商品系统是电商系统最基础、最核心的系统之一。商品数据遍布所有业务,首页、门店页、购物车、订单、结算、售后、库存、价格等,都离不开商品。商品信息要稳定提供至到家供应链的每个节点,所以必须要有一套稳定的、高性能的商品服务体系支撑。 随着京东到家商品业务的快速发展,业务从单一转变为多元化,系统功能设... ...

编程与类型系统读后总结与感想

博主头像 1. 基本信息 编程与类型系统 Programming With Types:Examples in TypeScript [美] 弗拉德·里斯库迪亚(Vlad Riscutia) 著,赵利通 译 机械工业出版社,2021年1月出版 1.1. 读薄率 书籍【真实】字数17.5万字,笔记总字数1929 ...

单体应用产生的痛苦,微服务并不能解决……

博主头像 本文作者通过分析微服务的常见优点能解决的问题,提出如何使用单体应用来缓解这些问题,最终指出采用微服务还是单体架构要根据团队实际情况,而不是为了微服务而微服务。作者最后给出建议,中小团队和新型团队,建议采用单体架构,大中型团队,可以采用微服务架构,但要充分权衡。 在 Web 软件架构方面,微服务... ...

读函数式编程思维笔记04_语言与范式_模式与重用

博主头像 1. 语言的分类 1.1. 静态类型 1.1.1. 要求我们事先指定变量和函数的类型 1.2. 动态类型 1.2.1. 允许推迟指定类型 1.3. 强类型 1.3.1. 变量“知道”自己的类型 1.3.1.1. 允许反射和对实例作类型测试,且一直保有自身的类型信息 1.4. 弱类型 1.4.1. 语 ...

适配器模式

适配器模式 p...概括:在适配器类 Adapter 中,将现有接口 Adaptee 中的方法作为数据源传入适配器类,然后转换成目标接口 Target 中的方法。如果客户端要调用,那么就调用 Adapter类对象且传入 Adaptee 对象即可。 Target目标接口:定义系统的需求规范 Adapt ...

读函数式编程思维笔记03_权责让渡

博主头像 1. 观点 1.1. 抽象隐藏了繁杂的细节,只是有时候会连同重要的考虑因素一起隐藏掉 1.2. 理解掌握的抽象层次永远要比日常使用的抽象层次更深一层 1.3. 交出控制权的观点:放弃对繁琐细节的掌控,关注问题域,而非关注问题域的实现 2. 函数式思维的好处 2.1. 将低层次细节(如垃圾收集)的控制 ...

系统的混乱并非业务本身之复杂,我们并不擅长处理『简单』

博主头像 一群高智商青年在餐厅吃饭,餐桌上一个瓶盖标识为盐的瓶子里装得是胡椒粉,而标识为胡椒粉的瓶子里装得却是盐,他们想出了一个充满才气的方案来完成对调--仅需要一张餐巾纸、一根吸管和两个空碟子。当他们叫来服务员,准备炫耀他们的天才想法时,只见服务员什么也没说,只是拿起盐瓶和胡椒粉瓶,互换了瓶盖…… 在我们... ...

Redis分布式锁的五大演进攻略

博主头像 本文我们来探讨下如何引入分布式锁解决本地锁的问题。本篇所有代码和业务基于我的开源项目 PassJava。 本篇主要内容如下: 一、本地锁的问题 首先我们来回顾下本地锁的问题: 目前题目微服务被拆分成了四个微服务。前端请求进来时,会被转发到不同的微服务。假如前端接收了 10 W 个请求,每个微服务接收 ...

如何理解这6种常见设计模式?

博主头像 导读:设计模式能够帮助我们优化代码结构,让代码更优雅灵活。有哪些常见的设计模式?如何合理运用?本文分享作者对工厂模式、单例模式、装饰模式、策略模式、代理模式和观察者模式的理解,介绍每种模式的模式结构、优缺点、适用场景、注意实现及代码实现。 ...

读编程与类型系统笔记11_高级类型及其他

博主头像 1. 范畴论 1.1. 范畴论是数学的一个分支,研究的是由对象及这些对象之间的箭头组成的结构 1.2. 函子和单子的概念来自范畴论 1.3. Haskell是一种编程语言,从范畴论中汲取了许多灵感,所以它的语法和标准库很容易表达函子、单子和其他结构的概念。Haskell完全支持高阶类型 2. 函子( ...

万字长文助你上手软件领域驱动设计 DDD

博主头像 最近看了一本书《解构-领域驱动设计》,书中提出了领域驱动设计统一过程(DDDRUP),它指明了实践 DDD 的具体步骤,并很好地串联了各种概念、模式和思想。因此,我对书本内容做了梳理、简化,融入自己的理解,并结合之前阅读的书籍以及实践经验,最终形成这篇文章。希望可以帮助大伙理顺 DDD 的各种概念、... ...

从0到1详解ZooKeeper的应用场景及架构

博主头像 随着计算机系统的规模越来越大,业务量的迅速提升和互联网的爆炸式增长,集中式系统采用大型主机单机部署带来了一系列问题:系统大而复杂、难于维护、发生单点故障引起雪崩、扩展性差等。这些都使业务面临巨大的压力和严重的风险,为了解决集中式系统架构面临的痛点,分布式系统架构逐步走上舞台。分布式系统是一个硬件或软... ...

学习笔记——架构之路

博主头像 2023-01-13 一、基本功 (1)工程结构管理 掌握企业环境的搭建和管理 (2)java开发规范 P3C开发规约 (3)高并发及网络编程 需要考虑性能瓶颈 (4)底层源码分析 二、互联网常用技术——分布式 1、NoSQL数据库:是提升数据访问效率的优先选择。 访问效率的提升:Redis、Mon ...

API 网关的功能用途及实现方式

博主头像 1. API 网关诞生背景 前言 API 经济生态链已经在全球范围覆盖, 绝大多数企业都已经走在数字化转型的道路上,API 成为企业连接业务的核心载体, 并产生巨大的盈利空间。快速增长的 API 规模以及调用量,使得企业 IT 在架构上、模式上面临着更多的挑战。 API 是什么 API 网关是一个服 ...

读编程与类型系统笔记09_泛型数据结构

博主头像 1. 恒等函数 1.1. 在代数中,恒等函数指的是函数f(x) = x 1.2. 恒等逻辑与getNumbers()和assembleWidgets()的问题域解耦,因为恒等逻辑和问题域是正交的,或者说是独立的 2. 类型参数 2.1. 将不同函数的区别,即它们的实参类型参数化 2.2. 一个泛型名 ...

<1···444546···50>