2018/2/17 SpringCloud的一个简单小介绍
在学习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的一个简单小介绍的更多相关文章
- 关于Hibernate的一个简单小程序
本人根据视频学习了一下三大框架中比较简单的一个Hibernate,并简单完成了一个运用Hibernate的小程序 Hibernate是一个简化web程序Dao层的一个框架,应用他,可以完全脱离sql语 ...
- 关于ExpandableListView用法的一个简单小例子
喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...
- Paxos算法的一个简单小故事
一.Paxos是什么? Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zooke ...
- 一个简单小技巧实现手机访问.html文件网页效果
注册登录Github不解释 settings设置往下拉 选择一个主题上传代码文件到code 打开这个文件选择此时的网址 在网址前面加上 这段代码 http://htmlpreview.github.i ...
- scrapy的一个简单小项目
使用scrapy抓取目标url下所有的课程名和价格,并将数据保存为json格式url=http://www.tanzhouedu.com/mall/course/initAllCourse 观察网页并 ...
- 使用 Suricata 进行入侵监控(一个简单小例子访问百度)
前期博客 基于CentOS6.5下Suricata(一款高性能的网络IDS.IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐) 1.自己编写一条规则,规则书写参考snort规则(suricata ...
- python+requests----登录接口reponse中token传递给其他接口使用的一个简单小示例介绍
#!/usr/bin/env python # coding=UTF-8 import requests def login(): url = "https://xxxx.xxx.xxx/v ...
- 一个简单用原生js实现的小游戏----FlappyBird
这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习 这是html结构 <!DOCTYPE html><html lang="en">&l ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十四)——开发环境容器调试小技巧
之前有很多同学提到如何做容器调试,特别是k8s环境下的容器调试,今天就讲讲我是如何调试的.大家都知道在vs自带的创建项目模板里勾选docker即可通过F5启动docker容器调试.但是对于启动在k8s ...
随机推荐
- 443 String Compression 压缩字符串
给定一组字符,使用原地算法将其压缩.压缩后的长度必须始终小于或等于原数组长度.数组的每个元素应该是长度为1 的字符(不是 int 整数类型).在完成原地修改输入数组后,返回数组的新长度.进阶:你能否仅 ...
- 225 Implement Stack using Queues 队列实现栈
Implement the following operations of a stack using queues. push(x) -- Push element x onto stack.pop ...
- java自动包装与解包
关于java的自动包装机制想必大家都用过吧,一般这些机制都用于在往容器中存储基本类型数据的时候,因为容器中不允许存在基本数据类型,所以就会调用自动包装机制,将基本数据类型转换为对象,将基本数据保存在对 ...
- 获取请求服务器传输协议http or https
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PO ...
- [Android]如何实现无限滚动的ListViw/GridView(翻译)
ListView和GridView已经成为原生的Android应用实现中两个最流行的设计模式.目前,这些模式被大量的开发者使用,主要是因为他们是简单而直接的实现,同时他们提供了一个良好,整洁的用户体验 ...
- android 设置跳转
android.provider.Settings. 1. ACTION_ACCESSIBILITY_SETTINGS : // 跳转系统的辅助功能界面 Intent ...
- (转)淘淘商城系列——KindEditor富文本编辑器的使用
http://blog.csdn.net/yerenyuan_pku/article/details/72809794 通过上文的学习,我们知道了怎样解决KindEditor富文本编辑器上传图片时的浏 ...
- (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ...
- day21-5 类的多态与多态性
类的多态与多态性 多态 多态指的是一类事物有多种形态,如动物有多种形态:人.狗.猪 import abc class Animal(metaclass=abc.ABCMeta): # 同一类事物:动物 ...
- CREATE USER - 创建一个新的数据库用户帐户
SYNOPSIS CREATE USER name [ [ WITH ] option [ ... ] ] where option can be: SYSID uid | [ ENCRYPTED | ...