分布式系统构建手册
如何从无到有的一步步构建一个包括了开发、部署、运维监控完整体系的分布式系统
无人境域
开发技术工具型软件制造匠人
展开
-
【无中生有】---16---大数据系统搭建
大数据平台的搭建不仅仅是对于开源软件系统的应用那么简单,其还涉及了企业开发流程的变化以及巨额的资金与人力投入。原创 2017-07-03 23:35:44 · 905 阅读 · 0 评论 -
【无中生有】---15---分布式业务系统原子性控制
在电商系统常见的一个业务场景就是对商品数量的控制,十件商品不能卖给十一个用户,作为分布式系统对商品总量的计算就需要原子性控制。 锁粒度时间越少的系统能提供的系统能够并发容量也越大,数据的正确性控制也越好,所以基于远程服务的锁性能一定没有本地锁的好,原子性的控制也更差。但是本地化的原子性控制存在一个明显的短板,就是一台机器的容量是有限的,如果分布式系统基于一台服务器做原子性控制,那么系统性能的原创 2016-09-09 19:10:21 · 721 阅读 · 0 评论 -
【无中生有】---14---用户行为监控系统嵌入
前后端追踪代码结合及时发现用户对产品功能使用率的变化原创 2015-07-01 21:25:22 · 694 阅读 · 0 评论 -
【无中生有】---13---系统发布
当系统功能开发完成之后,发布就是最后一步了。 手工编译部署存在以下的问题:代码版本可能不是所需要的版本引用库文件版本错误部署配置不统一部署时间花费时间长,不能满足产品部署即时性需求集群规模较大可能无法完成部署解决以上问题则可以通过如下方案解决:部署编译服务器,制定代码版本获取代码进行编译将库文件纳入代码版本库管理,在编译服务器在编译前获取制定库文件分布式配置数据库设计,实现配置管原创 2015-06-29 08:54:25 · 649 阅读 · 0 评论 -
【无中生有】---12---运维与监控
系统运维和监控原创 2015-06-26 01:11:19 · 785 阅读 · 0 评论 -
【无中生有】---11---服务器集群部署
分布式系统层次设计与部署方案原创 2015-06-25 21:55:01 · 838 阅读 · 0 评论 -
【无中生有】---10---API接口日志存储设计与实现设计
使用ESB架构有一个细节点,就是关于API日志的设计虽然可以通过消息通知模式来统一接口间的相互调用,但是最终还需要各个服务API来真正承接服务。而对API进行监控既有利于对系统整体行为进行记录,也能对系统的性能进行分析排查系统的性能瓶颈点。存储仍然使用Cassandra集群请求记录ESBAPILog序号字段名类型备注1idst原创 2015-05-26 11:23:47 · 4852 阅读 · 0 评论 -
【无中生有】---9---分布式缓存实现
redis2.8和3.0的使用存在明显差异原创 2015-04-20 17:26:15 · 726 阅读 · 0 评论 -
【无中生有】---8---分布式配置系统数据库设计
在集群里手动配置每一台服务器上的程序很明显是不明智的,劳神费力还可能出差异造成程序不一致。而且在发生配置改变的时候还需要一一去做修改,更是麻烦将配置内容的获取与载入作为一个功能插件内化到程序中,并以消息监听器的方式接收配置服务管理端发来的更改通知,移除旧的配置数据在本地生成的数据文件,然后载入新的数据文件,并加载到程序中。这样就形成数据的两处存储,一处是在服务管理端,一处是在应用程序所原创 2015-04-17 15:05:15 · 1257 阅读 · 0 评论 -
【无中生有】---7---分布式消息队列
【无中生有】----分布式消息总线数据库设计----10原创 2015-06-25 16:39:29 · 852 阅读 · 0 评论 -
【无中生有】---6---系统日志记录系统存储设计
一套完整的日志审核系统有助于系统bug确定和线上快速高效的运维。但是系统日志普通情况下又很少大量的查询,但是写入量会比较大。这比较符合Cassandra的数据应用场景。而且由于Cassandra的去中心化,并且Cassandra集群增加节点的过程中可以保持原有数据不删除,而且由于是日志数据,不会有数据修改的问题,适用场景更合适了。原创 2015-04-17 10:01:55 · 890 阅读 · 0 评论 -
【无中生有】---5---分布式数据访问层设计思路
【无中生有】----分布式数据访问层----5原创 2015-04-13 15:14:59 · 730 阅读 · 0 评论 -
【无中生有】---4----数据库设计-3
社会结构组织化就决定了业务对象基于人还需要另外的一些人的集合的对象。常用的就是公司、部门、职位由于表所面对对象的抽象性程度不同,有些具体化的数据,比如公司结构某个岗位的人数统计字段,不适合放在抽象程度高的表中Company表字段数据类型作用CompanyName字符公司名称CompanyLogo字符公司lo原创 2015-04-10 15:51:26 · 662 阅读 · 0 评论 -
【无中生有】---3---数据库设计-2
和人相关的一个很紧密的部分便是权限模块,这一块的数据库和功能组件设计完全能够独立出来讲,有人还专攻这个不过为了保持一致,接着讨论权限表的设计原创 2015-04-13 11:08:07 · 725 阅读 · 0 评论 -
【无中生有】---2---数据库设计-1
任何一个系统目前都需要人的参与,电商系统需要客户,企业系统需要雇员,无人值守的系统也需要操作员。所以在业务对象中,人是一个必要的设计对象,不管是不是核心业务对象Person表字段名类型作用Id整型人数据idName字符用户姓名Sex整型性别Birthday日期出生日期原创 2015-04-10 14:59:31 · 757 阅读 · 0 评论 -
【无中生有】---1---技术选型
在构建一个系统时,需要考虑的根本性因素就是所使用的技术的成本。而相关的成本因素都可以通过一定设定条件转换为金钱成本,包括时间、人力等几个主要成本因素。 不同的开发主体或者系统应用主体对不同成本因素的关注点不同的。比如个人开发者一般比较关注金钱成本,倾向于使用能节省金钱的方案;而组织机构在预算充足情况下更倾向于使用能节省时间成本的方案。这只是技术选型考虑的大致两个成本选择倾向原创 2015-04-02 06:06:42 · 809 阅读 · 0 评论