在学习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. chart.js图表 传值问题

    php:         $json['status'] = ture;                $json['list']=implode(',',$data);                ...

  2. JDBC基础学习

    1.概念:java数据库连接技术 2.JDBC:是一个规范,提供接口(面向接口编程) 3.JDBC API:提供程序员调用的接口和类,集成在java.sql 和javax.sql包中.如:Driver ...

  3. 【工具】sublime使用技巧

    Ctrl+N 新建一个编辑区,Ctrl+Shift+C 或!加 Ctrl+E新建一个骨架完好的文件. Ctrl+Shift+P开启命令模式,sshtml 切换html语法. esc退出,Ctrl+`打 ...

  4. android中使用图文并茂的按钮

    代码: <LinearLayout android:orientation="horizontal" android:layout_width="match_par ...

  5. Java线程-线程、程序、进程的基本概念

    线程 与进程相似,但线程是一个比进程更小的执行单位.一个进程在其执行的过程中可以产生多个线程. 与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间 ...

  6. 阿里云服务器安装ss使用

    下载安装服务器版shadowsocks yum install epel-release yum update yum install python-setuptools m2crypto super ...

  7. 关于Farseer.net轻量级ORM开源框架 V1.0 概念版本开发的消息

    V0.2版的开源距离今天(05年03月)已有近3年的时间.可以说这个版本已经有点落伍的感觉了,呵呵. V0.2版至今一直处于BUG的修复及一些细小功能的增加,所以版本号上一直没有变化. 其实在这1.2 ...

  8. 常用css属性拓展

    text-overflow:clip | ellipsis(默认值:clip)clip:当内联内容溢出块容器时,将溢出部分裁切掉.ellipsis:当内联内容溢出块容器时,将溢出部分替换为(...). ...

  9. 新萝卜家园Ghost版Win10系统X32极速装机版2015年4月

    来自:系统妈,系统下载地址:http://www.xitongma.com/windows10/2015-03-30/6638.html 新萝卜家园Ghost Win10 X32 10041电脑城极速 ...

  10. vue-cropper

    项目中用到了vue-cropper插件,让我觉得很好用附上两个地址 vue-cropper在git上的地址 https://github.com/xyxiao001/vue-cropper 针对vue ...