架构

使用WCF实现SOA面向服务编程—— 架构设计

谁说我不能喝 提交于 2019-12-23 05:38:22
本文转载: http://kb.cnblogs.com/page/96479/ SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功 能是由 一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但 是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优 势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用 WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。   Web服务本来就是没有区分代码的,在这个例子里在下多开发了一个Service Interface目的是为了使系统更易于管理。在开发期间,Service是不断更改的,如果在UI层上直接调用服务层,那更改将会是频密的,所以在这 里在下开发一个Service Interface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用Service Interface,就可以对系统直接进行操作

【云宏大讲坛】关键应用在超融合环境下的实践

雨燕双飞 提交于 2019-12-22 18:59:30
(传统承载关键应用的机器架构正在加速瓦解,越来越多核心应用迁移到虚拟化平台。超融合系统的成熟和普及,更让关键应用得到新型的实践。) 关键应用,是指对业务连续性和性能都要求非常高的应用,如ERP、CRM、核心交易系统等。一旦出现系统不可用或性能下降等情况,便会对企业生产、财务、名誉产生严重影响。 传统承载关键应用的小型机、SAN架构组合正加速瓦解,越来越多的核心应用已经迁移到了虚拟化平台运行,SAN存储也逐渐被x86服务器和基于闪存的分布式存储所替代。而虚拟化与分布式存储的天然组合——超融合,紧密集成,相得益彰。 x86服务器的发展使得计算能力和RAS(Reliability, Availability and Serviceability)都取得了长足进步,其性能与RAS特性已经不弱于甚至超过了传统小型机,可以满足绝大部分企业用户的实际需求;同时x86平台的标准化与开放性也加速了企业用户将关键业务应用向x86平台迁移的进程。 传统关键应用业务系统架构基于磁盘共享存储,采用复杂的存储控制器设计以满足高可用性要求。通过堆叠大量硬盘以获得较高每秒I/O操作数,然而硬盘的性能提升又很缓慢,就只能靠不断增加硬盘数量,造成整个系统臃肿、复杂,维护难度大。 闪存的出现改变了这一局面,其提供的高性能帮助传统SAN存储完美“瘦身”。闪存与x86服务器的结合,加速推动了存储行业的革新

kube-batch 架构剖析

旧街凉风 提交于 2019-12-22 16:11:43
2019.12.20 本周五在组内做了一次技术分享,内容关于kube-batch,也在其中阐述了些自我思考。本文记录下分享的主要内容,PPT就不贴上来了。 kube-batch 架构剖析 basic concept framework basic concept Queue Job Task Podgroup framework One-time scheduling process 来源: CSDN 作者: kongkongkkk 链接: https://blog.csdn.net/kongkongkkk/article/details/103645719

58同城沈剑:好的架构源于不停地衍变,而非设计

社会主义新天地 提交于 2019-12-22 15:35:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 原文网址链接: http://www.csdn.net/article/2015-10-24/2826028 摘要:对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支撑这个成本。 【编者按】对很多创业公司而言,随着业务增长,网站的流量也会经历不同的阶段。从十万流量到一百万流量,再从一百万流量跨越到一千万甚至上亿的流量,网站的架构需要经历哪些变化?在“OneAPM 技术公开课”第一期中,58同城的技术委员会执行主席沈剑对此进行了详细剖析。 以下为演讲整理 本次演讲主要会阐述,58同城从小流量、中等规模流量、大流量,到更大的流量过程中,架构是如何演进的?遇到了哪些问题?以及如何解决这些问题? 好的架构不是设计出来的,而是演进出来的 对很多创业公司而言,很难在初期就预估到流量十倍、百倍以及千倍以后网站架构会是什么样的一个状况。同时,如果系统初期就设计一个千万级并发的流量架构,很难有公司可以支撑这个成本。 因此,这里主要会关注架构的眼花。在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题,在这个过程中整个架构会一直演进。 在58同城建立之初,站点的流量非常小,可能也就是十万级别,这也就意味着

58同城沈剑:好的架构是进化来的,不是设计来的

