Openstack+Kubernetes+Docker微服务实践之路--选型
上一篇博文中我们选定Openstack做为我们的基础设施IAAS平台,本文将明确我们用什么技术做为微服务平台的技术选型。
经过对微服务的特性总结和添加一些个性需求后对微服务平台的基本要求
- PRC远程调用,必须是TCP协议的,HTTP、HTTP/2不考虑,当然可以同时支持
- 服务发现
- 负载均衡
- 平滑升级,服务升级不影响线上业务
- 动态伸缩,阿里叫弹性计算
- 多语言支持,这个在后面专门解释一下为什么要支持多语言
容错等其它特性暂不考虑
选型
最早接触的是阿里的EDAS(HSF)的微服务实现,后来知道他们有开源的Dubbo,再后来发现同类的RPC框架有Thrift、Zeroc Ice、Google的gRpc等,随着深入了解发现大Spring也推出一个微服务开发框架叫Spring Cloud,这么多业界大佬都相继推出自家产品,看来微服务的前景大好!
这么多框架带来的问题了也是显而易见的,用谁,怎么用呢?
从大的格局上考虑,这么多特性都支持的并没有,比如Dubbo的服务发现要用Zookeeper等注册中心来实现,Spring Cloud也是需要安装很多组件来实现并且并不支持弹性和多语言,我本人是一个一切从简的人,不喜欢把事情搞的太复杂也不好维护,直到看到这篇文章 http://www.infoq.com/cn/articles/netflix-oss-spring-cloud-kubernetes ,对Kubernets产生的浓厚的兴趣,之前早听过Kubernets一直以为只是个Docker的编排工具没曾想它还有这么多功能,什么服务发现、负载、弹性等一应俱全, 好,就是你了!
但RPC如何实现?
根据我们的要求支持TCP、多语言上面几个就只剩下Thrift和Ice了,考虑到Thrift比较成熟有Apache做背景就没有继续研究Ice,另外看了下性能测试它俩相差不多

因此RPC框架就确定为Apache Thrift !
那么如何将Thrift跟Kubernets结合使用呢,我们将在下一篇博文中展开讨论!
Openstack+Kubernetes+Docker微服务实践之路--选型的更多相关文章
- Openstack+Kubernetes+Docker微服务实践之路--基础设施
近两年微服务在网上聊的如此的如火如荼,备受关注,我在去年下半年的一个项目中也用到了阿里云的EDAS.HSF,深有体会,最近时间空闲出于好奇,决定一探究竟打算自建微服务平台,基本实现EDAS.HSF的功 ...
- Openstack+Kubernetes+Docker微服务实践之路--RPC
重点来了,本文全面阐述一下我们的RPC是怎么实现并如何使用的,跟Kubernetes和Openstack怎么结合. 在选型一文中说到我们选定的RPC框架是Apache Thrift,它的用法是在Ma ...
- Openstack+Kubernetes+Docker微服务实践之路--服务发布
结合上文,我们的服务已经可以正常运行了,但它的访问方式只能通过服务器IP加上端口来访问,如何通过域名的方式来访问到我们服务,本来想使用Kubernetes的Ingress来做,折腾一天感觉比较麻烦,I ...
- Openstack+Kubernetes+Docker微服务实践之路--Kubernetes
经过几番折腾终于搞定Kubernetes了,我们要在Openstack上部署Kubernetes集群,使用最新工具Kubeadm来安装,由于不能直接访问Kubernetes的源,我们需要一台可以穿墙的 ...
- Openstack+Kubernetes+Docker微服务实践之路--Docker和Registry2
渐入佳境,我们开始比较具体的工作,由于Docker是一个基础组件,所以本文的主题是Docker和Registry2. 底层系统基于Centos7,先在一台云主机上安装Docker,Docker的安装非 ...
- Openstack+Kubernetes+Docker微服务实践之路--弹性扩容
服务上线就要顶的住压力.扛的住考验,不然挨说的还是我们这帮做事的兄弟,还记得上图这个场景吗 老办法是服务集群部署,但总归有个上限,之前跟阿里合作的时候他们有个弹性计算可以通过设置CPU的阀值来动态扩展 ...
- Openstack+Kubernetes+Docker微服务实践
Openstack+Kubernetes+Docker微服务实践 ..... Openstack+Kubernetes+Docker微服务实践之路--选型 posted @ 2016-11-15 ...
- Openstack+Kubernetes+Docker微服务
Openstack+Kubernetes+Docker微服务 渐入佳境,我们开始比较具体的工作,由于Docker是一个基础组件,所以本文的主题是Docker和Registry2. 底层系统基于Cent ...
- QCon技术干货:个推基于Docker和Kubernetes的微服务实践
2016年伊始,Docker无比兴盛,如今Kubernetes万人瞩目.在这个无比需要创新与速度的时代,由容器.微服务.DevOps构成的云原生席卷整个IT界.在近期举办的QCon全球软件开发大会上, ...
随机推荐
- 同时使用python2和Python3
问题:thrift生成的是python2代码,之前使用的是Python3因此需要同时使用两个版本. 方案:将python3的可执行文件重命名为python3(默认为Python),这样使用pyhton ...
- Different Approaches for MVCC
https://www.enterprisedb.com/well-known-databases-use-different-approaches-mvcc Well-known Databases ...
- react-native win7环境搭建
时间:2016-08-22 晚,西安 1.安装jdk java version "1.6.0_45"Java(TM) SE Runtime Environment (build 1 ...
- block(代码块)的介绍以及使用方法和变量之间的关系
http://blog.csdn.net/menxu_work/article/details/8762848 block(代码块)的介绍以及使用方法和变量之间的关系 block(代码块)的介绍以及使 ...
- jqxGrid 绑定格式化
var cellsrenderer = function(row, columnfield, value, defaulthtml, columnproperties) { ) || (row == ...
- wordpress搬家到本地URL修改问题
把原来服务器上面的WordPress的数据库和目录文件全部备份下来,在本地用xampp搭了一个服务器,然后将数据库和目录文件全部导入,更改conf文件中的数据库账号密码.没想到本地网站的所有CSS样式 ...
- js 除法 取整
js 除法 取整 1.丢弃小数部分,保留整数部分 js:parseInt(7/2) 2.向上取整,有小数就整数部分加1 js: Math.ceil(7/2) 3,四舍五入. js: Math.roun ...
- Windows Server 2008 R2 创建辅助DNS服务器并接管主要DNS服务器
公司需求: Zhuyu公司局域网有一台主要DNS服务器,经领导讨论需要规划安装一台辅助DNS服务器备用. 功能需求: 当主要DNS服务器宕机或系统崩溃,辅助DNS服务器能接管主要DNS服务器工作,并且 ...
- 手动启动mongodb和nodejs程序
最近做单片机去了,以前用的mongodb和nodejs没有配置成服务,居然忘了如何手动启动.在此记录下 一.手动启动mongodb 1.进入cmd 2.在dos下打开mongodb路径E:\mongo ...
- 获取乌云补天指定关键字的漏洞并输出URL和标题
#coding=utf-8 import urllib2 import re import time def timestamp(): return str(time.strftime ...