自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术黄牛

从小白到技术达人,再到技术黄牛,经历10个春秋,历练了无数项目,熬过了无数不眠之夜,陪伴了c#成长,java的一统天下,终于迎来了app的曙光

  • 博客(59)
  • 资源 (3)
  • 收藏
  • 关注

原创 秒杀系统架构优化思路

一、秒杀业务为什么难做 1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息); 2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据; 3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。 例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。 又例如:12306抢票,票是有限的,库存一份,瞬时流量非...

2018-04-10 18:54:00 140

原创 到底什么时候该使用MQ?

MQ是干嘛的 消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。 使用了MQ之后,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依赖其他服务。 什么时候不使用消息总线 既然MQ是互联网分层架构中的解耦利器,那所有通讯都使用MQ岂不是很好?这是一个严重的误区,调用与被调...

2018-04-10 18:39:00 109

原创 MQ,互联网架构解耦神器

一个架构常识:当调用方需要关心执行结果,通常使用RPC调用。 ret = PassportService::userAuth(name, pass); switch(ret){ case(YES) : return YesHTML(); case(NO) : return NoHTML(); case(JUMP) : return 304HTML(): default : return ...

2018-04-10 07:41:00 102

原创 给了数据库,给了机器,为啥也扩不了容?

随着业务越来越复杂,数据量越来越大,并发量越来越大,数据库的性能越来越低。好不容易找运维申请了两台机器,让DBA部署了几个实例,想把一些业务库拆分出来,却发现拆不出来,扩不了容,尴尬! 因为数据库强关联在一起,无法通过增加数据库实例扩容,就是一个耦合的典型案例。 场景还原 有一个公共用户数据库DB_USER,里面table_user存放了通用的用户数据: table_user (uid, nam...

2018-04-09 20:54:00 114

原创 小小的公共库,大大的耦合,你痛过吗?

什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎么发现系统中的耦合? 作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什么关系?为什么需要我来配合做这个事情?”。明明不应该联动,却要被动受影响,就可能有潜在的耦合。 因为公共库,导致相互受影响,就是一个耦合的典型案例。 场景...

2018-04-09 20:53:00 71

原创 小小的IP,大大的耦合,你痛过吗?

什么是耦合? 耦合,是架构中,本来不相干的代码、模块、服务、系统因为某些原因联系在一起,各自独立性差,影响则相互影响,变动则相互变动的一种架构状态。 感官上,怎么发现系统中的耦合? 作为技术人,每每在心中骂上下游,骂兄弟部门,“这个东西跟我有什么关系?为什么需要我来配合做这个事情?”。明明不应该联动,却要被动配合,就可能有潜在的耦合。 因为IP配置,导致上下游必须联动,就是一个耦合的典型案例。 ...

2018-04-09 20:47:00 79

原创 赶集mysql军规

总是在灾难发生后,才想起容灾的重要性。 总是在吃过亏后,才记得曾经有人提醒过。 一,核心军规 不在数据库做计算,cpu计算务必移至业务层 控制单表数据量,单表记录控制在千万级 控制列数量,字段数控制在20以内 平衡范式与冗余,为提高效率可以牺牲范式设计,冗余数据 拒绝3B(big),大sql,大事务,大批量 二,字段类军规 用好数值类型 tinyint(1Byte) smallint(2Byte...

2018-04-09 20:45:00 91

原创 MySQL的or/in/union与索引优化 | 架构师之路

假设订单业务表结构为: order(oid, date, uid, status, money, time, …) 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照date查询 uid,用户ID,有普通索引,用户查询自己订单 status,订单状态,有普通索引,管理后台经常按照status查询 money/time,订单金额/时间,被查询字段,无索引 … 假设订单...

2018-04-09 20:44:00 87

原创 或许你不知道的10条SQL技巧

这几天在写索引,想到一些有意思的TIPS,希望大家有收获。 一、一些常见的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(2,3) (2)前导模糊查询不能使用索...

2018-04-09 20:43:00 93

原创 session一致性架构设计实践.

一、缘起 什么是session? 服务器为每个用户创建一个会话,存储用户的相关信息,以便多次请求能够定位到同一个上下文。 Web开发中,web-server可以自动为同一个浏览器的访问用户自动创建session,提供数据存储功能。最常见的,会把用户的登录信息、用户信息存储在session中,以保持登录状态。 什么是session一致性问题? 只要用户不重启浏览器,每次http短连接请求,理论上服...

2018-04-09 20:39:00 86

原创 从"嘿,今晚..."谈消息安全传输中的技术点

一、初级阶段:信息裸传 特点:在网络上传递明文 黑客定理一:网络上传递的数据是不安全的,属网络于黑客公共场所,能被截取 结果:传递明文无异于不穿衣服裸奔 改进方案:先加密,再在网络上传输 二、进阶阶段:传输密文 特点: 服务端和客户端先约定好加密算法,加密密钥 客户端,传输前用约定好的密钥加密 传输密文 服务端,收到消息后用约定好的密钥解密 这么传输消息安全么? 黑客定理二:客户端的代码是不安全...

2018-04-09 20:37:00 120

原创 跨公网调用的大坑与架构优化方案

第三方接口挂掉,我们的服务会受影响么? 一、缘起与大坑 很多时候,业务需要跨公网调用一个第三方服务提供的接口,为了避免每个调用方都依赖于第三方服务,往往会抽象一个服务: 解除调用方与第三方接口的耦合 当第三方的接口变动时,只有服务需要修改,而不是所有调用方均修改 此时接口调用流程是什么样的呢? 如上图1-4所述: (1)业务调用方调用内部service (2)内部service跨公网调用第三方接...

2018-04-09 20:35:00 93

原创 “配置”也有架构演进?看完深有痛感

一、缘起 随着互联网业务的越来越复杂,用户量与流量越来越大,“服务化分层”是架构演进的必由之路。 如上图:站点应用会调用服务,上游服务调用底层服务,依赖关系会变得非常复杂。 对于同一个服务,它有多个上游调用。为了保证高可用,一个底层服务往往是若干个节点形成一个集群提供服务。 如上图:用户中心服务user-service有三个节点,ip1/ip2/ip3对上游提供服务,任何一个节点当机,都不影响服...

2018-04-09 20:30:00 108

原创 TCP接入层的负载均衡、高可用、扩展性架构

一、web-server的负载均衡 互联网架构中,web-server接入一般使用nginx来做反向代理,实施负载均衡。整个架构分三层: 上游调用层,一般是browser或者APP 中间反向代理层,nginx 下游真实接入集群,web-server,常见web-server的有tomcat,apache 整个访问过程为: browser向daojia.com发起请求 DNS服务器将daojia....

2018-04-09 20:28:00 94

原创 究竟啥才是互联网架构“高并发”

一、什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。 高并发相关常用的一些指标有响应时间(Response Time),吞吐量(Throughput),每秒查询率QPS(Query Per Second),并发用户数等。 响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需...

2018-04-09 20:26:00 90

原创 12.Nodes

Nodes(节点) Animation(动画) KeyframeAnimation 逐帧动画,该节点中包含了所有绑定属性的动画逻辑 Animation Group 逐帧动画分组 Simple Control 该节点包含了在时间线上从第一帧到最后一帧的所有动画。播放进度是从0%,播放到100% Timeline Co...

2018-04-08 14:30:00 197

原创 11.Layers, Containers and Interfaces

图层、容器和接口 当设计一个Ventuz场景时,某些节点的组合或设计会反复出现。例如在演示中使用的按钮或滑块,在整个过程中的呈现和外观都是一致的,唯一变化的是尺寸、位置和标签。 在设计复杂的演示时,另一个常见的主题是场景的语义结构。可能有一个场景负责呈现用户界面,另一个用于与外部设备对话,另一个用于渲染图像集合。在一个视觉空间中拥有所有这些节点不仅令人困惑,而且完全不必要。 在这种情况下,容器...

2018-04-08 14:22:00 87

原创 10.Nodes and Bindings

节点数据绑定 节点是构成Ventuz场景的基本元素。每个节点既属于图层、也属于层级或内容。既可以在图层编辑器,也可以在层级编辑器或内容编辑器中编辑。 内容节点包括资产描述(如材质、xml文件等)、数字常量、事件或不直接影响渲染的项目。而节点像一个ventuz渲染引擎指令。例如激活某个材料或材质去渲染。图层节点比较特殊,在2D图层上的所有内容都会被渲染到专用的材质上。在图层上使用的混合、遮罩、调色...

2018-04-08 14:18:00 106

原创 9.Hierarchy Editor

Hierarchy Editor(层次编辑器) 用于定义3D图层的结构,向Ventuz渲染引擎发出“命令”,并指定命令的发生顺序。通常,每个层次节点都会导致对GPU的一个或多个调用,例如设置材质或渲染几何图形。 1、渲染顺序: 层次节点是水平树结构的一部分,从层根开始,在层次编辑器的左上角,符号为: Ventuz渲染引擎从层根开始,并以深度优先遍历顺序向下遍历。节点的效果将处于活动状态,直到遍历...

2018-04-08 14:16:00 88

原创 8.Layers Editor

图层编辑 Ventuz5中有两种类型的场景,分别是2D图层和3D图层。3D图层包含Content和Hierarchy,而2D图层只包含Content。默认情况下,图层编辑器显示在Ventuz中的左上角。 图层编辑工具 Icon 工具名称 描述 添加图层 负责图层 删除图层 编辑图层 锁定图层 只起...

2018-04-08 14:14:00 95

原创 7.Performance Statistics(性能统计)

利用性能分析器中统计的数据,来分析和发现,其中的性能瓶颈点。 1、设置Statistic Options View>Live Options中的Statistic Options设置可以设置需要统计的项目。 2、打开性能统计 点击下列截图中的按钮 统计信息显示: 显示每帧更新。通过按下暂停键,所有部分的更新都可以暂停。 History Mode and Pause 通过...

2018-03-28 17:06:00 191

原创 6.Renderer Window

渲染是实时的,所见即所得。同时还可以输出一些统计信息。 Pixel Snoop:获取颜色值,同时把该值复制到剪贴板,主要用户是获取颜色值 Wireframe:开启后可以查看3D节点图形骨架 Statistics:统计当前场景对硬件设备的消耗,如cpu的使用等。 Input Diagnostics:开启或关闭诊断程序,用于故障排除 Bounding Boxes: Show Key:切换渲染输出的关...

2018-03-28 17:05:00 80

原创 5.Project常用操作介绍

Project常用操作介绍 1、项目浏览器 2、项目属性 Name:项目名称 Category:项目组织结构 Author:作者 Copyright:版权 Image:项目图标 Description:项目描述 3、项目维护 项目维护对话框可以清理、归档完整Ventuz项目所有相关的文件和文件夹。此外,它还可以用来检查项目的一致性,截图如下: 4、project Data 项目数据属于项...

2018-03-28 16:59:00 95

原创 4.Projects and Scenes介绍

1、Project 一个项目是由一系列的文件(如图片、音频、几何)、场景以及vzp文件组成。这些文件被导入到项目对应的文件夹中。项目外部资源在场景中被使用后,会导入项目中,除非该资源被标记为外部引用。相同类型的资源,会被导入到相同的文件夹中。结构目录如下: 2、Scene 一个Ventuz场景由一系列层、节点和数据绑定组成。不同的节点可以生成不同的几何体、分配不同的材质以及接收外部数据...

2018-03-28 16:56:00 63

原创 3.Ventuz Designer新建项目Demo

Ventuz Designer新建项目Demo 1、打开ventuz,点Recent Projects>New Project,在弹出的界面填写具体项目信息,如下图: 图1.1 图1.2 2、在窗体左侧的Layters层上,点+,弹出所有图层中,点2D Layer>Texture Loader,截图如下: 图2.1 图2.2 3、点击2DLayer左边的下拉箭头,会弹...

2018-03-28 16:55:00 115

原创 2.Ventuz Designer常用工具介绍

Ventuz Designer常用工具介绍 1、 打开Ventuz Designer 图1.1 2、 Ventuz Designer第一个界面 图2.1 Recent Projects:最近创建的项目 Tutorials/Demos:ventuz服务器上最新教程和Demo。如果没有该选项,请先取消,然后再选中,就会从ventuz服务器上获取最新教程和Demo。 3、 点击Recen...

2018-03-20 23:17:00 79

原创 1.Ventuz 介绍

Ventoz能做什么? Ventuz是一款实时图文包装内容创作、制作和播出控制软件。Ventuz专注于高端视听内容的制作,包括交互展示和大型活动、视频墙、广播电视在线包装及演播室舞台及灯光控制等领域。Ventuz十分稳定、功能强大、流程简单,可以很容易的集成到复杂的硬件和软件系统中。 Ventoz有那几款产品? 分别有三款产品,分别是Ventuz Designer、Ventuz Director...

2018-03-20 23:12:00 129

原创 化学品电商系统

项目功能实现公司对外形式展示,同时方便客户查询和订购产品采用技术ASP.Net WebForm+SQl Server2008+IIS采用三层架构代码结构 功能模块 主要功能模块网站语言和区域自动识别客户端IP与自动设置网站区域客户管理产品查询、展示订单处理在线支付邮件提醒 ...

2017-08-21 16:19:00 83

原创 全面改造升级内部OA系统

项目功能集团的OA办公系统,分别是销售管理系统、财务付款系统、原料采购系统、成品采购系统、担保系统和库房管理系统业务现状成品采购系统、库房管理系统、销售管理系统是Access开发的C/S系统,采用本地数据库财务付款系统、原料采购系统、担保系统是B/S系统 软件分布图 业务难点维护困难不能适应外出办公要求业务目标适应外出办公简化维护解决方案把C/S结构的系统重新开发,变成B/S系统把北京、上海、...

2017-08-18 14:32:00 93

原创 改造升级财务付款系统

Ø业务目标 ü财务人员在一个系统中管理付款和对账 ü付款数据和业务数据进行解耦 Ø解决方案 ü重新设计系统,采用“付款指令”方式解决上述问题。上游各业务系统有付款需求时,只需要对财务发出“付款指令”,系统会自动生成付款请求,并进入财务付款系统。财务收到付款请求,付款完成后,通过“财务通知”中间件,把付款状态反馈给上游各业务系统 Ø采用技术 ØASP.NET Web Form+Sql Serve...

2017-08-16 13:03:00 71

原创 化学品撮合交易系统

Ø项目功能 ü实现化学品撮合交易。通俗的说,就是有人想购买化学品,但不知道和谁买做合适,通过该系统提交一个采购需求,平台帮客户寻找合适的供应商,协助完成采购。采购的整个过程,都由平台方负责。 Ø行业现状 ü价格不透明 ü供应商质量参差不齐 ü售后服务难于保障 Ø业务目标 ü实现一站式无忧采购,平台方负责采购的整个过程,降低客户风险 Ø采用技术 üASP.NET MVC+Sql Serve...

2017-08-10 14:03:00 93

原创 化学品产品查询系统解决方案

一、要求 项目功能方便客户查询化学品信息业务现状客户查询方式多样化,如通过名称查询、同义词查询、CAS号查询等目前数据量是1千万数据显示形式比较单调业务目标精确满足客户查询需求丰富数据显示形式查询速度控制在1-2s 二、解决方法 分析客户行为发现客户有一半概率是通过产品名称查询,一半概率是通过其他方式查询。同时客户在查询列表页停留的时间不超5分,因此我们采用Sql Server查询+ Lucen...

2017-08-09 17:08:00 73

原创 BS程序性能调优

首先想到的是优化算法、改进技术、扩展设备去做优化。其实在讨论性能的时候,绕不开对业务的理解,不同的业务系统对性能的要求不同,优化方式也不一样。优化性能的前提是保证业务的正确性。我们平时关注的性能主要是系统的执行速度。 关注性能的人群大致分为3类人群,分别是使用者、开发者好运维人员。使用者主要关注的是感知性能(感觉上的执行速度),开发者主要关注的是系统的实际执行速度,运维人员主要关注的是资源的使用...

2017-07-14 09:48:00 88

原创 Knockout应用开发指南

第一章:入门 1、Knockout简介 (Introduction) Knockout是一个轻量级的UI类库,通过应用MVVM模式使JavaScript前端UI简单化。 Knockout有如下4大重要概念: 声明式绑定 (Declarative Bindings):使用简明易读的语法很容易地将模型(model)数据关联到DOM元素上。 UI界面自动刷新 (Automatic UI Refresh...

2015-08-03 08:50:00 268

原创 第7章 性能和可靠性模式 Failover Cluster(故障转移群集)

上下文 您已经决定在设计或修改基础结构层时使用群集以提供高度可用的服务。 问题 您应该如何设计一个高度可用的基础结构层,来防止因单台服务器或它所运行的软件出现故障而导致的服务丢失? 影响因素 在设计高度可用的基础结构层时,请考虑下列影响因素: 硬件组件、应用程序或服务出现故障可以使应用程序无法使用或不可用。 例如,设想一台正在提供应用程序的服务器出现了电源故障。 如果这是唯一的服务器或服务器中...

2015-07-31 08:48:00 188

原创 第7章 性能和可靠性模式 Load-Balanced Cluster(负载平衡群集)

上下文 您已经决定在设计或修改基础结构层时使用群集,以便在能够适应不断变化的要求的同时保持良好的性能。 问题 在保持可接受的性能级别的同时,如何设计一个可适应负载变化的、可伸缩的基础结构层? 影响因素 在设计可伸缩的基础结构层时,请考虑下列影响因素: 对于任何指定的应用程序来说,单独的服务器会受到最大负载容量的限制。例如,如果单台服务器将 Web 页作为基于 Web 的应用程序的一部分提供给用...

2015-07-30 09:15:00 78

原创 第7章 性能和可靠性模式 Server Clustering(服务器群集)

上下文 您正在设计要部署应用程序的基础结构层。运行要求包括无法满足的可用性或性能能力,因为基础结构中存在性能瓶颈或故障单点。 影响因素 设计基础结构时,请考虑下列影响因素: 用户希望在使用应用程序时这些应用程序可以使用并且能够作出响应。 在生产环境中(无论是支持重要客户端/服务器应用程序的数据库,还是电子商务网站)的连续运行时间日益成为普遍的业务要求。 应用程序故障可能会造成严重的经济损失。例...

2015-07-29 09:08:00 63

原创 第7章 性能和可靠性模式

性能、可伸缩性和可靠性是所有企业应用程序的重要特性。尽管可通过多种方法来改善性能和可靠性,但是此模式群集强调如何将为任意数量的应用程序或用户提供服务的系统组合起来,以获得更好的可伸缩性和可用性。本章中的模式为有效地适应负载和高峰通信量的变化以及改善可用性奠定了基础。 满足运行要求 当今的企业应用程序必须满足不断增加的运行要求(包括提高可用性、改善性能以及能够在应用程序负载增加时满足这些要求)。这...

2015-07-28 09:11:00 91

原创 第6章 服务模式 在 .NET 中实现 Service Gateway(服务网关)

上下文 您正在设计企业应用程序,该程序需要使用由其他应用程序提供的服务。该服务定义了一个合约,所有服务使用者要访问该服务都必须遵守该合约。该合约定义了与此服务通信所需的技术、通信协议和消息定义等内容。要与该服务通信,应用程序需要按合约中的详细说明履行其责任。 问题 如何将该服务所规定的履行合约责任的细节与应用程序的其余部分分隔开来? 影响因素 在设计使用由其他应用程序提供的服务的应用程序时,必须...

2015-07-27 09:18:00 84

原创 第6章 服务模式 在 .NET 中实现 Service Interface

上下文 您 的应用程序部署在 Microsoft Windows? 操作系统上。您决定将应用程序的某一块功能作为 ASP.NET Web Service 公开。互操作性是一个关键问题,因此您无法使用仅在 Microsoft .NET Framework 中出现的复杂数据类型。 背景 通 常,当您将音频光盘 (CD) 插入计算机时,您用来播放 CD 的程序会显示与音乐有关的各种信息。此信息可能包括...

2015-07-24 13:51:00 97

PetShop4.0代码分析

PetShop4.0代码分析,帮助分析架构设计以及代码结构。

2012-04-20

LinQ入门基础教程

在Linq To Sql正式推出之前,很多人只是把sql语句形成一个string,然后,通过ADO.NET传给SQL Server,返回结果集。这里的缺陷就是,假如你sql语句写的有问题,只有到运行时才知道, 而Linq To Sql语句是在编译期间就做检查”,那么Linq是个什么东西呢?它能翻译SQL语句?带着疑问… LINQ:Language Integrated Query 语言集成查询,其本质是对ADO.NET结果集通过反射连同泛型特性转换成对象集,实现OR模型的转换(类似JAVA中Hibernate框架,.NET中的NHibernate),它完全是基于.NET 2.0 的框架。 学习完LINQ完后,你会发现它的优点与缺点。它的优点在于封装了SQL语句,只对对象进行操作(添加、删除、修改和查询),代码量大大减少,让我们重点关心业务逻辑,而非代码上,把我们引入到面向对象编程方式上来;缺点在于追求效益的同时牺牲了性能,比起ADO.NET 性能稍差(ADO.NET更有优势,不需要进行OR转换),另外对一些复杂的SQL语句也不好操作(这里LINQ支持SQL语句),虽然它都支持联合、分组、排序、连接查询等,因此要有选择性的用。 我们学习LINQ框架并非全部硬搬,而是有目的的选择,其实学习任何新的东西都要有的放矢,知道它们

2011-05-22

疯狂Java实战演义(PDF和源代码)

主要讲解如何用java开发桌面游戏,内容深入浅出,适合初学者学习。

2011-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除