架构设计-高并发秒杀系统
摘要:高并发秒杀系统架构设计 · 抢购、微信红包、一元夺宝 IT界最会讲故事的男同学 秒杀业务与难点 秒杀业务在各业务中已然非常流行,这里我将互联网行业中的秒杀定义为:在非常短的时间内,将一件商品分成多份进行购买的行为。微信抢红包、一元夺宝、双11大促抢购等业务本质上都可视作秒杀业务。而最近大热的抢红包的
阅读全文
限界上下文
摘要:限界上下文 1. 引言 限界上下文可以拆分为两个词,限界和上下文。限界:是指一个界限,具体的某一个范围。上下文:个人理解就是语境。 比如我们常说的段子: “我想静静。”这个句子一般是想表达“我想静一静”的意思。但是我们却把它玩笑成“静静是谁?”。可见上下文语境很重要。 这个例子只是个开胃菜,我们接着
阅读全文
Micro
摘要:Micro 架构与设计 Micro 架构与设计 翻译自 Micro architecture & design patterns for microservices 注: 原文作者即 Micro 框架的开发者。 过去几个月中,我们收到了很多关于 micro 的微服务架构和设计模式的问题。所以今天我们
阅读全文
领域
摘要:领域 1. 引言 领域一词,主要有以下两个意思: 不管是指国家的主权范围也好还是学术活动范围,都是在讲一个范围,一个界限。比如我们常说的,学术领域、思想领域、技术领域、语言领域、物理领域、医学领域、游戏领域、JAVA领域、.NET领域等等,它们中不管是泛指还是特指某个领域,都是限定在某个范围之内的。
阅读全文
电商平台项目
摘要:某电商平台项目开发要点记录 本文是博主在开发某电商平台项目的一些杂项记录,方便自己和团队同事查阅,偏向于具体技术或应用的细节和个人理解,但也未必非常具体。文中未提的更多内容可能会另起篇章。 导航属性——EF实体关系fluent配置 AutoMapper Autofac Repository模式 Mo
阅读全文
通用语言
摘要:DDD理论学习系列(1)-- 通用语言 1.引言 在开始之前,我想我们有必要先了解以下DDD的主要参与者。因为毕竟语言是人说的吗,就像我们面向对象编程一样,那通用语言面向的是?DDD的主要参与者:领域专家+开发人员领域专家:精通业务的任何人。开发人员:开发+测试。领域专家擅长某个领域的知识,专注于交
阅读全文
Event Driven Architecture
摘要:在微服务中使用领域事件 稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程。当你点击鼠标、敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件。在软件开发领域,事件驱动架构(Event Driven Architecture,EDA)早已被开发者
阅读全文
监控知识体系
摘要:监控知识体系 前言介绍 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。 目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力,效率最高的方案。当然对监控不是很明白的朋友们,看了以下文章可能会对监控整个体系有比较深刻
阅读全文
消息队列
摘要:消息队列 应用消息队列可以对系统进行解耦,流量削峰,在分布式系统设计中,消息队列是重要的组件之一。 在开发中应用过ActiveMQ,kafka等mq,不过对消息队列背后的实现原理关注不多,其实了解消息队列背后的实现特别重要, 比如对一致性等实现的关注,可以帮助我们在开发中避免踩坑,规避问题的出现。这
阅读全文
实时搜索系统
摘要:ElasticSearch + Canal 开发千万级的实时搜索系统 公司是做社交相关产品的,社交类产品对搜索功能需求要求就比较高,需要根据用户城市、用户ID昵称等进行搜索。 项目原先的搜索接口采用SQL查询的方式实现,数据库表采用了按城市分表的方式。但随着业务的发展,搜索接口调用频次越来越高,搜索
阅读全文
DB TABLE实践
摘要:我的数据库设计实践(一) 兜兜转转,突然发现我现在已经是一个老司机了,一直写代码都很忙,没有把很多点点滴滴的记录下来,今天开始就开始一个系列,分析当年我接触或者我设计过的表结构,有好有坏,有欢喜也有泪水。很多实践经验来自于踩了一个又一个的坑,从现在的角度去回想,在设计的时候如果那么做,也许我就不需要
阅读全文
消息队列实现分布式事务
摘要:消息队列实现分布式事务 前阵子从支付宝转账1万块钱到余额宝,这是日常生活的一件普通小事,但作为互联网研发人员的职业病,我就思考支付宝扣除1万之后,如果系统挂掉怎么办,这时余额宝账户并没有增加1万,数据就会出现不一致状况了。 上述场景在各个类型的系统中都能找到相似影子,比如在电商系统中,当有用户下单后
阅读全文
Rabbitmq集群
摘要:Rabbitmq集群 序言 清风万里的季节,周末本该和亲人朋友一起消遣这烂漫的花花草草,或是懒洋洋的晒个太阳听听风声鸟鸣。无奈工作使然,理想使然,我回到啦公司,敲起啦键盘,撸起啦代码,程序狗的世界一片黯然,一片黯然,愿天下所有努力的程序狗都梦想成真吧!! 回到正题,为什么搭建rabbitmq集群?r
阅读全文
理解和应用队列机制
摘要:如何理解和应用队列机制 在实际编写程序中大部他开发人员应用到队列的场景并不多,在数据结构层面来说队列是一个先过先出的存储机制;如果经常面向服务器并发应用编写的同学对队列机制应该不会陌生.基于队列的应用设计作为服务的性能和可靠性上起到非常重要的作用,对于刚入门的同学可能对这些东西不太理解,既然添加了一
阅读全文
搜索引擎
摘要:搜索引擎原理及使用 此项目是自己学习搜索引擎过程中的一些心得,在使用go语言的时候,发现了悟空这个搜索引擎项目,结合此项目代码以及《信息检索导论》,自己对搜索引擎的原理是实现都有了一个初步的认识,然后结合工作中可能遇到的场景,做了一个简单的demo。写下这篇文章,可能比较啰嗦,希望帮助到需要的人。项
阅读全文
SOA架构
摘要:基于服务的SOA架构_后续篇 今天是元宵节,首先祝各位广大博友在接下来的光阴中技术更上一层,事事如意!(没能在元宵节发布,今天就补上吧) 昨天简单介绍了一下本人在近期开发过的一个电商购物平台的架构流程和一些技术说明;今天将详细总结一下在项目中用到的各个架构技术的环境部署和细节,希望能够帮到大家,如有
阅读全文
NET对象的跨应用程序域
摘要:NET对象的跨应用程序域 转眼就到了元宵节,匆匆忙忙的脚步是我们在为生活奋斗的写照,新的一年,我们应该努力让自己有不一样的生活和追求。生命不息,奋斗不止。在上篇博文中主要介绍了.NET的AppDomain的相关信息,在本篇博文中将会主要说明.NET程序集、对象代理,以及对象的封送原理。 一.程序集解
阅读全文
性能流程
摘要:性能优化之算法和流程控制 循环处理是最常见的编程模式之一,也是提升性能必须关注的要点之一。 常见的优化方案有: ①JavaScript的四种循环(for、do-while、while、for-in)中,for-in循环比其他几种明显要慢。由于每次迭代操作会同时搜索实例或原型属性,for-in循环的每
阅读全文
计算密集型
摘要:计算密集型分布式内存存储和运算平台架构 避嫌声明:所有图文都是根据自己的理解原创,且已离开这家公司三年以上,不存在保密协议,写此文只是用来分享知识、探究不足。 牢骚:本来想弄个ppt交互展示的,不过我的js权限还没批。。。 1. 相关概念 1.1 内存数据库 关系型数据库处理永久、稳定的数据,内存数
阅读全文
DDD设计一个电商网站
摘要:DDD设计一个电商网站(十一)—— 最后的准备 阅读目录 前言 准备 实现 结语 一、前言 最近实在太忙,上周停更了一周。按流程一步一步走到现在,到达了整个下单流程的最后一公里——结算页的处理。从整个流程来看,这里需要用户填写的信息是最多的,那么在后端的设计中如何考虑到业务边界的划分,和相互之间的交
阅读全文