一、目标分析
目标:
创建微服务父工程heima-springcloud、用户服务工程user-service、服务消费工程consumer-demo
分析:
需求:查询数据库中的用户数据并输出到浏览器
- 父工程heima-springcloud:添加spring boot父坐标和管理其它组件的依赖
- 用户服务工程user-service:整合mybatis查询数据库中用户数据;提供查询用户服务
- 服务消费工程consumer-demo:利用查询用户服务获取用户数据并输出到浏览器
二、搭建配置heima-springcloud
通过<!--springCloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
scope
的import可以继承spring-cloud-dependencies
工程中的依赖
在实际开发中,每个微服务可独立为一个工程
三、搭建配置user-service工程
目标:配置user-service工程并能够根据用户id查询数据库中用户数据
需求:可以访问http://localhost:9091/user/8输出用户数据
实现步骤:
1.添加启动器依赖( web、通用Mapper) ;
2.创建启动引|导类和配置文件;
3.修改配置文件中的参数;
4.编写测试代码( UserMapper , UserService , UserController ) ;
5.测试
四、搭建配置cosumer-demo工程
目标:编写测试类使用restTemplate访问user-service的路径根据id查询用户
需求:访问 http://localhost:8080/consumer/8 使用RestTemplate获取 http://localhost:9091/user/8的数据
实现步骤:
1.添加启动器依赖;
2.创建启动引导类(注册RestTemplate )和配置文件;
3.编写测试代码( ConsumerController中使用restTemplate访问服务获取数据)
4.测试
小结:
分布式服务存在问题:
- 服务管理
如何自动注册和发现
如何实现状态监管
如何实现动态路由
- 服务如何实现负载均衡
- 服务如何解决容灾问题
- 服务如何实现统一配置
五、Eureka注册中心说明
六、搭建eureka-server工程
目标:添加eureka对应依赖和编写引导类搭建eureka服务并可访问eureka服务界面
Eureka是服务注册中心,只做服务注册;自身并不提供服务也不消费服务。可以搭建web_ 工程使用Eureka,可以使用Spring Boot方式搭建。
搭建步骤:
1.创建工程;
2.添加启动器依赖;
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
3.编写启动引导类(添加Eureka的服务注解)和配置文件;
package com.itheima;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringRootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
//声明当前应用为eureka服务
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication f
public static void main(string[] args) {
SpringApplication.run(EurekaServerApplication.class);
}
}
4.修改配置文件(端口,应用名称..) ;
server:
port: 10086
spring:
application:
name: eureka-server # 应用名称,会在Eureka中作为服务的id标识(serviceId)
eureka:
client:
service-url: # EurekaServer的地址,现在是自己的地址,如果是集群,需要写其它Server的地址。
defaultZone: http://127 .0.0.1:10086/eureka
register-wi th-eureka:false # 不注册自己
fetch-registry: false # 不拉取
5.启动测试