- 资源介绍
- 更新记录
- 安装教程
项目介绍
java springcloud微服务航班管理系统源码+课程报告
高清视频演示:
https://www.bilibili.com/video/BV1TN4y1c7km/
主要功能说明:
- 质量属性
容错性:
- 集群容错性
本系统部署时可使用多个eureka-server集群,启动时就相互注册,保证AP特性,一个注册中心宕机不影响另一个。
即flight-eureka-server部署为集群,比如3个集群,当两个client注册到注册中心的时候,如果一个server宕机,单机模式的时候就会造成两个client无法正常相互调用服务,如果使用集群的时候就可以在一台master宕机的时候选举出新的master节点进行通讯。
- 界面容错性
在添加航班界面通过正则表达式、js判断等方式限制用户输入增加容错性。
健壮性:
项目使用父子模块的项目构建模式,使得项目功能一目了然,增加了服务可扩展性,加强了项目的健壮性。
可用性:
系统逻辑较为简单,并且使用mvc模式,使得逻辑界面分明,页面反应速度<0.5s。
安全性:
在 eureka 服务治理框架中,微服务与微服务之间通过 Http 协议进行通信,如果我们使用https或者使用MD5等密文传输参数的形式可以大大加强系统的安全性。
可修改性:
系统分为四个模块,可根据自身业务需求变更增改具体业务逻辑。
- 新特性
1.服务提供者
1.1服务注册
服务提供者启动时,会通过rest请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。Eureka Server接收到请求后,将元数据信息存储在一个双层结构的Map中,其中与第一层的key是服务名,第二层的key是具体的服务实例名
eureka.client.register-with-eureka=false 是否向注册中心注册自己 默认 true
eureka.client.fetch-registry=false 是否去检索注册中心的服务 默认 true
1.2服务续约
在注册完服务后,服务提供者会维护一个心跳用来持续高速Eureka Server“我还活着”,以防止Eureka Server的“剔除任务”将该服务实例从服务列表中排除出去
eureka.instance.lease-renewal-interval-in-seconds=30 定义服务续约任务的调用间隔时间 默认30s
eureka.instance.lease-expiration-duration-in-seconds=90 定义服务失效的时间 默认90s
1.3服务下线
当服务实例进行正常的关闭操作时,会触发一个服务下线的rest请求给Eureka Server ,告诉注册中心:”我要下线了“,服务端在接收请求后,将该服务置为下线(DOWN),并把下线时间传播出去(通知服务消费者)
.服务消费者
2.1获取服务
eureka.client.fetch-registry=ture 是否检索注册中心的服务,获取服务则必须设置为true 默认为true
eureka.client.registry.fetch.interval.seconds=30 当启动服务消费者时,会发送一个rest请求给注册中心,来获取上面注册的服务清单;为了性能考虑,Eureka Server会维护一份只读的服务清单来返回给客户端,同时缓存清单会每隔30秒更新一次
.2服务调用
服务消费者获取服务清单后,通过服务名可以获取具体提供服务的实例名和该实例的元数据信息。有了这些元数据信息,客户端可以根据自己的需要决定具体调用哪个实例。对于访问实例的选择,Eureka中有Region和Zone两个概念,一个Region中可以包含多个Zone,每个服务客户端需要被注册到一个Zone钟,所以每个客户端对应一个Region和一个Zone。在进行服务调用时,优先访问同处一个Zone的服务提供方,若访问不到,再访问其他Zone的服务提供者。
3.服务注册中心
3.1服务同步
当两个服务提供者注册到注册中心集群,它们的信息被注册中心集群维护(此时注册中心之间互相注册为服务)当服务提供者发送服务注册请求到一个注册中心时,他会将该请求转发给集群中相连的其他注册中心,从而实现注册中心的服务同步。通过服务同步,两个服务提供者的服务信息就可以通过这两台服务注册中心的任意一台获取到。
3.2失效剔除
有时,服务实例并不一定是正常下线,可能由于内存溢出,网络故障等原因使得服务不能正常工作,而服务注册中心并未收到“服务下线”的请求。为了从服务列表中将这些无法提供服务的实例剔除,Eureka Server在启动时会创建一个定时任务,默认每隔一段时间(默认60s)将当前清单中超时(默认90s)没有续约的服务剔除
3.3自我保护
服务注册到注册中心后,会维护一个心跳连接,告诉Eureka Server自己还活着。Eureka Server 在运行期间会统计心跳失败比例在15分钟内是是否低于85%,如果出现低于的情况(单机调试很容易满足,实际在生产环境中通常是由于网络不稳定导致的),会将当前的实例注册信息保护起来,让这些实例不过期,尽可能保护注册信息。而在这段保护期间内,实例若出现问题,那么客户端会拿到实际已经不存在的服务实例,会出现调用失败的情况,这时客户端就必须要有容错机制,比如请求重试,熔断器等。
- 度量的评估方式
本系统中共有两个微服务,分别为服务提供方和服务消费方。
消费方:
提供方:
服务提供方共有4个接口基于消费方调用:
具体功能:
showCity
方法提供查询当前所有城市的功能。
showFlight
方法提供查询当前对应出发城市和到达城市的航班信息。
count
方法提供了航班查询返回航班数量的功能
add
方法提供了增加航班信息的功能。
适用场景:
运行截图
猜你喜欢
-
某学校配电系统设计任务书
2021-07-17 -
基于SSM的人才招聘网站的研究与实现毕业论文+任务书+开题报告+中期报告+答辩PPT+演示视频+项目源码及Mysql数据库文件
2021-05-31 -
某医院内部网络规划设计
2021-06-15 -
涡旋压缩机定盘平面度测量系统设计开题报告
2021-07-17 -
】虚拟商品交易平台+站长任务平台源码+PC+社区+博客+WAP手机版
2021-05-27 -
java后台+教务小程序源码
2021-05-15 -
湖南科技大学毕业设计(论文)进度表
2021-06-12 -
基于Web的孕婴童时尚生活馆的设计与实现
2021-06-16 -
java题库试卷管理系统+论文+查重报告
2021-05-16 -
123123
2021-06-10
-
java springcloud微服务航班管理系统源码+课程报告
2021-05-03 -
J2ME基于SNMP网络设备MIB信息采集论文和代码
2021-06-10 -
高校自动排课APP的设计与实现开题报告
2021-06-14 -
基于springboot+mybatis学生管理系统
2022-11-07 -
壁面爬行机械手结构设计开题报告
2021-07-17 -
足球训练服务机器人射门位置判别系统设计任务书
2021-06-16 -
电动式主动横向稳定杆系统执行机构设计参数
2021-07-17 -
2019届毕业生毕业设计工作的通知
2021-06-15 -
电动智能小车(完整论文)027
2021-06-13 -
小型风力发电机组动力结构设计\论文+cad图纸+外文翻译+答辩PPT
2021-06-13
猜你在找
99源码网 » java springcloud微服务航班管理系统源码+课程报告
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 99源码网
- 2021-05-03Hi,初次和大家见面了,请多关照!