
架构
文章平均质量分 96
yczz
8年大型企业软件研发经验,目前在公司技术研究中心担任部门经理。专注技术架构、分析设计相关技术研究。平常喜欢摄影、读书、爬山、看电影
展开
-
微前端体系
这篇文章大致是为了回答几个问题: 迁移到微前端,我们到底要什么? 业界的「微前端」体系通常包括哪些部分? 贴近研发同学侧的「微前端框架」通常用什么样的技术? 我们团队的项目现在能上「微前端」吗?需要做什么改造、到什么地步? 作者zthxxxgithub.com/zthxxx(以下全文读完大约 20 min)微前端已经不是一个新概念了,大家或多或少都听说过接触过,这里不再去做一堆定义,只是对目前业界做法的调研总结 / 概览,这篇文章面向的是还没有在业务.转载 2022-02-19 16:08:39 · 1746 阅读 · 0 评论 -
使用API网关构建微服务
阅读目录客户端与微服务直接通信使用API网关API网关的优点和不足原文 http://www.infoq.com/cn/articles/construct-micro-service-using-api-gateway 有关微服务的系列文章的 第一篇 介绍了微服务架构模式,讨论了使用微服务的优缺点,以及为什么它们虽然复杂度高却常常是复杂应用程序的理想转载 2016-03-22 10:20:51 · 4074 阅读 · 0 评论 -
微服务(Microservice)那点事
WHAT - 什么是微服务微服务简介这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可见Microservice有多火。最喜欢其中一页。关于这个典故,可以参考this,此图适用于一切高大上的名字——技术有SOA,Agile,CLOUD,DevOps等等,古代有道,气,八卦等转载 2016-03-21 22:02:05 · 7811 阅读 · 1 评论 -
界面之下:还原真实的MV*模式
目录:前言MVCMVC Model 2MVPPassive ViewSupervising ControllerMVVM结语References前言做客户端开发、前端开发对MVC、MVP、MVVM这些名词不了解也应该大致听过,都是为了解决图形界面应用程序复杂性管理问题而产生的应用架构模式。网上很多文章关于这方面的讨论比较杂乱,各种MV*模式之间的区别分不清,甚至转载 2015-10-26 21:30:31 · 1309 阅读 · 0 评论 -
7种微服务反模式
什么是微服务流行术语为那些逐步形成的、需要一个好的“标签”来方便交流的概念提供了一个上下文。微服务就是这样的一个新“标签”,它定义了一个领域,这个领域我自己也发现了,并且现在已经使用了一段时间。我慢慢认识到,相关文章和会议所描述的东西,我已经从自己过去几年的个人经历中引申出来。行业和专家对微服务的讨论让Netflix、亚马逊、谷歌等已经成功实现微服务的公司成为了焦点,而我有一些个人经验转载 2015-09-15 13:18:40 · 1416 阅读 · 0 评论 -
Apache Kafka:下一代分布式消息系统
简介Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。Apache Kafka与传统消息系统相比,有以下不同:它被设计为一个分布式系统,易于向外扩展;它同时为发布和订阅提供高吞吐量;它支持多订阅者,当失败时能自转载 2014-11-26 09:35:02 · 1065 阅读 · 0 评论 -
使用Kafka处理高并发数据流
如果我们需要持续地处理大约20万条/秒的消息量,同时还需要保证数据的可用性和冗余,我们应该怎么做呢?最近Tadas Vilkeliskis在自己的博客上发表了一篇题为《数据流基础设施》的文章,分享了他们是如何应对这种场景的。Tadas Vilkeliskis在文章中提到,他们每秒钟大约会收到来自于世界各地的20万次HTTP请求,这些请求包含了用户的行为信息,平均每一条消息的大小约为0.8K转载 2014-11-26 09:33:09 · 8322 阅读 · 0 评论 -
有关云架构建设和选型的思考
最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些。本文尽量全面的列出了云架构建设和选型的考量因素。我们主要从五个层面逐步评估云架构的建设和选型,分别是:行业生态企业需求云计算的能力潜在的挑战如何建设一、行业生态计算机云经过多年的发展,由一开始的概念,慢慢发展成熟并能够推向市场,提供多种多样的服务,市场空间非常转载 2014-08-26 12:59:33 · 1973 阅读 · 0 评论 -
元数据驱动
理解Salesforce.com的互联网应用开发平台的设计摘要: Force.com是如今正在使用的优秀的按需应用程序开发平台,支持47000 +个组织。个别企业和商业软件即服务(SaaS)供应商相信该平台可以提供强大、可靠和网络规模的应用。为了满足其庞大的用户人口要求,Force.com以元数据驱动的软件架构为基础,构建多租户应用。本文阐述了这项专利技术,它使Force.com平台对原创 2014-08-20 21:07:24 · 14655 阅读 · 2 评论 -
Kerberos 协议简介
Kerberos协议:Kerberos协议主要用于计算机网络的身份鉴别(Authentication), 其特点是用户只需输入一次身份验证信息就可以凭借此验证获得的票据(ticket-granting ticket)访问多个服务,即SSO(Single Sign On)。由于在每个Client和Service之间建立了共享密钥,使得该协议具有相当的安全性。条件先来看看Kerbe转载 2014-04-04 17:20:23 · 1085 阅读 · 0 评论 -
CAS+SSO原理浅谈
SSO 是一个非常大的主题,我对这个主题有着深深的感受,自从广州 UserGroup 的论坛成立以来,无数网友都在尝试使用开源的 CAS , Kerberos 也提供另外一种方式的 SSO ,即基于 Windows 域的 SSO ,还有就是从 2005年开始一直兴旺不衰的 SAML 。 如果将这些免费的 SSO 解决方案与商业的 Tivoli 或 Siteminder 或 RS转载 2014-04-04 17:19:29 · 1100 阅读 · 0 评论 -
企业移动信息化应用开发模式选型指南
随着移动互联网的逐步深入,移动应用已经从新闻、搜索、电商、游戏、视频等热门应用逐步向企业移动应用领域转移。而且市场规模逐年增长,据IDC发布的报告显示,2013年中国企业级移动应用市场规模为9.3亿美元,预计2017年将达到41.5亿美元,2013~2017年的复合增长率为45.3%。▲企业移动信息化应用开发模式选型指南 企业移动信息化经历了从观望到摸索,再到落地实施的几个重转载 2014-02-23 21:51:06 · 1757 阅读 · 0 评论 -
WSDL的文件结构(WSDL 1.1规范)
为能将一个WebService描述清楚,WSDL从三个层面对一个服务进行了描述:一:描述服务的接口(部分),也就是服务有哪些操作(部分)以及每个操作的输入输出参数(部分,其中参数的数据结构是由来描述的)。二:描述服务的“binding”(部分),也就是服务使用了什么样的传输协议(是soap还是其他)以及何种调用风格(即style,soap支持rpc和document两种风格)三转载 2013-11-20 09:28:56 · 1294 阅读 · 1 评论 -
实施微服务,我们需要哪些基础框架?
微服务(MicroServices)架构是当前互联网业界的一个技术热点,圈里有不少同行朋友当前有计划在各自公司开展微服务化体系建设,他们都有相同的疑问:一个微服务架构有哪些技术关注点(technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型?笔者之前在两家大型互联网公司参与和主导过大型服务化体系和框架建设,同时在这块也投入了很多时间去学习和研究,有一转载 2016-03-22 10:37:04 · 2894 阅读 · 0 评论 -
微服务架构的优势与不足
编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人,Chris Richardson 与 Martin Fowler、Sam转载 2016-06-27 16:00:47 · 7170 阅读 · 0 评论 -
starUML破解方法(Windows10 & MAC)
最近StarUML由2.0更新到3.0。原来的破解方法,修改license验证函数的方式不能用了。安装位置都变了,已经找不到LicenseManagerDomain.js这个文件了。那该怎么办?老司机告诉大家解决办法。StarUML是用nodejs写的。确切的说是用Electron前端框架写的。新版本中所有的starUML源代码是通过asar工具打包而成。确切的代码位置在“%LOCALAPPD...转载 2018-07-19 10:37:29 · 10753 阅读 · 4 评论 -
Kubernetes1.2如何使用iptables
本次分析的kubernetes版本号:v1.2.1-beta.0。 Kubernetes中kube-proxy组件负责维护NODE节点上的防火墙规则和路由规则,Kube-proxy有两种实现方式,一种是通过iptables,一种是通过userspace,在1.2中将使用iptables作为首选,可以大幅提升性能,下面看看kube-proxy组件是如何操作iptables的。 kube-pr转载 2016-09-22 23:45:59 · 1964 阅读 · 0 评论 -
Kubernetes service探究
Kubernetes是google开源的容器编排器,非常适合当下火热的微服务架构,在容器编排领域,正逐步建立起主导地位。本文主要针对kubernetes service做一些剖析,先简单介绍一下基本概念。基本概念Pod:kubernetes最小调度单位,是一组容器集合,可以理解成一个容器。replication controller:副本控制器,保证pod个数始终与设定值一致,如果遇到转载 2016-09-22 23:45:28 · 3782 阅读 · 0 评论 -
RPC框架性能基本比较测试
gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 我们可以设想一下,未来浏览器支持HTTP2.0,并通过现有开源序列化库比如protobuf等,可以直接和各种语言的服务进行高效交互,这将是多么“美好”的场景!gPRC的Java实现底层网络库转载 2016-09-06 15:30:35 · 5370 阅读 · 0 评论 -
Thrift与其说他传输方式的比较
Thrift与其他传输方式的比较Thrift 是什么? Thrift源于大名鼎鼎的facebook之手,在2007年facebook提交Apache基金会将Thrift作为一个开源项目,对于当时的facebook来说创造thrift是为了解决facebook系统中各系统间大数据量的传 输通信以及系统之间语言环境不同需要跨平台的特性。所以thrift可以支持多种程序语言,例如:转载 2016-09-06 15:30:02 · 4935 阅读 · 0 评论 -
告诉你一个真实的 OpenStack:都谁在用,用来干什么?
OpenStack基金会近日发布的双年调查报告显示,开源云计算软件OpenStack正在进入主流企业市场,但该项目依然面临较难部署和管理的老问题。有一点是毫无疑问的,那就是OpenStack保持着高速增长的态势,超过585家企业,接近4万人通过各种方式支持着这个超过2000万行的开源项目的持续发展。图片:OpenStack以下是IT经理网整理的报告中的一些数据亮转载 2016-09-02 12:56:53 · 4431 阅读 · 0 评论 -
Docker与虚拟机性能比较
docker是近年来新兴的虚拟化工具,它可以和虚拟机一样实现资源和系统环境的隔离。本文将主要根据IBM发表的研究报告,论述docker与传统虚拟化方式的不同之处,并比较物理机、docker容器、虚拟机三者的性能差异及差异产生的原理。docker与虚拟机实现原理比较 如下图分别是虚拟机与docker的实现框架。虚拟机实现框架docker实现框架 比较两图的差异,左图虚拟机的G转载 2016-08-22 23:04:12 · 5926 阅读 · 0 评论 -
php7 vs java8 vs nodejs5 vs lua5.2 计算性能比较
简单比较一下php7和java8的计算和字符串操作性能。机器:osx 10.10 intel corei5 4GB php7.php:[php] view plain copy $t1 = microtime(true); for($i=0; $i$i++){ aa转载 2016-07-25 12:58:29 · 3003 阅读 · 0 评论 -
keepalived+redis 高可用redis主从解决方案
keepalived+redis 高可用redis主从解决方案背景介绍:目前,Redis还没有一个类似于MySQL Proxy或Oracle RAC的官方HA方案。#Redis 2.8版开始正式提供名为Sentinel的主从切换方案(后面附上,未测试)因此,如何在出现故障时自动转移是一个需要解决的问题。通过对网上一些资料的搜索,有建议采用HAProxy或Keepal转载 2016-07-01 15:51:48 · 819 阅读 · 0 评论 -
FlatBuffers与protobuf性能比较
FlatBuffers发布时,顺便也公布了它的性能数据,具体数据请见Benchmark。 它的测试用例由以下数据构成"a set of about 10 objects containing an array, 4 strings, and a large variety of int/float scalar values of all sizes, meant to be rep转载 2016-07-13 09:24:16 · 2787 阅读 · 0 评论 -
Keepalived原理与实战精讲
什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是keepalived实现的基础,那么首先我们来看看VRRP协议注:搞运维的要有足够的耐心哦,不理解协转载 2016-06-30 10:31:29 · 1177 阅读 · 0 评论 -
Keepalived + nginx实现高可用性和负载均衡
前几天使用了Heartbeat作为高可用服务架构的解决方案,今天有试验了一种全新的解决方案,即采用Keepalived来实现这个功能。Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived可以用来防止服务器单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,通过配合Nginx可以实现web前端服务的高可用。Keepalived实现的基转载 2016-06-30 10:30:35 · 1478 阅读 · 0 评论 -
ThoughtWorks技术雷达(2012年10月)
推荐1收藏我们看到,无论是在ThoughtWorks还是在更广泛的社区,采用微服务(micro-services)的越来越多。诸如Dropwizard的框架和声明性配置(declarative provisioning)都表明了技术和工具的成熟。避免通常的大规模整体替换,而是逐个替换系统的各个部分,对系统的总成本有积极的影响。我们看到,这对中长期尤其是二至五年的重写周期影响转载 2013-10-22 15:30:42 · 2230 阅读 · 0 评论 -
ThoughtWorks技术雷达(2012年03月)
简介ThoughtWorks技术战略委员会由ThoughtWorks内部的资深技术专家组成,他们经常聚在一起讨论全球技术战略和对行业有巨大影响的技术趋势。这就促成了《技术雷达》的编制目的——帮助决策者了解目前能够影响市场的新兴技术和趋势。《技术雷达》总结了这些讨论的结果,为包括从CIO到企业开发人员在内的相关人员提供有价值的信息。本文中仅提供内容摘要,读者可以继续探索自己感兴趣的细转载 2013-10-22 15:35:36 · 1905 阅读 · 0 评论 -
ThoughtWorks技术雷达(2013年7月)
2013年7月9日,全球领先的软件定制及咨询公司ThoughtWorks发布了新一期技术雷达。技术雷达作为ThoughtWorks致力于 “推动IT产业变革”的重要技术手段,可以被自由下载。技术雷达是由ThoughtWorks战略技术委员会起草的,其成员定期会晤,利用与遍布世界各地的客户合作过程中总结的经验,和对IT社区的观察,来评估技术发展趋势。 技术雷达针对正在推进下一代软件开发转载 2013-10-22 15:21:04 · 861 阅读 · 0 评论 -
Spring2.5整合ActiveMQ 5.2(P2P文本消息)
<br />项目环境:<br /> JDK1.5 <br /> ActiveMQ5.2<br /> 所用的包都是ActiveMQ自带的。引用的包如下图:<br /><br />package stujms.p2ptxt; <br /><br />import org.springframework.context.ApplicationContext; <br />import org.springframework.context.support.ClassPathXmlApplicat转载 2011-05-02 15:41:00 · 889 阅读 · 0 评论 -
致命错误 影响SOA架构发展的12大问题
<br />非理性的SOA扩展<br /> <br /> 错误一:非理性的SOA扩展<br /> <br /> 服务太多,还未准备好与应用的商业模式相匹配。这样的SOA环境意味着应用完成后需要再次检查。这样的环境可能具有服务众多、大量文档以及新工具和中间件丰富的特点,但却缺乏敏捷性和增量软件版本性,或重用性。 <br /> <br />遗忘数据 <br /> <br /> 错误二:遗忘数据<br /> <br /> 设计一个服务模型就像设计一个数据模型。在处理过程中遗忘数据易于导致服转载 2011-04-22 09:18:00 · 685 阅读 · 0 评论 -
spring3.0整合dwr3.0
最近在用ext+spring框架写应用,经常涉及到前后台数据传递的问题。于是就学习了下dwr,在此将dwr和spring的整合做下整理并记录在此,以便以后回顾. 本人不喜欢过多的配置的烦琐,发现注解用起来工程比较干净,这里就不对配置文件实现的方式进行整理了。 第一步:在web.xml文件中配置dwr的servlet,修改web.xml的文件配置: Xml代码 dwrorg.directwebremoting.spring.DwrSpringServletdebugtrue转载 2010-10-12 13:07:00 · 5902 阅读 · 0 评论 -
使用ControllerClassNameHandlerMapping实现SpringMVC的CoC配置
<br />使用CoC,惯例优先原则(conventionoverconfiguration)的方式来配置SpringMVC可以帮我们声明Controller的时候省下很多功夫。<br />只要我们的Controller是以XXXController的方式命名的话就可以使用到CoC带来的好处。<br />例如,对于普通的Controller(非MultiActionController),CoC帮我们做以下的映射:<br />HomeController映射到/home*请求URL<br />Display转载 2010-10-12 15:35:00 · 10869 阅读 · 3 评论 -
基于Tuscany的SDO实践
现状分析<br /> 随着SOA理念的流行和 WebService等技术的广泛应用,我们发现在越来越多的系统中,我们需要访问各种不同的底层数据,这些数据包括关系型数据库,EJB组件,XML文件或数据库,Web服务, JSP 页面数据等等。为了能够访问和操作这些数据,开发人员必须了解针对不同数据源操作的规范和API。SDO(Service Data Object)为我们提供了统一的数据应用开发框架,它提供了对多种企业信息系统 (EIS) 的统一的数据访问,包括数据库、遗留应用程序(使用 JCA)、XML 或转载 2010-11-27 11:07:00 · 925 阅读 · 0 评论 -
Apache Tuscany SCA 用户指南
<br />这篇用户指南帮助你熟悉SCA概念,并且带你浏览示范怎样创建SCA 应用的一个例子。它也说明了Tuscany支持的多种不同环境(例如命令行客户端或Web应用)以及如何打包程序以运行在这行环境中。<br /> 本说明或许不需要,因为创建一个SCA应用很简单。Tuscany和SCA的主要目的之一是,避免强加的规则和要求,以制约如何去编写应用。我们想让程序员在开发应用的时候,不用担心将要被使用的环境。基本上,你是为了兴趣而写代码,Tuscany提供环境让它运行。因此,本指南只是一个例子,说明怎样开发S转载 2010-11-27 10:52:00 · 1202 阅读 · 0 评论 -
从Spring实例入手谈SCA Component的创建和调用
面向服务组件的架构(Service Component Architecture,SCA),是目前业界最前沿的技术概念之一。但是对于很多开发人员来说,如何在SCA的架构上进行设计和开发还是显得相对抽象的。WID(WebSphere Integration Developer)和WPS(WebSphere Process Server)的推出,使得客户能够更加简单地向面向组件编程模型转变。本文将介绍在SCA编程模型中创建和调用SCA Component的基本概念和方法,并以一系列简单的实例来说明在不同场景中如转载 2010-11-27 10:50:00 · 1435 阅读 · 0 评论 -
运用RUP 4+1视图方法进行软件架构设计
<br />要开发出用户满意的软件并不是件容易的事,软件架构师必须全面把握各种各样的需求、权衡需求之间有可能的矛盾之处,分门别类地将不同需求一一满足。本文从理解需求种类的复杂性谈起,通过具体案例的分析,展示了如何通过RUP的4+1视图方法,针对不同需求进行架构设计,从而确保重要的需求一一被满足。<br />呼唤架构设计的多重视图方法<br />灵感一闪,就想出了把大象放进冰箱的办法,这自然好。但希望每个架构设计策略都依靠灵感是不现实的--我们需要系统方法的指导。<br />需要架构设计的多重视图方法,从根本原创 2010-08-31 15:36:00 · 1120 阅读 · 0 评论 -
JAVA与模式读书笔记(一)
<br />做了3年Java EE开发期间虽然读了不少书,但是从来没写过读书笔记,最近计划重读《Java与模式》决定把我的对于此书的理解写下来供大家讨论。<br />一、 模式的起源<br />模式并非起源于软件行业,而是起源于建筑行业,最早关于模式的著作是建筑工程设计大师C·亚历山大(Christopher Alexander)关于城市规划和建筑设计的两本著作《建筑模式语言》(ALEX77)、《建筑的永恒之道》(ALEX79),虽然他的著作是针对建筑行业,但是其观点同样适用于软件行业。<br原创 2010-08-02 00:18:00 · 728 阅读 · 0 评论 -
架构师的行为准则(三)
<br /><br />让开发人员自己做主 <br /> <br />架构师虽然需要为系统的设计负责,但无须包揽所有的设计工作,应该给予团队成员足够的自主权,让他们发挥自己的创意和能力,你的工作是确保大家的工作能很好的组合在一起,帮助他人解决棘手困难。当你发现同事遇到麻烦时,可以主动给出建议,但更可取的做法是创造良好的氛围,让大家主动向你征求意见。<br /> <br />控制项目规模 <br /> <br />架构师要试图避免做那种“超大型”系统,因为这种系统往往难以控制,控制项目规模的办法通常有:<br原创 2010-07-28 13:26:00 · 549 阅读 · 0 评论