在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来一探究竟,抛砖引玉,欢迎大家提供更多的实现远程通讯的技术和原理的介绍。要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一
1
OMGSoaML规范引入了服务架构的概念,是用于对一组参与者如何通过所提供和使用的服务进行交互以完成结果来进行建模的。这是一个相对简单的概念,反映企业长期以来一直在做的事情。但是过去存在各种不同的建模方法,以及由UML、SoaML、SysML和UPDM所支持的不同建模选项,使面向服务架构(SOA)建模人员感到混乱。在本文中,您将了解服务架构的概念:如何指定参与者,如何封装他们之间的交互,如何将它们反映为服务协议,以及如何表达他们打算交付的结果。首先,您将了解类和实例建模之间的区别。希望这可以消除由过去建模功能决定的实践所造成的混乱。最后,您将使用这些概念,从两个角度开发服务架构:一路走下去,您
2021-03-02 10:05:24 571KB 使用SoaML服务架构
1
SOA与构件技术、软件工程、软件平台、信息安全、可信赖计算、软件产业等六个领域的关系既是SOA核心理念,也是其发展与应用的基础。应用需求的快速发展带动了计算机网络技术的快速发展,其直接结果是产生了当前炙手可热的网络服务(WebService)技术,如何合理地把Web服务应用到各类企业的IT系统和商业流程之中、并给企业带来直接的经济效益,一直是备受国内外企业管理者高度关注的课题。面向服务架构(SOA,Service-orientedarchitecture)就是在此背景下出现的,SOA被誉为下一代Web服务的基础框架,目前已经成为计算机信息领域的一个新的发展方向。1996年,Gartner最早提
2021-02-27 17:07:08 144KB 面向服务架构SOA软件产业新火种
1
现在几乎任何一个网站、WebApp以及移动APP等应用都需要有图片展示的功能,对于图片功能从下至上都是很重要的。必须要具有前瞻性的规划好图片服务器,图片的上传和下载速度至关重要,当然这并不是说一上来就搞很NB的架构,至少具备一定扩展性和稳定性。虽然各种架构设计都有,在这里我只是谈谈我的一些个人想法。对于图片服务器来说IO无疑是消耗资源最为严重的,对于web应用来说需要将图片服务器做一定的分离,否则很可能因为图片服务器的IO负载导致应用崩溃。因此尤其对于大型网站和应用来说,非常有必要将图片服务器和应用服务器分离,构建独立的图片服务器集群,构建独立的图片服务器其主要优势:1)分担Web服务器的I/
2021-02-26 17:05:24 358KB 图片服务架构演进
1
服务架构的诞生和容器技术的流行,几乎是同时发生的,这并非偶然,而是互联网时代倒逼传统技术和架构而产生的变革,而以Docker为代表的容器技术则为微服务理念提供了匹配的实现机制,本文作者从什么是微服务切入,详细的介绍了微服务架构的优势,最后从自身实践出发,给出了微服务架构的云端实践。近年来,微服务架构及容器技术备受关注,在各类文章、演讲、博客中频频亮相,成为业界最热门的话题。在时尚的词汇和热情满满的讨论背后,人们开始严肃的重新思考互联网时代服务的架构以及应用开发、运维的方法。微服务以一种全新的架构设计模式,牵动了互联网应用从设计到运维整个流程方法论的变革。??而以Docker为代表的容器技术则
2021-02-26 15:05:55 581KB 基于容器云的微服务架构实践
1
今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢?服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图:服务A是欧洲团队提供服务,欧洲团队的技术背景是Java,可以用Java实现服务;服务B是美洲团队提供服务,可以用C++实现服务;服务C是中国团队提供服务,可以用Go实现服务;服务的上游调用方,按照接口、协议即可完成对远端服务的调用。但实际上,99.9%的公司的团队规模有限,技术团队人数也有限,基本是使用同一套技术体系来调用和提供服务的:这样的话,如果没有统一的服务框架,RPC框架,各个团队的服
1
服务架构解决了很多问题,但是同时引入了很多问题。本文要探讨的是如何解决下面这几个问题。依赖的微服务调用失败了,我应该失败,还是成功。依赖很多外部服务之后,自身如何保障稳定性。如果所有依赖的服务成功,我才算成功,自身的稳定性就堪忧了。如果调用失败时,选择跳过。那么因此产生的数据不一致性问题如何修复?平时毛毛雨,可以忽略。但是大故障之后,人工还是要来擦屁股的,这个成本就特别高。使用消息队列的最大的意义是在让消息可以在故障的时候堆积起来,等故障恢复了再慢慢来处理,减少人工介入的成本。依赖消息队列做系统解耦的时候,怎么确保消息自身是可靠入队列的?消息是否需要先可靠写入队列,然后再提交数据库事务?如果
1
上图是互联网典型的高可用架构,大部分公司如果没有使用微服务,正在使用这样的架构:1.用户端是浏览器browser,APP客户端2.后端入口是高可用的nginx集群,用于做反向代理3.中间核心是高可用的web-server集群,研发工程师主要在这一层进行编码工作4.后端存储是高可用的db集群,数据存储在这一层。更典型的公司,web-server层是通过DAO/ORM等技术来访问数据库。最初的架构都没有服务层,这样的架构会遇到怎样的痛点?对于没有使用微服务架构的公司来说,要不要升级到微服务架构呢?回答这个问题之前,先来看看您是否遇到和58同城及58到家类似的架构痛点:。A、B、C业务线,如果没有微
1
我一直在用draw.io做一些和UML流程图,图表或者曲线图相关的事情。它在丰富的功能和用户的手工控制方面做出了合理的权衡。但是,接下来我会告诉你如何自动化一些无聊的鼠标点击;)DanielWoods的“Microservices:TheRightWay”演讲里其中一张幻灯片如果它不是这样的话事情也不会变得这么有趣。事实上,这里最好能有一张更清晰地展现组件之间关系和职责的图片。不然的话最终结果就是像上面看到的这样;)诀窍便是在做的时候不断审视它哪个地方不对,这样一来便不太可能做的这么糟了。在做图的时候——你也在同时给自己一个整体的感觉,它们将会怎么交互,问题域是什么,上下文,边界,等等。"光纸
1
简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享DB、KV,去掉重量级ESB),并且强调DevOps和快速演化。这就要求我们必须采用与一站式时代、泛SOA时代不同的技术栈,而SpringCloud就是其中的佼佼者。DevOps是英文Development和Operations的合体,他要求开发、测试、运维进行一体化的合作,进行更小、更频繁、更自动化的应用发布,以及围绕应用架构来构建基础设施的架构。这就要求应用充分的内聚,也方便运维和管理。这个理念与微服务理念不谋而合。接下来我们从服务化架构演进的角度来看看为什么Spring
1