手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
Java 杂谈
一步一步搭建springCloud
一步一步搭建springCloud
作者:
冯匿
| 来源:发表于
2019-05-22 21:41 被阅读0次
一、spring cloud简介
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
二、创建服务注册中心
我们需要用的的组件上Spring Cloud Netflix的Eureka ,eureka是一个服务注册和发现模块。
1、创建一个web-app的maven工程。此处命名为:springcloud
2、在该工程下创建module。
选择springboot的快速创建。
勾上Eureka Server。以便自动导入包
3、可以检查一下pom文件,这里的依赖如下:
4、在application中加入注解
@EnableEurekaServer
,申明此处为服务注册中心。
5、yml中的加入如下配置:
registerWithEureka 和
fetchRegistry 设置为false,表明自己属于服务中心主体
6、启动服务,登陆浏览器查看。
http://localhost:8761/
红框内为已经注册的服务。这里我们只有服务中心,没有写生产者,所以红框中的内容应该是空。
三、创建生产者
创建的过程如server一样即可。
1、创建完成之后检查一下pom文件,这里提供依赖如下:
2、在application中加入注解
@EnableEurekaClient
,表明自己属于一个生产者。
这里为了方便测试,直接使用
@RestController
获取返回值。
3、yml配置
端口不能与上面的相同。这里的服务name:service-hi 可以根据自己情况定义。
4、运行服务,登陆环境
http://localhost:8765/hi?name=fys
可以看到如下信息。这里用postman进行测试:
在8761这个端口中,也能看到,该信息已经在服务中心进行了注册。名字为我们yml中进行配置的名字。
三、创建消费者
1.1 方式一:服务消费者(rest+ribbon)
1、创建消费者modul,流程如上述工程创建流程。
2、引入pom依赖
断路器依赖在此章节中可以不需要引入。
3、yml配置
在工程的配置文件指定服务的注册中心地址为
http://localhost:8761/eureka/
。
4、application中加入注解:
@EnableDiscoveryClient
并且加入restTemplate以消费相关的服务。
5、创建service和controller。
这里利用字符串进行传输。当然
restTemplate
也是可以以对象进行传输的。
例如:
service-hi中的返回如下:
调用界面如下。
可以看到,都是能成功获取到相关的返回内容。这里用object的封装是为了方法的通用性。(这里key值如果为数字,只测试过字符串的数字,会引起报错。有兴趣的可以进一步研究)。
测试结果如下:
6、增加断路器
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用。为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。为了解决这个问题,业界提出了断路器模型。
Netflix开源了Hystrix组件,实现了断路器模式,SpringCloud对这一组件进行了整合。 在微服务架构中,一个请求需要调用多个服务是非常常见的,如下图:
较底层的服务如果出现故障,会导致连锁故障。当对特定的服务的调用的不可用达到一个阀值(Hystric 是5秒20次) 断路器将会被打开。
断路打开后,可用避免连锁故障,fallback方法可以直接返回一个固定值。
首先。需要引入断路器的pom依赖:
在application中增加@EnableHystrix注解表示开启断路器
在上一小节基础上增加断路器所需的fallback方法:
代码如下:
完成上述工作后,将service-hi服务关闭,调用service-ribbon 的hi方法。可以看到hiError的输出结果。
喜欢的可以加关注哦
这里给大家介绍一个java互联网架构Q裙:815220368 进裙可以麻烦领取资料干货和免费解答
相关文章
网友评论
Java 杂谈
本文标题:
一步一步搭建springCloud
本文链接:
https://www.haomeiwen.com/subject/cbupzqtx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
Java 杂谈
摄影
故事
互联网
读书
旅行
热点阅读
清洁工的机器
自我改变的内在资源如何调动
黑界元老白羊
愿我的心……
一起来读书吧
丰盛日记-Day31
我被骗的那些经历,你不知道就亏大了!
南昌美式乡村92平装修日记(已完工)
奶奶生病了
伊生创业观:干货!3个月让一家频临倒闭的店铺收入20万
Java 杂谈
java加密解密实用技术
万能 Java
OOM分析之问题定位(一)
JAVA面试
Java - 软件界的擎天柱
JAVA内存泄漏解决日记
Netty学习随笔
Java常量池理解与总结
Java线程面试题
编译器---语法分析器(java)
网友评论