当前位置: 首页 > news >正文

快速搭建网站系统一家专门做房产特卖的网站

快速搭建网站系统,一家专门做房产特卖的网站,域名推荐工具,福建省建设执业资格中心网站前言#xff1a;在程序猿的日常工作中#xff0c; 经常会提到中间件#xff0c;然而大家对中间件的理解并不一致#xff0c;导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品#xff0c;在不同文献中有着许多不同的中间件定义#xff0c;包括操… 前言在程序猿的日常工作中 经常会提到中间件然而大家对中间件的理解并不一致导致了一些不必要的分歧和误解。“中间件”一词被用来描述各种各样的软件产品在不同文献中有着许多不同的中间件定义包括操作系统和/或网络和应用程序之间的软件层以及两个应用程序之间的“粘合剂”。它也被描述为一种重要的集成工具或支持与分布式软件的模块化连接。一般而言中间件和框架的区别是中间件是独立运行的用于处理某项专门业务的CS程序会有配套的客户端和服务端框架虽然也是处理某个专门业务的但是它不是独立程序是寄宿在宿主程序进程内的一套类库。 一、中间件的概念 由于应用软件是在系统软件基础上开发和运行的而系统软件又有多种如果每种应用软件都要提供能在不同系统上运行的版本开发成本将大大增加。因而出现了一类称为“中间件” (Middleware) 的软件它们作为应用软件与各种操作系统之间使用的标准化编程接口和协议可以起承上启下的作用使应用软件的开发相对 独立于计算机硬件和操作系统并能在不同的系统上运行实现相同的应用功能。中间件是基础软件的一大类属于可复用软件的范畴。顾名思义中间件处在操作系统、网络和数据库之上 应用软件的下层如图所示。也有人认为中间件应该属于操作系统中的一部分。  中间件从诞生到现在虽然仅有 10 多年时间但发展极其迅速是有史以来发展最快的软件产品但在技术上还处于成长阶段还没有统一的标准和模型通常都是用 C 语言以面向对象的技术来实现的但是它的特性已超出面向对象的表达能力由于它属于可重用构件目前趋向于用构件技术来实现。然而中间件要涉及软件的所有标准 、 规范和技术它有更多的内涵因为它包括平台功能自身具有自治性 、 自主性 、 隔离性 、 社会化 、 激发性 、 主动性 、 并发性 、 认识能力等特性是近似于 Agent 代理的结构。    1.1、中间件特点 满足大量应用的需要 运行于多种硬件和 OS 平台 支持分布计算提供跨网络、硬件和 OS 平台的透明性的应用或服务的交互 支持标准的协议 支持标准的接口。 1.2、中间件的十大优越性 世界著名的咨询机构 Standish Group 在一份研究报告中归纳了 缩短应用的开发周期 节约应用的开发成本 减少系统初期的建设成本 降低应用开发的失败率 保护已有的投资 简化应用集成 减少维护费用 提高应用的开发质量 保证技术进步的连续性 增强应用的生命力。         具体来说首先中间件屏蔽了底层操作系统的复杂性使程序开发人员面对一个简单而统一的开发环境减少了程序设计的复杂性将注意力集中在自己的业务上不必再为程序在不同系统软件上的移植而重复工作从而大大减少了技术上的负担。中间件带给应用系统的不只是开发的简便 、 开发周期的缩短也有系统的维护 、 运行和管理的工作量的减少还减少了计算机总体费用的投入 。Standish 的调查报告显示由于采用了中间件技术应用系统的总建设费用可以减少 50% 左右。在网络经济 、 电子商务大发展的今天从中间件获得利益的不只是 IT 厂商 IT 用户也同样是赢家并且是更有把握的赢家。         其次中间件作为新层次的基础软件其重要作用是将不同时期 、 在不同操作系统上开发的应用软件集成起来彼此无缝地整体协调工作这是操作系统 、 数据库管理系统本身做不了的。中间件的这一作用使得在技术不断发展之后人们以往在应用软件上的劳动成果仍然物有所用节约了大量的人力 、 财力投入。         最后由于标准接口对于可移植性和标准协议对于互操作性的重要性中间件已成为许多标准化工作的主要部分。对于应用软件开发中间件远比操作系统和网络服务更为重要中间件提供的程序接口定义了一个相对稳定的高层应用环境不管底层的计算机硬件和系统软件怎样更新换代只要将中间件升级更新并保持中间件对外的接口定义不变应用软件几乎不需任何修改从而节省了企业在应用软件开发和维护中的重大投资。 1.3、中间件用途 提供工具和函数以简化复杂应用程序的开发。 提供高级抽象和接口以促进应用程序的集成、重用和开发。 隐藏底层平台和操作环境的异构性。 隐藏基础环境中的分发机制和通信细节。 促进基础设施的不同分布式组件之间的通信。 为不同应用程序所需的通用功能提供共同服务以减少开发工作和避免服务重复。 提供一个公共体系结构来添加新的服务和特性而不必更改应用程序。 提供增值特性和非功能特性如安全性、可靠性和 QoS。 提供必要的工具以增强分布式应用程序的性能并提高其稳定性和可伸缩性。 二、中间件分类 按照中间件在分布式系统中承担的职责不同可以划分以下几类中间件产品。 1)通信处理(消息)中间件 正如人们通过安装红绿灯设立交通管理机构制定出交通规则才能保证道路交通  畅通一样在分布式系统中人们要建网和制定出通信协议以保证系统能在不同平台之间  通信实现分布式系统中可靠的、高效的、实时的跨平台数据传输这类中间件称为消息中间 件也是市面上销售额最大的中间件产品目前主要产品有BEA 的 eLink、IBM 的 MQSeries、 TongLINK 等。实际上 一般的网络操作系统如Windows已包含了其部分功能。 2)事务处理(交易)中间件 正如城市交通中要运行各种运载汽车以此来完成日常的运载工作同时随时监视汽车的 运行在出现故障时及时排堵保畅。在分布式事务处理系统中经常要处理大量事务特别是 OLTP中每项事务常常要多台服务器上的程序按顺序协调完成 一旦中间发生某种故障不但 要完成恢复工作而且要自动切换系统保证系统永不停机实现高可靠性运行。要使大量事务 在多台应用服务器上能实时并发运行并进行负载平衡的调度实现与昂贵的可靠性机和大型 计算机系统的同等功能为了实现这个目标要求中间件系统具有监视和调度整个系统的功能。 BEA 的 Tuxedo 由此而闻名它成为增长率最高的厂商。 3)数据存取管理中间件 在分布式系统中重要的数据都集中存放在数据服务器中它们可以是关系型的、复合文 档型、具有各种存放格式的多媒体型或者是经过加密或压缩存放的该中间件将为在网络上 虚拟缓冲存取、格式转换、解压等带来方便。 4)Web服务器中间件 浏览器图形用户界面已成为公认规范然而它的会话能力差不擅长做数据的写入任务 受HTTP 协议的限制多等就必须对其进行修改和扩充因此出现了Web 服务器中间件如  SilverStream 公司的产品。 5)安全中间件 一些军事、政府和商务部门上网的最大障碍是安全保密问题而且不能使用国外提供的安 全措施(如防火墙、加密和认证等),必须用国产产品。产生不安全因素是由操作系统引起的 但必须要用中间件去解决以适应灵活多变的要求。 6)跨平台和架构的中间件 当前开发大型应用软件通常采用基于架构和构件技术在分布式系统中还需要集成各 结点上的不同系统平台上的构件或新老版本的构件由此产生了架构中间件。功能最强的是 CORBA,  可以跨任意平台但是其过于庞大JavaBeans 较灵活简单很适合用于浏览器但运 行效率有待改善 COM  模型主要适合Windows 平台已在桌面系统广泛使用。由于国内新建 系统多基于UNIX (包括Linux)  和 Windows,   因此针对这两个平台建立相应的中间件市场相 对要大得多。 7)专用平台中间件 专用平台中间件为特定应用领域设计领域参考模式建立相应架构配置相应的构件库和 中间件为应用服务器开发和运行特定领域的关键任务(如电子商务、网站等)。 8)网络中间件 它包括网管、接入、网络测试、虚拟社区和虚拟缓冲等也是当前最热门的研发项目。 三、中间件在微服务中的应用场景 微服务的建设中实现远程调用只是实现了20%的工作量但是确实满足了80%的需求。服务管理治理这块有大量的工作要做。这也就是实现自己RPC框架的好处这是第一步有了这第一步让数据流过我们自己的框架以后我们接可以做更多的事情比如 服务发现和注册。查看服务的注册情况服务手动上线下线集群切换压力分配干预。 配置管理。配置服务端客户端线程池和队列的配置超时配置等等。当然这个也可以在配置系统中进行。 全链路监控。能否记录整个微服务调用链路的情况并且查看这个调用链。 熔断限流。熔断和进行并发限流配置服务权限黑白名单配置安全方面的配置信息加密日志脱敏等。 Service Store的概念。服务发布需要满足一定要求有文档比如可以通过注解方式在代码注释里提供有信息开发负责人、运维负责人服务类型提供的能力满足要求后就可以以类似于苹果App Store发布程序的方式发布服务这样我们就可以在统一的平台上查看服务的维护信息和文档。 版本控制调用统计。对服务进行灰度升级按版本路由不同版本调用分析等等。类似于一些应用统计平台提供的功能友盟、TalkingData。 下图绿色部分代表了框架红色部分代表了管理系统紫色部分代表了中间件。本文会着重介绍管理系统和中间件部分。 1服务管理 服务能调用通是第一步随着服务数量变多部署方式的复杂化依赖关系复杂化版本的迭代API的变更开发人员和架构师其实急需有一套地图能够对服务能力的全貌进行整体的了解运维也需要有系统能对服务进行观察和调配。服务治理的部分完全可以以iOS那套开发符合时候需要符合标准发布的时候需要有流程方式来运作常见的服务发现与注册有阿里的Nacos和 Netflix 公司的Eureka。 2配置管理 要实现一个功能完善的配置系统工作量还是相当大的一个优秀的功能强大的配置系统可以节省很多开发的工作量因为可配置部分的功能基本就是由配置系统直接实现了无需在数据库中在搞大量的XXConfig表不夸张的说很多业务系统40%的工作量在这个上面不但需要做这些配置表还需要配以配置后台 比较知名的分布式配置服务和管理系统有阿里的Nacos和携程的apollo对于比较大型的互联网项目来说因为业务繁杂需求多变往往各种系统都会有大量的配置覆盖几个方面 针对系统内部技术层面的各种配置各种池的大小、 队列的大小、日志级别、各种路径、批次大小、处理间隔、重试次数、超时时间等。 针对业务运营层面的各种配置活动的周期奖励、黑白名单、弹窗、广告位等。 针对运维和发布层面的配置灰度名单、注册中心地址、数据库地址、缓存地址、MQ地址等 3全链路监控 开源的实现有https://github.com/dianping/cat以及https://github.com/naver/pinpoint上图等等。对于微服务比较多的主流程涉及8微服务系统如果没有服务的全链路调用跟踪那么排查故障以及性能问题就会很困难了。一般完善的全链路监控体系不仅仅覆盖微服务而且功能也会更丰富实现下面的功能 以Log、Agent、Proxy或整合进框架的方式实现尽可能少的侵入的情况下实现数据的收集。而且确保数据的收集不会影响到主业务收集服务端宕机的情况下业务不影响。 调用跟踪。涉及到服务调用、缓存调用、数据库调用MQ调用不仅仅可以以树的形式呈现每次调用的类型、耗时、结果还可以呈现完整的根也就是对于网站请求呈现出请求的完整信息对于Job任务呈现出Job的信息。 JVM的信息比如对于Java。呈现每一个进程JVM层次的GC、Threads、Memory、CPU的使用情况。可以进行远程Stack的查看和Heap的快照没有进程的内存信息很多时候基于服务器层面粗粒度的资源使用情况的监控基本不可能分析出根本原因并且可以设定策略进行定期的快照。虚拟机的信息查看和调用跟踪甚至可以通过快照进行关联在出现问题的时候能够了解当时虚拟机的状态对于排查问题是非常有好处的。 依赖关系一览。有的时候我们做架构方案第一步就是梳理模块和服务之间的依赖关系只有这样我们才能确定影响范围重构范围对于微服务做的比较复杂的项目来说每个人可能只是关注自己服务的上下游对于上游的上游和下游的下游完全不清楚导致公司也没有人可以说的清楚架构的全貌。这个时候我们有全链路跟踪系统的话可以对通过分析过去的调用来绘制出一张依赖关系的架构图。这个图如果对QPS做一些热点的话还可以帮助我们做一些运维层面的容量规划。 高级分析建议。比如在全链路压测后定位分析瓶颈所在。定时分析所有组件的执行性能得出性能衰退的趋势提早进行问题预警。分析JVM的线程和GC情况辅助定位High CPU和Memory Leak的问题。退一万步说即使没有这样的自动化的高级分析有了调用跟踪的图和组件依赖关系图至少在出问题的时候我们人能分析出来咋回事。 Dashboard。非必须只要数据收集足够全面如之前文章所示我们可以用Grafana来进行各种个性化的图表配置。 4熔断限流 比如客户端权限控制黑白名单限流超时熔断和调用链搭配起来的调用跟踪全量操作的审计搜索数据迁移辅助等等。常见的熔断限流有阿里开源的Sentinel。 5分布式事务 代理实现了分布式事务的功能XA。还可以实现代理层面的分布式悲观锁的功能。比如阿里来源的分布式事务中间件Seata。 6数据访问中间件 数据访问中间件是独立部署的数据库的透明代理本身需要是以集群方式支持高可用背后还需要对接多套数据库作为一个集群。常见的数据库中间件包括ShardingSphere和MyCat。 一般而言会提供如下的功能 读写分离包括负载均衡和故障转移的功能自动在多个从库做负载均衡通过可用性探测在主库出现故障的时候配合数据库的高可用和复制做主库的切换。 分库分表随着数据量的增多需要分片功能。分片也就是Sharding把数据按照一定的维度均匀分散到不同的表然后把表分布在多个物理数据库中实现压力的分散。这里写入的Sharding一般而言没有太多的差异但是读取方面因为涉及到归并汇总的过程如果要实现复杂功能的话还是比较麻烦的。由于分片的维度往往可能有多个这方面可以采用多写多个维度的底层表来实现也可以采用维度索引表方式来实现。 SQL优化随时进行SQL的Profiler然后达到一定阈值后提供索引优化建议。类似https://github.com/Meituan-Dianping/SQLAdvisor。 7分布式缓存中间件 类似于数据库的Proxy这里是以缓存服务作为后端提供一些集群化的功能。比如以Redis为后端的开源的实现有https://github.com/CodisLabs/codis以及饿了么的https://github.com/eleme/corvus 等等。其实不采用Proxy方式做开发一个缓存客户端在框架层面做也是完全可以的但是之这两种方式各有优劣。代理方式的话更透明如果有Java、Python、Go都需要链接Redis我们无需开发多套客户端了。一般实现下面的功能 分布式。这是最基本的通过各种算法把Key分散到各个节点提供一定的容量规划和容量报警功能。 高可用。配合Redis的一些高可用方案实现一定程度的高可用。 运维方面的功能。比如客户端权限控制黑白名单限流超时熔断全量操作的审计搜索数据迁移辅助等等。 跟踪和问题分析。配合全链路监控实现一体化的缓存访问跟踪。以及更智能的分析使用的情况结合缓存的命中率Value的大小压力平衡性提供一些优化建议和报警尽早发现问题缓存的崩盘往往是有前兆的。 完善的管理后台可以一览集群的用量、性能以及做容量规划和迁移方案。 如果Redis集群特别大的话的确是有一套的自己的Proxy体系会更方便小型项目一般用不到。 8分布式定时任务 分布式定时任务的方案都是基于单点集群的模式即选中一个系统作为单点保证任务不会重复其他服务执行任务确保系统高可用、低负载。常见的比如XXL-JOB和POWER-JOB 9消息队列中间件 消息中间件是在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列是指用高效可靠的消息传递机制进行与平台无关的数据交流并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型可以在分布式环境下扩展进程的通信。 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件如老牌的ActiveMQ、RabbitMQ炙手可热的Kafka阿里巴巴自主开发RocketMQ等。 四、中间件产品介绍 主流的中间件产品有 IBM MQSeries 和 BEA Tuxedo。 (1)IBM    MQSeries IBM公司的 MQSeries 是 IBM 的消息处理中间件。MQSeries 提供一个具有工业标准、安全、 可靠的消息传输系统它用于控制和管理一个集成的系统使得组成这个系统的多个分支应用 (模块)之间通过传递消息完成整个工作流程。MQSeries 基本由一个信息传输系统和一个应用 程序接口组成其资源是消息和队列。 MQSeries 的关键功能之一是确保信息的可靠传输即使在网络通信不可靠或出现异常时也 能保证信息的传输。MQSeries 的异步消息处理技术能够保证当网络或者通信应用程序本身处于 “忙”状态或发生故障时系统之间的信息不会丢失也不会阻塞。这样的可靠性是非常关键 的否则大量的金钱和客户信誉就会面临极大的损害。 同时 MQSeries 是灵活的应用程序通信方案。MQSeries 支持所有的主要计算平台和通信 模式也能够支持先进的技术(如Internet 和 Java),    拥有连接至主要产品(如LotusNotes  和 SAP/R3 等)的接口。 (2)BEA   Tuxedo Tuxedo是BEA公司现已被Oracle公司收购的一个客户机/服务器的“中间件”产品它在客户机和服务器之间进行调节以保证正确地处理事务。它用C语言技术开发的并且有很高性能。Tuxedo 已经广泛地应用于金融、电信、制造业等各行各业的核心业务系统。 TUXEDO是在nternet 这样的分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。  Tuxedo 的主要作用是屏蔽分布式环境中各种通信协议、硬件体系结构、操作系统、数据库和其它应用服务等方面的差异使分布于网络节点上的应用程序的各个单元部件之间能够进行互操作并协调操作的一致性和完整性最大限度地节省系统资源提高系统性能。 BEA公司的 Tuxedo 作为电子商务交易平台属于交易中间件。它允许客户机和服务器参 与一个涉及多个数据库协调更新的交易并能够确保数据的完整性。BEA Tuxedo一个特色功能 是能够保证对电子商务应用系统的不间断访问。它可以对系统构件进行持续的监视查看是否 有应用系统、交易、网络及硬件的故障。 一旦出现故障 BEA Tuxedo 会从逻辑上把故障构件排 除然后进行必要的恢复性步骤。 BEA Tuxedo 根据系统的负载指示自动开启和关闭应用服务可以均衡所有可用系统的负 载以满足对应用系统的高强度使用需求。借助 DDR (数据依赖路由), BEA Tuxedo 可按照消 息的上下文来选择消息路由。其交易队列功能可使分布式应用系统以异步“少连接”方式协 同工作。 BEA Tuxedo 的 LLE 安全机制可确保用户数据的保密性应用/交易管理接口为50多种硬 件平台和操作系统提供了一致的应用编程接口。BEA Tuxedo 基于网络的图形界面管理可以简化 对电子商务的管理为建立和部署电子商务应用系统提供了端到端的电子商务交易平台。 参考链接 系统架构设计笔记77—— 中间件技术 - 掘金 互联网架构常用基础中间件介绍_基础架构中间件-CSDN博客 一文读懂中间件-腾讯云开发者社区-腾讯云
http://www.dnsts.com.cn/news/119477.html

