在学习SpringCloud之前,我以为SpringCloud是与Double一样,只是个单纯的RPC框架。但在今天的学习中,我发现并非如此,事实上,SpringCloud是多个框架的集合,感觉Spring一家子都这样,做的更多的是集众人之长,它自己则更像是一个容器,只是为我们提供了很多默认配置和调用模板,让我们使用起来更方便,它支持的功能大概有配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等。所以,SpringCloud的定位已经很清晰了,它就是一个能让你快速构建分布式系统的框架;当然,有一点要注意,SpringCloud是基于Springboot的。
  https://springcloud.cc/ 这是SpringCloud的中文网站,里面可以看到它现阶段能集成的框架。不过有一点要注意的是,在服务注册中心上,SpringCloud虽然也支持Zookeeper,但Eureka更好用,网上的教程也都大都基于Eureka。
首先介绍下Eureka吧,一个服务注册与发现框架,不要以为它与Zookeeper一样,两者功能是不同的,要知道Zookeeper本身只具有存储数据与监听节点功能,所有其它功能都是我们使用代码基于这两个功能之上进行扩展的,它本身是没有像什么服务注册发现,分布式锁,分布式事务,统一管理配置这些功能的;但Eureka则是为了服务注册与发现而生的,这就是它本身自带的功能,同时值得一提的是,它是个Servlet应用,这一点可以自己观看源码(过两天如果有时间的话我会解析源码然后写一下)。同时,Eureka也提供了心跳机制(默认30S),健康检查(和心跳机制不是一个功能,意思是多久没收到心跳我就认定你不健康了,就剔除你这个服务提供者,这个时间间隔可以大于设定的心跳的时间,也就是说,可以在多次收不到心跳后再剔除(默认90S)),客户端缓存

(和Dobbu一样,它也具有消费方缓存服务提供方信息的机制,刷新时间默认是30s,可以自己配置)。而且有一点要注意的是,SpringCloud是通过rest形式来进行服务调用的.所以,我们在命名服务提供方的application name时一定要注意点,这个可不是RPC框架的直接调方法,我们一般使用rest形式调用时都是application name加上context path再加上具体的服务路径进行调用的;

最后,Eureka的集群搭建十分简单,比如在配置文件中写上对方的URL即可,在服务启动时,会互相将自己节点中保存的元数据信息(也就是服务生产方的信息)复制一份到对方的节点中,这样不管哪个节点挂掉都没事。这个和ElasticSearch的主分片,副本分片的机制倒是有异曲同工之妙;

2018/2/17 SpringCloud的一个简单小介绍的更多相关文章

  1. 关于Hibernate的一个简单小程序

    本人根据视频学习了一下三大框架中比较简单的一个Hibernate,并简单完成了一个运用Hibernate的小程序 Hibernate是一个简化web程序Dao层的一个框架,应用他,可以完全脱离sql语 ...

  2. 关于ExpandableListView用法的一个简单小例子

    喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...

  3. Paxos算法的一个简单小故事

    一.Paxos是什么? Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zooke ...

  4. 一个简单小技巧实现手机访问.html文件网页效果

    注册登录Github不解释 settings设置往下拉 选择一个主题上传代码文件到code 打开这个文件选择此时的网址 在网址前面加上 这段代码 http://htmlpreview.github.i ...

  5. scrapy的一个简单小项目

    使用scrapy抓取目标url下所有的课程名和价格,并将数据保存为json格式url=http://www.tanzhouedu.com/mall/course/initAllCourse 观察网页并 ...

  6. 使用 Suricata 进行入侵监控(一个简单小例子访问百度)

    前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 1.自己编写一条规则,规则书写参考snort规则(suricata ...

  7. python+requests----登录接口reponse中token传递给其他接口使用的一个简单小示例介绍

    #!/usr/bin/env python # coding=UTF-8 import requests def login(): url = "https://xxxx.xxx.xxx/v ...

  8. 一个简单用原生js实现的小游戏----FlappyBird

    这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...

  9. 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧

    之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...

随机推荐

  1. Mac OS X:在标题栏上显示目录完整路径

    众所周知mac的finder是不带路径显示的,你进入某个文件夹只会显示当前文件夹的名字而已.虽然你可以在finder的菜单栏中点“显示”-“显示路径栏”把路径栏调出来,但是这样只会不必要的增加find ...

  2. WebForm 开发方式,简单使用

    ASP开发方式 格式 <%  %> C#代码可以写在里面 <%= %>  往外输出一个值,可以放一个变量,一个方法(这个方法是有返回值的直接打印到界面上去) <%@ %& ...

  3. 【Mybatis】环境搭建

    SqlMapConfig.xml(MyBatis配置文件) <?xml version="1.0" encoding="UTF-8" ?> < ...

  4. linux下php开启pdo扩展

    前提:网页报错 为解决问题:Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' 解决方案 : 下载安装PHP_MYSQL扩展 wget http:// ...

  5. iOS---UICollectionView详解和常用API翻译

    UICollectionView 1.必须要设置布局参数 2.注册cell 用法类似于UITableView 类.自动实现重用,必须注册初始化. 使用UICollectionView必须实现UICol ...

  6. Quartz2D知识点聚合案例

    Quartz2D知识点聚合 基本 //画图片 UIImage *image = [UIImage imageNamed:@"阿狸头像"]; [image drawInRect:re ...

  7. 阿里云ECS安装sqlserver,本地无法连接问题排查思路

    1. 阿里云控制台-对应的ECS实例的安全组是否添加了响应的端口(1433)可以访问: 2. 服务器-sqlserver服务是否开启: 3. 服务器-sqlserver配置器,对应的端口是否启用,已经 ...

  8. 迅为4412全新升级版|3G开发板|4G开发板

    iTOP-Exynos4412开发板采用 Exynos4412的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,支持3G/G模块.GPS模块.陀螺仪.HDM ...

  9. 迅为iTOP-4418嵌入式开发板初体验

    iTOP-4418开发板预装 Android4.4.4 系统, 支持9.7 寸.7 寸.4.3 寸屏幕. 参数:核心板参数 尺寸 50mm*60mm高度 核心板连接器为1.5mmCPU ARM Cor ...

  10. cp - 复制文件和目录

    总览 cp [选项] 文件路径 cp [选项] 文件...目录 POSIX 选项: [-fipRr] GNU 参数(最短形式): [-abdfilprsuvxPR] [-S SUFFIX] [-V { ...