摘要:
背景说明 不得不从当前所处的行业 - 共享单车说起。共享单车目前一般分为C端,B端,G端三个方向。 C端面对的是普通用户,主要针对订单、营销、增长、会员体系等。是直接的收入部门,用户量大,逻辑链路相对较短。所以对于系统架构的稳定性,质量要求较高,发现和暴露问题也比较快。 G端面对的是各地政府,主要针 阅读全文
摘要:
BLM的概念 BLM(Business Leadership Model)是华为2006年花3000万从IBM引进的模型。 华为导入BLM的初衷是为了统一华为中高层管理者的战略思维方法和框架,并提升这些人的领导力,因为管理者的领导力就是制定战略规划并推动战略执行的过程中逐步培养起来的。华为在使用这套 阅读全文
摘要:
整理多种中间件,横向对比分布式相关的特性,关注高可用、负载均衡、故障恢复等不同中间件的实现方式。主要包含Redis、Kafka、RabbitMQ、RocketMQ、Elasticsearch、MongoDB。 Redis 当前版本6.0.5(2020-6-28) 集群架构中,Redis支持主从,哨兵 阅读全文
摘要:
Kafka的架构 包括Kafka的基本组成,Kafka的拓扑结构以及Kafka的内部通信协议。Kafka内部的通信协议是建立在Kafka的拓扑结构之上,而Kafka的拓扑结构是由Kafka的基本模块所组成的。 AK RELEASE 2.5.0 APRIL 15, 2020 Kafka的基本组成 Ka 阅读全文
摘要:
redis 和 memcached 的区别 redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供 list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。 Redis支持数据的持久化,可以将内存 阅读全文
摘要:
RabbitMQ是采用Erlang语言实现AMQP(Advanced Message Queuing Protocol,高级消息队列协议)。 RabbitMQ的具体特定包括下面几点: 可靠性:有持久化、传输确认以及发布确认等机制保证可靠性 灵活的路由:在消息进入队列之前,通过交换器来路由消息。典型的 阅读全文
摘要:
Spring现在已经是一个庞大的框架集合。Spring 核心库的官方文档是时刻都值得参考的。 Spring整体架构 分为以下几部分: Core Container 包含有Core、Beans、Context、Expression Language。 Core是基础模块。 Beans包含访问配置文件、 阅读全文
摘要:
[TOC] 内部锁 synchronized块有两个部分:锁对象的引用以及保护的代码块。 方法的锁是方法所在的对象本身,静态方法的锁是Class对象。 每个java对象都可以隐式的作为同步的锁的角色:这些内置的锁被称为内部锁(intrinsic locks)或者监视器锁(monitor locks) 阅读全文
摘要:
[TOC] Schema与数据类型优化 选择优化的数据类型 有几个简单的原则: 更小的通常更好 一般情况下使用可以正确存储数据的最小数据类型。 简单的更好 例如整型比字符操作代价更低。应当使用Mysql的日期类型而不是字符串,应当用整型存储IP地址 尽量避免NULL 查询中如果包含NULL的列,对于 阅读全文
摘要:
[TOC] 背景 之前整理过一篇,基于(SpringCloud+Junit5+Mockito+DataMocker)的框架整理的单元测试。当时的项目是一个编排层的服务项目,所以没有涉及到数据库或者其他中间件的复杂问题。而且是项目刚开始,代码环境不复杂,当时的架构基本上能够满足需求。 最近在一个较老项 阅读全文