天天看点

springCloud入门学习(二):认识springcloud

一、概念

基于springboot基础上用于快速构建分布式系统的通用模式的工具集。

二、特点

1、约定优于配置;

2、隐藏组件复杂性;

3、轻量级组件;

4、组件丰富,功能齐全,例如:服务发现、断路器、微服务网关等;

5、选型中立、丰富;

6、灵活。

三、服务消费者与服务提供者

在微服务架构中有两种角色:服务消费者与服务提供者,二者关系如下:

服务提供者:服务的被调用者

服务消费者:服务的调用者

例如,在电影系统中,用户购买电影票票之前,电影服务需要调用用户服务的接口获取用户信息,此时的电影服务就是调用方,即服务消费者,用户服务为被调用方,即服务提供者。

四、微服务实践

1、服务提供者:用户服务

项目结构如下:

springCloud入门学习(二):认识springcloud

这个demo主要是为了演示服务与服务之间的通信,因此不再配置数据源。

user.java

iuserservice.java

userserviceimpl.java

usercontroller.java

returnutil.java

application.yml

启动项目后访问:http://localhost:8010/user/getuserinfo?userid=1

得到相应:

表示接口已通。

2、服务消费者:电影服务

项目架构如下:

springCloud入门学习(二):认识springcloud

user.java和returnutil.java与上例相同在此不再展示。

movieapplicaiton.java

moviecontroller.java

此时启动项目,访问:http://localhost:8020/movie/findbyid?userid=1

得到响应:

至此,一个简单的电影微服务就完成了。

五、上述例子中存在的问题

1、在代码中写死访问路径

在电影服务中,可以将user服务的访问路径写到yml配置文件中,使代码更清爽:

yml:

2、适用场景有限:当用户服务的地址或端口号发生改变时,需要修改电影服务的配置文件并且重新部署,这显然是不可取的。

继续阅读