空扰寡人 提交于 2019-12-22 14:58:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 好的架构不是设计出来的而是演进出来的 对很多创业公司而言,在初期的时候,我们很难在初期就预估到流量十倍以后、百倍以后、一千倍以后网站的架构会变成什么样。当然,如果在最初的时期,就设计一个千万级并发的流量架构,那样的话,成本是也是非常之高的,估计很难有公司会这样做。 所以,我们主要来讲架构是如何进行演化的。我们在每个阶段,找到对应该阶段网站架构所面临的问题,然后在不断解决这些问题的过程中,整个战略的架构就是在不断的演进了。 其实,在 58 同城建立之初,站点的流量非常小,可能也就是是十万级别,这也就意味着,平均每秒钟也就是几次的访问。此时网站架构的特点:请求量是比较低,数据量比较小,代码量也比较小。可能找几个工程师,很容易就做一个这样的站点,根本没什么「架构」可言。 其实,这也是很多创业公司初期面临的问题,最开始58同城的站点架构用一个词概括就是「ALL IN ONE」,如下图所示: 就像一个单机系统,所有的东西都部署在一台机器上,包括站点、数据库、文件等等。而工程师每天的核心工作就是 CURD,前端传过来一些数据,然后业务逻辑层拼装成一些 CURD 访问数据库,数据库返回数据,数据拼装成页面,最终返回到浏览器。相信很多创业团队,初期做的工作也是类似,每天写代码,写 SQL、接口参数、访问数据等等。

dubbo基础文档

心已入冬 提交于 2019-12-22 11:40:16
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。 此时,用于简化增删改查工作量的 数据访问框架 (ORM) 是关键。 垂直应用架构 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。 此时,用于加速前端页面开发的 Web 框架 (MVC) 是关键。 分布式服务架构 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。 此时,用于提高业务复用及整合的 分布式服务框架 (RPC) 是关键。 流动计算架构 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。 此时,用于提高机器利用率的 资源调度和治理中心 (SOA) 是关键。 Dubbo 就是 资源调度和治理中心 的管理工具。 1.1.1. Dubbo 的架构 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor:

初识网络编程

戏子无情 提交于 2019-12-22 11:39:21
引子 对于我们日常的编程,当我们需要在两个程序之间传递信息时可以使用一个程序将信息写入一个文件,再用另外一个程序从这个文件中读取信息就好了,可是如果两个程序不在一个电脑上是,我们这时候就需要引入网络编程才能实现以上功能,今天就说一下网络编程! 首先了解一下软件开发的架构: 我们了解的涉及到两个程序之间通讯的应用大致可以分为两种: 第一种是应用类:qq、微信、网盘、优酷这一类是属于需要安装的桌面应用 第二种是web类:比如百度、知乎、博客园等使用浏览器访问就可以直接使用的应用 这些应用的本质其实都是两个程序之间的通讯。而这两个分类又对应了两个软件开发的架构。 1.C/S架构 C/S即:Client与Server ,中文意思:客户端与服务器端架构,这种架构也是从用户层面(也可以是物理层面)来划分的。 这里的客户端一般泛指客户端应用程序EXE,程序需要先安装后,才能运行在用户的电脑上,对用户的电脑操作系统环境依赖较大。 2.B/S架构 B/S即:Browser与Server,中文意思:浏览器端与服务器端架构,这种架构是从用户层面来划分的。 Browser浏览器,其实也是一种Client客户端,只是这个客户端不需要大家去安装什么应用程序,只需在浏览器上通过HTTP请求服务器端相关的资源(网页资源),客户端Browser浏览器就能进行增删改查。 我们已经了解了软件开发的架构

17、go语言:分布式爬虫

 ̄綄美尐妖づ 提交于 2019-12-22 08:36:49
1、分布式系统简介: 多个节点: 容错性 可扩展性(性能) 固有分布性 消息传递: 节点具有私有存储 易于开发 可扩展性(功能) 对比:并行计算 完成特定的需求: 消息传递的方法: REST(动作、URL) RPC(序列化传输、远端序列化后调用) 中间件(可以存储消息、一对多、消息队列) 一般消息传递的方法: 对外:REST 模块内部:RPC 模块之间:中间件,REST 分布式架构VS为微服务架构 分布式:指导节点之间如何通信 微服务:鼓励按业务划分模块 微服务架构通过分布式架构来实现 多层架构VS微服务架构 微服务架构具有更多的“服务” 微服务通常需要配合自动化测试,部署,服务发现等 目前我们倾向于微服务架构 2、分布式爬虫架构: 并发版爬虫的架构: 目前的问题: 限流问题 去重问题 数据存储问题(固有分布式) 解决限流问题: 单节点能够承受的流量有限–> 将worker放到不同的节点 每个机器都可以起很多worker,任务不一定分发到本机的worker 解决去重问题: 单节点能承受的去重数据量有限 无法保存之前去重结果 基于Key-Value Store(如Redis)进行分布式去重 每来一个请求都要去连接一次去重服务,容易被卡住,所以需要把去重的工作交给worker,worker卡住 没关系,可以起很多个goroutine的worker 解决存储问题: 存储部分的结构