为复杂混沌的微服务生产环境设计韧性系统 (insights.thoughtworks.cn)

【简介】

在复杂和混沌的系统中,人、事、物之间的相互作用大多都是非线性的,初始条件千差万别。

点击查看全文 >>

@ThoughtWorks 2019-09-12 15:32分享 / 0个评论
要不要再学学下面的文章?
JDK的sql设计不合理导致的驱动类初始化死锁问题 (club.perfma.com)
当我们一个系统既需要mysql驱动,也需要oracle驱动的时候,在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一个驱动实例要走的逻辑(jdk1.6下),不过这篇文章是使用我们生产环境的一个系统的线程dump和内存dump为基础进行分析展开的。
by @PerfMa社区 2020-03-31 10:32 分享 查看详情
使用DDD指导业务设计的一点思考 (insights.thoughtworks.cn)
领域驱动设计(DDD) 是 Eric Evans 提出的一种软件设计方法和思想,主要解决业务系统的设计和建模。DDD 有大量难以理解的概念,尤其是翻译的原因,某些词汇非常生涩,例如:模型、限界上下文、聚合、实体、值对象等。

实际上 DDD 的概念和逻辑本身并不复杂,很多概念和名词是为了解决一些特定的问题才引入的,并和面向对象思想兼容,可以说 DDD 也是面向对象思想中的一个子集。如果遵从奥卡姆剃刀的原则,“如无必要,勿增实体”,我们先把 DDD 这些概念丢开,从一个案例出发,在必要的时候将这些概念引入。
by @ThoughtWorks 2020-03-23 18:37 分享 查看详情
Android 系统开发源码环境搭建 (androidperformance.com)
不管是 Android App 开发工程师还是 Android 系统开发工程师,对 Android 系统有一定的了解是很有必要的,正好我这几天在家里搭建了个开发环境,把过程分享出来,有需要的人可以看一下。

大概的步骤包含下面几个:

1、安装 Ubuntu 系统;
2、配置 Ubuntu 系统;
3、安装必备的软件;
4、配置 VPN (可选);
5、下载 AOSP 代码;
6、配置编译环境并编译 Pixel 的代码;
7、刷机;
8、修改和编译 Framework 、Service、Res;

建议准备下面的硬件,当然没有也没关系,有了更好:

1、PC 或者笔记本;
2、512GB 的 SSD;
3、Pixel 手机一台;
by @技术头条 2020-02-11 10:28 分享 查看详情
通过 MicroK8s 搭建你的 K8s 环境 (soulteary.com)
去年的时候,我曾经写过如何[简单搭建 Kubernetes 集群],当时使用的是官方的工具箱:Kubeadm,这个方案对于只是想试试的同学来说,还是过于复杂。这里介绍一款简单的工具:MicroK8s。官方给这款工具的人设是“无需运维的 Kubernetes ,服务于工作站、物联网。”最大的价值在于可以快速搭建单节点的容器编排系统,用于生产试验。[官方网站]里的文档有简单介绍如何安装使用,但是却未曾考虑安装过程存在网络问题的神州大陆的同学们,本文将结合这种情况聊聊。
by @技术头条 2020-02-01 13:43 分享 查看详情
数据库有哪些设计技巧 (mp.weixin.qq.com)
1. 原始单据与实体之间的关系

可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。
by @code小生 2019-12-25 12:57 分享 查看详情
数据库有哪些设计技巧 (mp.weixin.qq.com)
可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。
by @code小生 2019-12-12 18:42 分享 查看详情
Android开发架构设计演变 (mp.weixin.qq.com)
软件架构设计是个不老的话题,随着业务驱动,技术展现形式随之变化,从当初的“堆”模式开发到后来有点模型的形式(功能分包但无模式),再到后来 MVC 的出现,结束了“堆”模式,再到后来 MVP 模式出现,一部分开发者积极尝试,或重构,或运用,得到了很多的认可,后面又出现了双向绑定架构— MVVM,算是继 MVP 之后的又一经典架构;当然 Android 官方也推荐了架构:AAC(Android Architecture Components),后面,还会继续出其他的架构...
by @code小生 2019-12-12 18:39 分享 查看详情
Flink 实战:如何解决生产环境中的技术难题? (yq.aliyun.com)
Apache Flink 作为业界公认为最好的流计算引擎,不仅仅局限于做流处理,而是一套兼具流、批、机器学习等多种计算功能的大数据引擎,以其高吞吐低延时的优异实时计算能力、支持海量数据的亚秒级快速响应帮助企业和开发者实现数据算力升级,并成为阿里、腾讯、滴滴、美团、字节跳动、Netflix、Lyft 等国内外知名公司建设实时计算平台的首选。
by @可耐芊小仙女 2019-11-28 16:51 分享 查看详情
基于 Flink 的实时数仓生产实践 (yq.aliyun.com)
数据仓库的建设是“数据智能”必不可少的一环,也是大规模数据应用中必然面临的挑战。在智能商业中,数据的结果代表了用户反馈、获取数据的及时性尤为重要。快速获取数据反馈能够帮助公司更快地做出决策,更好地进行产品迭代,实时数仓在这一过程中起到了不可替代的作用。
by @可耐芊小仙女 2019-11-28 16:49 分享 查看详情
dubbo-go 中的 TPS Limit 设计与实现 (yq.aliyun.com)
Apache Dubbo 是由阿里开源的一个RPC框架,除了基本的 RPC 功能以外,还提供了一整套的服务治理相关功能。目前它已经是 Apache 基金会下的顶级项目。而 dubbo-go 则是 Dubbo 的 Go 语言实现。最近在 dubbo-go 的 todo list 上发现,它还没有实现 TPS Limit 的模块,于是就抽空实现了这个部分。
by @可耐芊小仙女 2019-11-27 15:52 分享 查看详情