分布式系统手记
无人境域
开发技术工具型软件制造匠人
展开
-
【独有企格】--3--企业服务总线框架系统
设计目标:为业务系统提供基础服务平台,基础服务中包括安全验证、系统监控与追踪、功能性组件服务等。提供高可用、安全、可快速扩展的基础服务体系。设计描述:组件构成:(1)业务服务集成发布系统(2)安全组件(3)监控组件(4)日志组件(5)消息队列组件(6)缓存组件业务描述:通过远程配置系统提供的配置文件形成对应的组件服务实例,并提供安全、运维监控、日志追踪服务、消息队列服务、分布式原创 2018-05-17 15:58:24 · 360 阅读 · 0 评论 -
【无中生有】---15---分布式业务系统原子性控制
在电商系统常见的一个业务场景就是对商品数量的控制,十件商品不能卖给十一个用户,作为分布式系统对商品总量的计算就需要原子性控制。 锁粒度时间越少的系统能提供的系统能够并发容量也越大,数据的正确性控制也越好,所以基于远程服务的锁性能一定没有本地锁的好,原子性的控制也更差。但是本地化的原子性控制存在一个明显的短板,就是一台机器的容量是有限的,如果分布式系统基于一台服务器做原子性控制,那么系统性能的原创 2016-09-09 19:10:21 · 729 阅读 · 0 评论 -
【无中生有】---1---技术选型
在构建一个系统时,需要考虑的根本性因素就是所使用的技术的成本。而相关的成本因素都可以通过一定设定条件转换为金钱成本,包括时间、人力等几个主要成本因素。 不同的开发主体或者系统应用主体对不同成本因素的关注点不同的。比如个人开发者一般比较关注金钱成本,倾向于使用能节省金钱的方案;而组织机构在预算充足情况下更倾向于使用能节省时间成本的方案。这只是技术选型考虑的大致两个成本选择倾向原创 2015-04-02 06:06:42 · 815 阅读 · 0 评论 -
【无中生有】---2---数据库设计-1
任何一个系统目前都需要人的参与,电商系统需要客户,企业系统需要雇员,无人值守的系统也需要操作员。所以在业务对象中,人是一个必要的设计对象,不管是不是核心业务对象Person表字段名类型作用Id整型人数据idName字符用户姓名Sex整型性别Birthday日期出生日期原创 2015-04-10 14:59:31 · 763 阅读 · 0 评论 -
【无中生有】---4----数据库设计-3
社会结构组织化就决定了业务对象基于人还需要另外的一些人的集合的对象。常用的就是公司、部门、职位由于表所面对对象的抽象性程度不同,有些具体化的数据,比如公司结构某个岗位的人数统计字段,不适合放在抽象程度高的表中Company表字段数据类型作用CompanyName字符公司名称CompanyLogo字符公司lo原创 2015-04-10 15:51:26 · 667 阅读 · 0 评论 -
【无中生有】---3---数据库设计-2
和人相关的一个很紧密的部分便是权限模块,这一块的数据库和功能组件设计完全能够独立出来讲,有人还专攻这个不过为了保持一致,接着讨论权限表的设计原创 2015-04-13 11:08:07 · 731 阅读 · 0 评论 -
【无中生有】---5---分布式数据访问层设计思路
【无中生有】----分布式数据访问层----5原创 2015-04-13 15:14:59 · 734 阅读 · 0 评论 -
【无中生有】---16---大数据系统搭建
大数据平台的搭建不仅仅是对于开源软件系统的应用那么简单,其还涉及了企业开发流程的变化以及巨额的资金与人力投入。原创 2017-07-03 23:35:44 · 914 阅读 · 0 评论 -
【无中生有】---17---基于大数据平台的计算开发模式
基于hadoop平台的计算开发模式原创 2017-08-15 12:06:11 · 400 阅读 · 0 评论 -
【独有企格】--6--多语言平台分布式锁框架
设计目标:支持多语言平台的分布式锁 支持redis分布式锁启用与关闭 支持依据redis的key进行自动请求队列切分,并且可以启用与关闭(需要多核CPU支持) 支持队列容量的动态调整 支持缓存更新后关系型数据库的数据回写 支持数据均等切分场景下的请求路由 支持基于持久化日志的数据导出设计描述:组件构成:内存队列 队列数据日志持久化功能设计思路:实现项目:地址:...原创 2018-08-28 22:16:26 · 359 阅读 · 0 评论 -
【独有企格】--5--跨平台RPC框架
设计目标:支持跨平台的RPC调用 服务提供者自动注册服务元数据 服务消费者依据服务元素据根据连接均衡原则选取服务提供者 服务消费者在提供者不可用时自动切换提供者源 仅支持局域网 以小型企业应用为设计目标,考虑并发性能,服务数量规模不作为核心考量对象 面向小数据量服务接口,不支持大于100k的服务通信设计描述:组件构成:(1)服务发布端插件(2)服务消费端插件(3)RPC服务监...原创 2018-07-17 11:46:22 · 501 阅读 · 0 评论 -
【独有企格】--2--远程配置系统
设计目标:将应用程序配置集中、快捷管理,使应用程序的业务组件通过配置文件灵活变化以高效支持业务变化以及程序的更新,并实现一定程度的灰度发布。设计描述:组件构成:(1)配置管理系统(2)配置客户端程序(3)配置发布服务端业务描述:宿主程序第一次启动时首先检查配置文件是否存在,如果存在检查是否是所要求版本的配置内容,否则进行配置内容请求获取正确的配置内容。如果不存在则进行配置内容请原创 2018-05-17 15:52:16 · 222 阅读 · 0 评论 -
数据管理中心
明晰人员责任,集中管理企业数据库资源原创 2017-08-08 16:15:14 · 441 阅读 · 0 评论 -
自动化数据发布服务
基于关系型数据库,提供依靠sql语句自动生成插入、更新、删除、查询数据操作的数据服务。原创 2017-08-08 11:37:36 · 10797 阅读 · 0 评论 -
智能报表中心
实现报表模板化,无需编码即可灵活生成不同逻辑报表原创 2017-08-09 15:40:04 · 1406 阅读 · 0 评论 -
自动化数据发布服务--【2】
业务流用例设计、类设计原创 2017-08-14 17:50:04 · 431 阅读 · 0 评论 -
【无中生有】---6---系统日志记录系统存储设计
一套完整的日志审核系统有助于系统bug确定和线上快速高效的运维。但是系统日志普通情况下又很少大量的查询,但是写入量会比较大。这比较符合Cassandra的数据应用场景。而且由于Cassandra的去中心化,并且Cassandra集群增加节点的过程中可以保持原有数据不删除,而且由于是日志数据,不会有数据修改的问题,适用场景更合适了。原创 2015-04-17 10:01:55 · 915 阅读 · 0 评论 -
【无中生有】---8---分布式配置系统数据库设计
在集群里手动配置每一台服务器上的程序很明显是不明智的,劳神费力还可能出差异造成程序不一致。而且在发生配置改变的时候还需要一一去做修改,更是麻烦将配置内容的获取与载入作为一个功能插件内化到程序中,并以消息监听器的方式接收配置服务管理端发来的更改通知,移除旧的配置数据在本地生成的数据文件,然后载入新的数据文件,并加载到程序中。这样就形成数据的两处存储,一处是在服务管理端,一处是在应用程序所原创 2015-04-17 15:05:15 · 1288 阅读 · 0 评论 -
基于Cassandra的日志和分布式小文件存储系统【1】
基于log4j和Cassandra的日志业务系统1.安装log4j2.log4j配置3.Cassandra安装4.Cassandra配置利用Cassandra高性能写,而日志业务读取量少,不要求数据即可展现,查询量少,查询逻辑比较简单原创 2014-02-22 17:22:50 · 3379 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【5】
数据关联分析原创 2013-12-25 11:26:53 · 1073 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【4】
接上文:上文(3)系统编码实现原创 2013-12-13 18:12:07 · 1157 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【3】
二、基于用户分析的计算广告基于用户分析的计算广告是直接寻找广告与用户的一致性,当前用户分析主要从IP、注册资料、服务器日志、Cookie、历史数据、浏览器行为等方面切入,其代表性的广告形式为电子商务个性化推荐广告。而基于用户分析的根本目的是确定用户的兴趣以及购买行为的特点。而进行这样的分析需要一些基础性的数据,如用户兴趣分类库、购买行为模型。需要先从理论上明确用户的大致轮廓,进行数据范围的界定原创 2013-10-12 17:45:21 · 1436 阅读 · 0 评论 -
基于keepalived、redis sentinel的多实例redis集群【1】---路由以及哨兵配置
硬件机器名IP作用master192.168.0.2redis的master服务器,两个主实例slave1192.168.0.3redis的slave服务器,两个从实例slave2192.168.0.4redis的slave服务器,两个从实例route1192.168.0.5【虚拟IP:192.原创 2013-11-08 11:36:52 · 3041 阅读 · 0 评论 -
基于keepalived、redis sentinel的多实例redis集群【2】---realserver配置
配置realservervim /etc/sysctl.conf,添加内容如下: net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce =原创 2013-11-08 12:35:44 · 1471 阅读 · 0 评论 -
基于keepalived、redis sentinel的高可用redis集群
硬件机器名IP作用master192.168.0.2redis的master服务器slave1192.168.0.3redis的slave服务器slave2192.168.0.4redis的slave服务器route1192.168.0.5【虚拟IP:192.168.0.7】keepal原创 2013-10-22 14:11:35 · 5473 阅读 · 4 评论 -
基于storm和hadoop的广告系统研究【2】
文中所有实现方案全部基于storm、hadoop以及nosql等开源技术计算广告学概念:点击此处计算广告的运作系统主要包括广告算法、广告、语境、受众(用户)四个方面,针对这四个方面当下的广告形式可归纳为三类:基于文本分析、基于用户分析和基于用户参与。一、基于文本分析这种形式最常见的就是浏览的网页内容的与广告主题的匹配,比如看关于诺基亚1020自拍神器的测评文章,同时网页的广原创 2013-10-11 16:05:18 · 1320 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【1】
需要的基础概念:1.按效果付费:详细概念点击此处2.竞价排名:详细概念点击此处按照上面的两个概念的详细内容,那么系统就至少需要面对以下的问题:1.高并发,要求相应时间短2.高并发情况下广告客户金额计算正确性3.用户访问页面内容与广告的内容高匹配度解决方案: ABC序号原创 2013-10-10 17:41:00 · 1983 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【7】
广告反作弊模型基于模型的作弊特征数据挖掘作弊数据处理原创 2014-02-11 18:54:39 · 917 阅读 · 0 评论 -
基于storm和hadoop的广告系统研究【6】
实时竞价【架构、实现】点击付费计算【架构、实现】原创 2014-02-11 18:39:42 · 903 阅读 · 0 评论 -
【无中生有】---9---分布式缓存实现
redis2.8和3.0的使用存在明显差异原创 2015-04-20 17:26:15 · 732 阅读 · 0 评论 -
【无中生有】---10---API接口日志存储设计与实现设计
使用ESB架构有一个细节点,就是关于API日志的设计虽然可以通过消息通知模式来统一接口间的相互调用,但是最终还需要各个服务API来真正承接服务。而对API进行监控既有利于对系统整体行为进行记录,也能对系统的性能进行分析排查系统的性能瓶颈点。存储仍然使用Cassandra集群请求记录ESBAPILog序号字段名类型备注1idst原创 2015-05-26 11:23:47 · 4902 阅读 · 0 评论 -
【无中生有】---7---分布式消息队列
【无中生有】----分布式消息总线数据库设计----10原创 2015-06-25 16:39:29 · 857 阅读 · 0 评论 -
【无中生有】---11---服务器集群部署
分布式系统层次设计与部署方案原创 2015-06-25 21:55:01 · 844 阅读 · 0 评论 -
【无中生有】---12---运维与监控
系统运维和监控原创 2015-06-26 01:11:19 · 793 阅读 · 0 评论 -
【无中生有】---13---系统发布
当系统功能开发完成之后,发布就是最后一步了。 手工编译部署存在以下的问题:代码版本可能不是所需要的版本引用库文件版本错误部署配置不统一部署时间花费时间长,不能满足产品部署即时性需求集群规模较大可能无法完成部署解决以上问题则可以通过如下方案解决:部署编译服务器,制定代码版本获取代码进行编译将库文件纳入代码版本库管理,在编译服务器在编译前获取制定库文件分布式配置数据库设计,实现配置管原创 2015-06-29 08:54:25 · 658 阅读 · 0 评论 -
【无中生有】---14---用户行为监控系统嵌入
前后端追踪代码结合及时发现用户对产品功能使用率的变化原创 2015-07-01 21:25:22 · 705 阅读 · 0 评论 -
hbase与storm的冲突
在原来的hadoop集群上安装hbase,由于使用的现有的zookeeper,配置文件写错了,就修改了配置文件,停止服务。结果发现有问题了,集群上安装的还有storm的集群,而且使用的也是同一套zookeeper。在hbase服务停止的时候storm的进程虽然也在运行,但是从storm的webUI界面上监控不到几个节点了。而监控机器性能的ganglia也有两个节点也是出现同样的问题,g原创 2013-09-22 15:45:28 · 2435 阅读 · 0 评论