分布式服务学习第一天.
分布式服务提出背景:
日渐增多的用户以及上千万的业务数据访问量,依靠传统的单体应用架构的服务器是无法招架高并发高数据处理业务的,以及后期的维护也极其困难,这时候微服务架构这时候就应运而生了.
微服务架构将传统的单体模式的项目,拆分成多个子项目进行部署,每个子微服务之间由http轻量级的协议来进行通讯以及相互调用,每个字微服务且互相独立,可以单独测试和部署.
微服务优势:
每个微服务承担小部分业务,更少的并发量以及更少的数据处理,稳定性更高,后期维护也不用全部停机,拓展也比较方便.
来自pivotal公司的SpringCloud架构满足了这一需求.
Spring Cloud默认提供以下功能:分布式版本化配置管理
1.服务注册和发现
2.服务路由
3.负载均衡
4.熔断器
5.全局锁
6.集群选举及集群状态
7.分布式消息
demo测试:
模仿电影评分:
1.评分服务端:
配置好applica.properties 文件
# 配置服务器的名字spring.application.name=rating#端口设置server.port=10001#配置注册服务器eureka.client.service-url.defaultZone=http://localhost:9600/eureka/
配置启动类
(懒!只编写了)编写控制层
2.服务注册端
1.application.properties配置文件
spring.application.name = eureka-serverserver.port=9600eureka.client.register-with-eureka=falseeureka.client.fetch-registry=falseeureka.instance.hostname = localhosteureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
2.启动器
3.电影服务:
1.application.properties文件
spring.application.name=movieserver.port=10002eureka.client.service-url.defaultZone = http://localhost:9600/eureka/
2.启动器
3.这点比较重要(配置远程服务)
@Configurationpublic class MovieConfig { /** * 配置一个RestTemplate 用于远程服务 */ @Bean public RestTemplate restTemplate(){ return new RestTemplate(); }}
4.控制层