​现在,很多企业的高层领导喜欢建数据仪表盘或者管理驾驶舱,甚至用巨大无比的显示屏阵列来展示各种关键业务指标KPI,那成功设计一个数据仪表盘需要如何做?又需要注意什么问题呢? 数据仪表盘是数据可视化的一种体现,是指将数据以视觉形式来呈现,如图表或地图,以帮助需要的人了解这些数据的意义 数据仪表盘的展示大多有一个特定的主题或是分类.从战略的角度而言,自上而下大致归纳为三种:一种是战略性仪表盘,一种是分析型仪表盘,还有一种是操作型仪表盘.根据种类的不同,数据仪表盘的设计及展示也大不相同.在规划之前需要…
1 设计思路 为了设计一套具有较强可扩展性的用户认证管理,需要建立用户.角色和权限等数据库表,并且建立之间的关系,具体实现如下. 1.1 用户 用户仅仅是纯粹的用户,用来记录用户相关信息,如用户名.密码等,权限是被分离出去了的.用户(User)要拥有对某种资源的权限,必须通过角色(Role)去关联. 用户通常具有以下属性: ü         编号,在系统中唯一. ü         名称,在系统中唯一. ü         用户口令. ü         注释,描述用户或角色的信息. 1.2…
26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务 l 重点概念:文件切块,副本存放,元数据 26.1 HDFS使用 1.查看集群状态 命令:   hdfs  dfsadmin –report 可以看出,集群共有3个datanode可用 也可打开web控制台查看HDFS集群…
一,我们先搞懂什么是orm? ORM:对象关系映射(Object Relational Mapping,简称ORM),目的是想像操作对象一样操作数据库.因为数据库不是面向对象的,所以需要编程进行映射. 二,那为什么需要ORM呢? 1,个人理解,在以前的时候,几乎大家都接触过SqlHepler,百度上也有很多博客分享SqlHeple帮助类,而这个就是为了很多不想操作数据库的开发者提供帮助,然而数据库帮助类的进阶就是ORM,原理就是想像操作对象一样操作数据库,达到方便开发者开发业务 三,那开发一个属…
描述:MVC数据验证使用小结 内容:display,Required,stringLength,Remote,compare,RegularExpression 本人最近在公司用mvc做了一个修改密码的功能,使用的是mvc数据验证,现将使用心得分享给大家 首先,我们先分析一下,如果要实现密码修改功能,我们需要做哪些工作.先从页面说起吧,前台页面起码需要三个密码框吧,分别表示原始密码,新密码,重复新密码,最后再加一个按钮,这样一个页面的基本元素就构造完毕了 其次,我们需要对添加的数据进行验证,包括…
前言:“我们有一个订单列表,希望能够根据当前登陆的不同用户看到不同类型的订单数据”.“我们希望不同的用户能看到不同时间段的扫描报表数据”.“我们系统需要不同用户查看不同的生产报表列”.诸如此类,最近经常收到项目上面的客户提出的这种问题,即所谓的“数据权限”,经过开会讨论决定:在目前的开发框架上面搭建一套通用的数据权限功能. 本文原创地址:http://www.cnblogs.com/landeanfen/p/7760803.html 一.大话权限模块 有了上面的引言,自然而然就引出了今天需要和大…
一.HDFS 的设计思路 1)思路 切分数据,并进行多副本存储: 2)如果文件只以多副本进行存储,而不进行切分,会有什么问题 缺点 不管文件多大,都存储在一个节点上,在进行数据处理的时候很难进行并行处理,节点可能成为网络瓶颈,很难进行大数据的处理: 存储负载很难均衡,每个节点的利用率很低: 二.HDFS 的设计目标 Hadoop Distributed File System(HDFS):源于Google 的 GFS 论文: 设计目标 分布式存储:根据需要,水平横向增加节点: 运行在普通廉价的硬…
一.背景: 随着互联网的发展.互联网用户的增加,互联网中的数据也急剧膨胀.每天产生的数据量数以万计,本地文件系统和单机CPU已无法满足存储和计算要求.Hadoop分布式文件系统(HDFS)是海量数据存储的重要技术,它将数据存储在多个从节点上,对这些节点的硬件资源进行统一管理与分配,并向客户端提供文件系统访问接口,解决了本地文件系统在文件大小.文件数量.打开文件数目等的限制问题.海量数据存储系统的数据都是通过分布式文件系统存储在各个节点上.通过分布式文件系统,海量数据存储系统可以可靠地存储PB级以…
TYPESDK 服务端设计思路与架构之一:应用场景分析 作为一个渠道SDK统一接入框架,TYPESDK从一开始,所面对的需求场景就是多款游戏,通过一个统一的SDK服务端,能够同时接入几十个甚至几百个各种渠道的SDK.而且这些渠道接口的具体接入字段和接入逻辑,每个月以至每周,都可能发生或大或小的变动.在这样一个复杂的应用场景下,我们应该如何设计一个足够强大而又足够灵活的SDK服务端呢? 首先我们需要厘清,在整个应用场景中,TYPESDK所处的位置,以及它所需要实现的核心功能. 图1 如图1所示,T…
最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍.EventStore是在Event Sourcing(下面简称ES)模式中,用于存储事件用的.从DDD的角度来说,每个聚合根在自己的状态发生变化时都会产生一个或多个领域事件,我们需要把这些事件持久化起来.然后当我们需要恢复聚合根的最新状态到内存时,可以通过ES这种技术,从EventS…
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 在真实项目中,往往GIS服务数据源被其他多个信息中心或者第三方公司所掌控,当需要快速搭建一套能够对所有GIS数据,根据权限不同.需求不同.而进行展示的系统.为了避免在代码层面上过多的定制化开发,我们需要能提出一种可以整合管理多源矢量服务并进行权限控制的架构. 目前商业GIS软件中,Esri公司给出了其Portal产品,可以对arcgis Server发布的各矢…
https://www.qcloud.com/community/article/222 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术,并思考技术演变,专注于高并发业务架构的设计与性能优化.下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型.数据结构和内存管理.持久化和多机协作四个角度对redis的设计思路进行了分析,若有不正确之处,希望各路大神指出. Redis是业界普遍应用的缓存组件,研究一个组件框架,最直观的办…
设计思路 利用YYCache来进行操作,实质操作分为了内存缓存操作(YYMemoryCache)和硬盘缓存操作(YYDiskCache).内存缓存设计一般是在内存中开辟一个空间用以保存请求的数据(一般使用字典操作).硬盘缓存设计即是将文件保存至本地,这种保存分为小文件保存和大文件保存,对于小文件保存使用数据库操作性能效率相对较高,对于大文件则使用直接存放.YYDiskCache为线程安全的类,其操作是基于YYKVStorage(线程不安全的类)的操作.以下为大致源码分析 主类YYCache 必须…
2016-05-08 15:24:03 Retreofit毫无疑问是一个优美的开源框架,有轻量级.耦合性低.扩展性好.灵活性高的特点,那么Retrofit的设计者们到底是怎么样做到这些的呢?我希望能够通过逆推的方式,探究一下Retrofit设计者们的设计思路和实现方案. 1. 什么是Retrofit 如其官网所说,“Retrofit,A type-safe HTTP client for Android and Java”. 2. 用户群 基于Retrofit自身的定位,它的用户群应该是需要Ht…
项目开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架中消息队列的设计思路,本文介绍一下enode框架中关系消息的重试机制的设计思路. 对于一个EDA架构为基础的框架,核心就是消息驱动,然后基于最终一致性的原则.所以,非常重要的一点是,如果消息一次执行不成功,那该怎么办?我能想到的对策就是消息的重试.我发现,这篇文章比较难写,因为感觉要把复杂的事情清晰的表达出来,感觉确实不容易.说到重试,那什么是消息的重试呢?怎么重试呢?我这里…
开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架内部的整体实现思路,用到了staged event-driven architecture的思想.通过前一篇文章,我们知道了enode内部有两种队列:command queue.event queue:用户发送的command会进入command queue排队,domain model产生的domain event会进入event queue,然后等待被dispatch到所有的…
大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著   ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 16开 编辑推荐 l  一书在手,架构无忧 l  三十位一线架构师真知实践 l  百位顶级架构师献计献策 l  十万文字尽显架构精华 内容提要 <大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的 讨论.<大数据时代的IT架构设计…
版权声明:本文由宋增宽原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/222 来源:腾云阁 https://www.qcloud.com/community 宋增宽,腾讯工程师,16年毕业加入腾讯,从事海量服务后台设计与研发工作,现在负责QQ群后台等项目,喜欢研究技术,并思考技术演变,专注于高并发业务架构的设计与性能优化. 下半年利用空余时间研究和分析了部分Redis源码,本文从网络模型.数据结构和内存管理.持久化和多机…
<大数据时代的IT架构设计>以大数据时代为背景,邀请著名企业中的一线架构师,结合工作中的实际案例展开与架构相关的讨论.<大数据时代的IT架构设计>作者来自互联网.教育.传统行业等领域,分享的案例极其实用,代表了该领域较先进的架构.无论你就职于哪一行业都可以从本书中找到相关的架构经验,对您在今后的架构设计工作中都能起到很好的帮助作用. 本文出自 "李晨光原创技术博客" 博客,请务必保留此出处http://chenguang.blog.51cto.com/35094…
距离上一篇关于Web API的文章(如何实现RESTful Web API的身份验证)有好些时间了,在那篇文章中提到的方法是非常简单而有效的,我在实际的项目中就这么用了,代码经过一段时间的磨合,已经很稳定了,所以我打算写篇总结,并在最近这段时间里提供一个ASP.net Web API的综合例子. 对四个HTTP方法的理解 众所周知,HTTP有四个方法,GET.POST.PUT和DELETE,分别对应数据库的SELECT.INSERT.UPDATE和DELETE,一般的教程说到这里也就Over了,…
HTTP 协议是互联网的基础协议,也是网页开发的必备知识,最新版本 HTTP/2 更是让它成为技术热点. 本文介绍 HTTP 协议的历史演变和设计思路. 一.HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 最早版本是1991年发布的0.9版.该版本极其简单,只有一个命令GET. ? 1 GET /index.html 上面命令表示,TCP 连接(connection)建立后,客户端…
原文路径:http://herman-liu76.iteye.com/blog/2308563  Druid是阿里巴巴公司的数据库连接池工具,昨天突然想学习一下阿里的druid源码,于是下载下来分析了一下.也就2个多小时粗略看了一下,中间有些知识点没见过,不懂,现查BAIDU学习.简单总结一下,边总结边继续看代码,估计错误不少,欢迎指正! 在自己看之前,想找找druid源码分析,居然在BAIDU上搜索不到任何信息,只是介绍如何配置,只能自己看过来了.这里的介绍,细节不说了,着眼于大方向与设计思路…
iOS 开发中总会用到各种缓存,最初我是用的一些开源的缓存库,但到总觉得缺少某些功能,或某些 API 设计的不够好用.YYCache (https://github.com/ibireme/YYCache) 是我新造的一个轮子,下面说一下这个轮子的设计思路. 内存缓存 通常一个缓存是由内存缓存和磁盘缓存组成,内存缓存提供容量小但高速的存取功能,磁盘缓存提供大容量但低速的持久化存储.相对于磁盘缓存来说,内存缓存的设计要更简单些,下面是我调查的一些常见的内存缓存. NSCache 是苹果提供的一个简…
zygote服务是Android启动和服务APK的核心服务,每个APK都是通过zygote启动,今日阅读它的源码学习到一个不错的设计思路. 首先看看一个APK通过zygote的启动流程: 按照一般的设计思路,既然每个APK都是由单独的dalvik启动和运行,那么直接通过dalvikvm启动main不就完了吗?为啥还要搞得这么长一串流程.其实关键就在于这个Fork.我们看看对于linux启动一个进程的一般流程: 内核创建一个进程数据结构 内核从指定的程序文件读取程序代码并装载到设定的内存地址 内核…
EventStore的设计思路 最近打算用C#实现一个基于文件的EventStore. 什么是EventStore 关于什么是EventStore,如果还不清楚的朋友可以去了解下CQRS/Event Sourcing这种架构,我博客中也有大量介绍.EventStore是在Event Sourcing(下面简称ES)模式中,用于存储事件用的.从DDD的角度来说,每个聚合根在自己的状态发生变化时都会产生一个或多个领域事件,我们需要把这些事件持久化起来.然后当我们需要恢复聚合根的最新状态到内存时,可以…
enode框架step by step之消息队列的设计思路 enode框架系列step by step文章系列索引: enode框架step by step之开篇 enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现 enode框架step by step之saga的思想与实现 enode框架step by step之框架的总体目标 enode框架step by step之框架的物理部署思路 enode框架step by step之Command Service…
概要 由于VHDL编程实现数字电路具有很高的灵活性,为多种不同的思路编写实现同一种功能提供了可能.这些不同的设计思路,在耗费资源,可靠性,速度上也有很大的差异,往往需要我们根据实际需求和资源条件选择适合的设计思路. 正文 本文以十进制1k计数器作为例子,阐述不同的思路最终形成的数字电路的差异性.该十进制的需求输入输出信号如图 作为硬件设计的初学者,可能还会利用软件设计的思路来编写VHDL代码.假设我们在一个高级语言(相对应机器语言)的环境下,实现一个这样的计数器对于程序员来说,最简单不过了.维护…
.net 平台下,实现通讯处理有很多方法(见下表),各有利弊: 序号 实现方式 特点 1 WCF 优点:封装好,方便.缺点:难学,不跨平台 2 RocketMQ,SuperSocket等中间件 优点:轻便 缺点:用户群体少 3 直接使用winsocket 优点:全部在自己掌控之下,协议灵活.缺点:实现时间长,易于出错. 本人开发socket通讯多年了,一直干着"重复发明轮子"工作,这种工作方式效率低下,容易出错! 重复的事情做多了,也会出现"灵光"!何不自己设计一套…
原文 前言 随着用户的需求越来越多,对App的用户体验也变的要求越来越高.为了更好的应对各种需求,开发人员从软件工程的角度,将App架构由原来简单的MVC变成MVVM,VIPER等复杂架构.更换适合业务的架构,是为了后期能更好的维护项目. 但是用户依旧不满意,继续对开发人员提出了更多更高的要求,不仅需要高质量的用户体验,还要求快速迭代,最好一天出一个新功能,而且用户还要求不更新就能体验到新功能.为了满足用户需求,于是开发人员就用H5,ReactNative,Weex等技术对已有的项目进行改造.项…
Stream的概念定义   官方文档是永远的圣经~     表格内容来自https://docs.oracle.com/javase/8/docs/api/   Package java.util.stream  一节部分原文内容的翻译   int sum = widgets.stream() .filter(b -> b.getColor() == RED) .mapToInt(b -> b.getWeight()) .sum();   流操作被划分为中间和终端操作,并组合成流管道. 一条S…