spring cloud demo记录
来源:互联网 发布:java oa项目源码 编辑:程序博客网 时间:2024/05/23 20:01
参考:http://blog.csdn.net/forezp/article/details/70148833
本文demo 参考以上文章进行搭建 ,很详细的一篇文章。
本文只对不同的地方,遇到的小坑 和一些想法写一下。
文章里环境用的IDE JDK8 maven4.0
我这里用的是STS 4.9 剩下都一样
主要搭建服务 分别为 eureka 服务注册 和发现
ribbon + restTemplate 实现负载均衡
feign 默认集成了ribbon,也是实现了负载均衡,所以用feign的比较多
hystrix 断路器,当某个服务出现问题时,会返回一个固定值,避免出现底层服务的连锁故障。
zuul 路由功能,功能和nginx差不多,主要功能还是代理转发和过滤。相比Nginx是自带负载均衡,而zuul是配合eureka,feign进行负载均衡
config 配置中心,利用集群实现配置的统一管理
Bus 消息总线,中间利用轻量级 AMQ 通过API来实现配置更改后的热部署/bus/refush 和实现服务之间的通信
参考文章中整体项目为 maven project ,包含众多model模块来实现。每个模块都实现自己的功能。
我自己进行了一个依赖抽取到父类pom,子模块依赖自己的依赖就可以了。
依旧Parent为 spring-boot-starter-parent 只不过这次的版本用的1.5.2
设置项目编码格式 和JDK 版本为 1.8
设置3个公用的依赖 分别为 eureka boot-start-web boot-start-test
余下子模块项目分别设置自己的自有自来即可,不用像参考文章里那么复杂,每个子模块 pom都是一大堆。
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.demo</groupId> <artifactId>springCloudDemo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>Parent Project</name><modules><module>ribbon</module><module>eurekaServer</module><module>eurekaClient</module><module>feign</module><module>zuul</module><module>configServer</module><module>configClient</module></modules><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.2.RELEASE</version> <relativePath/> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Dalston.RC1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> <repositories> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> </project>
剩下的代码 基本就是跟着参考来。
euraka + feign 基本实现了zookper的负载均衡+服务注册发现功能,
在分布式系统领域有个著名的CAP定理(C-数据一致性;A-服务可用性;P-服务对网络分区故障的容错性,)
区别在于 zookper被设计为CP模式,即任何时刻对ZooKeeper的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性
euraka 则设计为AP模式,各自为战,无法保证数据的一致性,但是在可用性和容错性上要比zookper要更健壮。
如果一个服务器挂机,那么euraka 为自动将请求通过负载均衡转移到有效的请求节点上,如果都挂了,也有断路器的存在 返回一个固定值,总比zookper的timeOut友好的多
euraka 想比于zookper,少了一个选举leader的过程,减少了维护,也有自动刷新缓存和发布服务等对外暴露的接口。
注:参考文章中 第七章 高可用的Config配置中心在 配置 config server 和 config client 在启动类上缺少@EnableEurekaClient 注解,否则无法在eureka中注册服务。
出现过的坑:
在测试zuul demo 过程中,先后启动 eureka-server,eureka-client,ribbon,feign,最后启动zuul,启动成功,查看eureka管理界面有每个项目的成功情况,但是刚启动zuul有几秒的时间 访问任何请求都会报500的错误,提示没有对应的 ribbo 或者 feign服务,过几秒自己就好了。可以正常负载均衡访问 eureka-client了, 很不友好。
然后关闭eureka-client进程,正常应该及时启动断路器,返回断路器的固定值信息,
但是关闭后有2分钟左右时间 请求访问都是报错,time out and no fallMethod back.
测试了好几遍都是这样!
蛋疼哦!!!有遇到这个问题解决了的嘛,请分享一下
- spring cloud demo记录
- spring cloud demo 分析
- spring-cloud demo
- spring cloud 随笔记录
- Spring Cloud组件完整demo
- spring cloud data flow demo
- Spring Cloud组件完整demo
- spring cloud task Demo搭建
- Spring Cloud入门demo笔记
- Spring-Cloud学习之路-问题记录
- Spring cloud系列一 包含所有基本要素的完整Spring Cloud demo
- Spring cloud oauth2.0的源码解析与实践Demo
- spring boot的入门demo搭建记录
- Spring Cloud 中出现的一些坑,记录一下
- Spring Cloud
- Spring Cloud
- Spring Cloud
- Spring Cloud
- okhttp + RecycleView + Glide 请求网络数据及图片
- Zookeeper序列化及通信协议
- CentOs安装再记录
- 使用Retrofit和Rxjava让你的网络请求更简单
- 使用 create-react-app 构建 react应用程序 (react-scripts)
- spring cloud demo记录
- 给大家做一个关于天气的例子
- leetcode---palindrome-partitioning-ii---dp
- js 往数组前推, 与后推
- 仿今日头条TabLayout,侧滑,上拉加载下拉刷新
- java se面试小考题
- Service里面启动Activity和Alertdialog
- Entering Device Firmware Upgrade (DFU) mode
- 提交表单,对表单数据的处理 FormData