相关文章:

  • 新手从零基础建站初级网站建设网站模板 可做采集站
  • 网站建设中中文模板谷歌网站流量统计
  • 厦门建设银行招聘网站汉中市建设局网站
  • 做网站导航站的注意点传媒有限公司
  • 网站没备案做淘宝客网站做分享链接
  • 唐山专业网站建设公司网站建设课程设计百度文库
  • 电子政务网站建设公司排行榜郑州自助建站软件
  • 搭建网站大概需要多少钱网站做下载页面
  • 温州做网站哪家比较好邢台做网站推广
  • 安徽创誉建设工程有限公司网站网站建设 东阿阿胶
  • 做百度网站还是安居客网站校园网站建设可行性分析
  • 长沙网站设计哪里好如何免费制作小视频
  • 电脑公司网站源码dede5.7内核qq个性门户网站源码
  • 网站建设工程结算方式阿里百秀网站
  • 个体户可以做企业网站WordPress文章百度收录插件
  • 高校网站建设管理办法网站301重定向怎么做
  • 如何做网站关键词怎么用word做网站
  • 设计师工作室网站互联网门户网站模板
  • 网页制作与网站建设设计报告wordpress 缩略图插件
  • 婚纱网站开发进度表下载wap浏览器
  • 搭建网站平台如何做分录内蒙古住房与城乡建设厅网站网址
  • 网站建设管理工作情况汇报永久免费的crm软件系统
  • 医院网站设计怎么做wordpress gitignore
  • 济南专业网站建设哪家便宜丝芙兰网站做的好差
  • 建设银行金牛支行网站网店推广发展趋势
  • 优创智汇高端网站建设贺州网站建设
  • 靖州网站建设做宣传可以在哪些网站上发布
  • vs2010网站开发与发布宁波网站建设 慕枫科技
  • 做接口自动化是网站登录加密做网站如何购买服务器吗
  • 蓝色为主的网站案例域名注册完成后怎么做网站