微服务架构介绍和RPC框架对比

1.微服务架构

1.1 特征

自动化部署,端点智能化,语言和数据的去中心化控制。

1.2架构

一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。可通过全自动部署机制独立部署,共用一个最小型的集中式的管理。服务可用不同的语言开发,使用不同的数据存储技术。

  • 去中心化基础设施

  • 去中心化数据库

1.3微服务设计模式

  • 聚合式(推荐)

  • 代理(推荐)

  • 链式

  • 分支

  • 异步消息

1.4微服务实现

1.4.1  通信方式

REST和RPC

1.4.2  RPC框架

  • Dubbo/ Dubbox

阿里巴巴公司开源的一个Java高性能优秀的服务框架,可以和Spring框架无缝集成,相关资料很丰富。

遗憾的是已经停止维护了,相关的依赖类比如Spring,Netty还是很老的版本。倒是当当网之类的再继续维维护,即Dubbox,并且实现了REST的支持。

Dubbo主要实现了服务治理,其他为保证集群安全、可维护、可测试等特性方面都没有很好的实现,但是几乎大部分关键组件都能找到第三方开源来实现。

所以,如果选择Dubbo请务必在各个环节做好整套解决方案的准备,不然很可能随着服务数量的增长,整个团队都将疲于应付各种架构上不足引起的困难,不能让各环节人员真正的专注于业务逻辑。

  • Motan

新浪微博的服务治理框架,2016年5月开源,Motan是一个小而精的 RPC 框架,它的特点是简单、易用,是一个轻量级 RPC框架。

与Dubbo相比,Motan在功能方面并没有那么全面,也没有实现特别多的扩展。用的人比较少,功能和稳定性有待观望。对跨语言调用支持较差,主要支持java。

  • Spring Cloud(推荐)

Spring Cloud 完全基于Spring Boot,是一个非常新的项目,2016年才 1.0 release。版本提升非常迅速,发展势头良好。

Spring Cloud依然发扬了Spring Source整合一切的作风,以标准化的姿态将一些微服务架构的成熟产品与框架揉为一体,并继承了Spring Boot简单配置、快速开发、轻松部署的特点,让原本复杂的架构工作变得相对容易上手一些。服务调用方式是基于REST API的。

缺点是项目很年轻,很少见到国内业界有人在生产上成套使用,一般都是只有其中一两个组件。相关的技术文档大部分是英文的,案例也相对较少,使用的话需要摸索的时间会长一些。

下图是Spring Cloud和Dubbo的对比:

  • gRPC

Google发布的开源RPC框架,高性能、开源、将移动和HTTP/2放在首位的通用的RPC框架,基于HTTP/2, netty4.1, proto3, 拥有非常丰富而实用的特性,堪称RPC 框架的典范。

但它本身它不是分布式的,所以要实现上面的框架的功能需要进一步的开发。

--------------------------------------------------------------------
PS: 欢迎关注公众号"Devin说",会不定期更新Java相关技术知识。
--------------------------------------------------------------------

微服务架构介绍和RPC框架对比的更多相关文章

  1. 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比

    远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...

  2. jhipser微服务架构介绍

    内容提要 本文涉及以下内容: 微服务架构介绍 spring cloud介绍 jhipster架构介绍 微服务架构介绍 微服务概念 微服务和SOA很相似,都是按照业务功能把系统拆分成一个一个的服务.比如 ...

  3. HTTP和RPC是现代微服务架构,HTTP和RPC是现代微服务架构

    .NET Core使用gRPC打造服务间通信基础设施   一.什么是RPC rpc(远程过程调用)是一个古老而新颖的名词,他几乎与http协议同时或更早诞生,也是互联网数据传输过程中非常重要的传输机制 ...

  4. 微服务理论之二:面向微服务架构与传统架构、SOA对比,以及云化对比

    一.Monolith 网上对Microservice进行介绍的文章常常以Monolith作为开头,我也不会例外.原因是,知道了Monolith的不便之后才能更容易地理解Microservice架构模式 ...

  5. 【JMICRO】 微服务简介及异步RPC体验

    一,为什么写JMicro 印象中初次接触微服务大概是2011年,那会做Eclpise插件开发,网上查看好多关于OSGI的技术文章,发现Spring新出了一个叫Spring-boot的框架,那会没太上心 ...

  6. Spring Cloud Alibaba微服务架构入门最容易理解篇

    微服务架构介绍 Spring Cloud Alibaba推荐的微服务生态架构基于分层架构实现如下: 接入层:最外层为LVS+Keepalived,可承受几十万级高并发流量洪峰,然后再通过内层的ngin ...

  7. 为什么说要搞定微服务架构,先搞定RPC框架?

    今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一.需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队 ...

  8. 【58沈剑架构系列】为什么说要搞定微服务架构,先搞定RPC框架?

    第一章聊了[“为什么要进行服务化,服务化究竟解决什么问题”] 第二章聊了[“微服务的服务粒度选型”] 今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC ...

  9. 为什么说要搞定微服务架构,先搞定RPC框架

    今天开始聊一些微服务的实践,第一块,RPC框架的原理及实践,为什么说要搞定微服务架构,先搞定RPC框架呢? 一.需求缘起 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队 ...

随机推荐

  1. KVM克隆 快照

    原创博文安装配置KVM http://www.cnblogs.com/elvi/p/7718574.htmlweb管理kvm http://www.cnblogs.com/elvi/p/7718582 ...

  2. 使用python

    最近看视频学习,老师布置了个作业,关于如何使用python将多个excel进行合并,老师写的代码我感觉比较复杂,下面是我自己改良之后较简单的方式. 实现这个功能主要有两种方法,一种是用xlwd,xls ...

  3. Win10 之最新最简单有效安装配置adb

    今天在新买的笔记本上安装配置adb,开始觉得挺简单的事,公司win7电脑上有现成的,但实际过程中--没想的那么简单了!好了,废话少说,直接正题. 研究了好一会下,总算搞定,总结如下: 1.下载Andr ...

  4. 实战-Mysql主从复制

    前言: Mysql内建的复制功能是构建大型高性能应用程序的基础.由于目前mysql的高可用性架构MMM和MHA均建立在复制的基础之上,本文就mysql主从复制进行实战描述,希望对读者提供帮助.之前 服 ...

  5. eclipse设置author等注释

    windows--> preference--> PyDev --> Editor --> Templates 点击New,新建一个template,输入name(之后选择这个 ...

  6. NDK开发过程自认为好的一些参考资料

    虽然NDK开发时间很短, 但也接触了一些自认为还不错的资料, 记录下来. 一.首先就说官方文档吧 网上资料好多过时了, 并且有点参差不齐. 所以看官方文档还是很有必要的,我根据我的需求整理了两个的链接 ...

  7. 阅读《Android 从入门到精通》(12)——自己主动完毕文本框

    自己主动完毕文本框(AutoCompleteTextView) java.lang.Object; android.view.View; android.view.TextView; android. ...

  8. hdu 5225 Tom and permutation(回溯)

    题目链接:hdu 5225 Tom and permutation #include <cstdio> #include <cstring> #include <algo ...

  9. [开源项目] Android校验库 - FireEye

    简单易用的Android校验库. 这是一个简单Android校验库,按配置来验证用户输入的表单信息. 仅仅须要几行代码,就可以验证用户输入,而且将验证错误反馈给用户. 它内置了大量经常使用的验证类型, ...

  10. poj - 1185 炮兵阵地 状压DP 解题报告

    炮兵阵地 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 21553   Accepted: 8363 Description ...