概述
Day01_认识SpringCloud+Eureka注册中心
- 一、学习环境准备
- 二、什么是微服务?
- 三、Spring Cloud
- 3.1 什么是Spring Cloud
- 3.2 Spring Cloud 介绍
- 四、Spring Cloud 技术组成
- 五、 Spring Cloud 对比 Dubbo
- 六、Eureka 注册中心 介绍
- 6.1 什么是注册中心
- 6.2 Eureka 注册中心
- 6.3 学习官网
- 6.4 Eureka的三种角色
- 6.5 Eureka的运行流程
- 七、 学习准备
- 7.1 创建父工程
- 7.2 统一编码集
- 7.3 注解的配置
- 7.4 热部署设置
- 八 、 Eureka 入门案例
- 8.1 创建注册中心
- 8.1.1 在父工程下新建Module - eureka-server
- 8.1.2 等待依赖下载完成后修改配置文件
- 8.1.3 在SpringBoot主启动类里加注解-@EnableEurekaServer
- 8.1.4 启动服务
- 8.2 创建服务提供者
- 8.2.1 在父工程下新建Module - service-provider
- 8.2.2 不同点 - pom.xml中添加的依赖不同
- 8.2.3 修改配置文件
- 8.2.4 修改主启动类 -- 添加 @EnableEurekaClient 注解
- 8.2.5 编写实体类 com.city.serviceprovider.pojo.Item
- 8.2.6 编写服务层接口
- 8.2.7 编写服务层接口实现类
- 8.2.8 编写控制层代码
- 8.2.9 启动测试
- 8.2.10测试调用findAll
- 8.3 创建消费者
- 8.3.1 在父工程下新建Module - service-consumer
- 8.3.2 修改yml配置文件
- 8.3.3 修改主启动类
- 8.3.4 编写实体类Item
- 8.3.5 编写控制层代码
- 8.3.6 测试
- 九、下期更新
一、学习环境准备
- IDEA
- JDK
- MAVEN
- LOMBOK
二、什么是微服务?
三、Spring Cloud
3.1 什么是Spring Cloud
学习官网:点击前往
3.2 Spring Cloud 介绍
spring cloud 是一系列框架的集合。它利用 spring boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 spring boot 的开发风格做到一键启动和部署。spring cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 spring boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
spring cloud 对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用 spring cloud 一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和 docker 容器概念的火爆,也会让 spring cloud 在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在目前五花八门的分布式解决方案中提供了标准化的、一站式的技术方案,意义可能会堪比当年 servlet 规范的诞生,有效推进服务端软件系统技术水平的进步。
四、Spring Cloud 技术组成
-
eureka
微服务治理,服务注册和发现 -
ribbon
负载均衡、请求重试 -
hystrix
断路器,服务降级、熔断 -
feign
ribbon + hystrix 集成,并提供声明式客户端 -
hystrix dashboard 和 turbine
hystrix 数据监控 -
zuul
API 网关,提供微服务的统一入口,并提供统一的权限验证 -
config
配置中心 -
bus
消息总线, 配置刷新 -
sleuth+zipkin
链路跟踪
五、 Spring Cloud 对比 Dubbo
- Dubbo
Dubbo只是一个远程调用(RPC)框架
默认基于长连接,支持多种序列化格式 - Spring Cloud 框架集
提供了一整套微服务解决方案(全家桶)
基于http调用, Rest API
六、Eureka 注册中心 介绍
6.1 什么是注册中心
注册中心可以说是微服务架构中的“通讯录”,它记录了服务和服务地址的映射关系。在分布式系统中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。简单的来说:服务注册中心的作用就是服务的注册和服务的发现。
6.2 Eureka 注册中心
Eureka 是 Netflix 开发的服务发现组件,本身是一个基于 REST 的服务。Spring Cloud 将它集成在其子项目 Spring Cloud Netflix 中,实现 Spring Cloud 的服务注册与发现,同时还提供了负载均衡、故障转移等能力。
6.3 学习官网
点击前往:点击前往
6.4 Eureka的三种角色
角色 | 介绍 |
---|---|
Eureka Server | 通过 Register、Get、Renew 等接口提供服务的注册和发现。 |
Service Provider | 服务提供方,把自身的服务实例注册到 Eureka Server 中。 |
Service Consumer | 服务调用方,通过 Eureka Server 获取服务列表,消费服务。 |
6.5 Eureka的运行流程
七、 学习准备
7.1 创建父工程
选择maven工程
7.2 统一编码集
7.3 注解的配置
7.4 热部署设置
按下 CTRL+ALT+SHITF+/ 会弹出一个窗口,请点击 Registry 。
八 、 Eureka 入门案例
8.1 创建注册中心
8.1.1 在父工程下新建Module - eureka-server
新建Module 叫:eureka-server
8.1.2 等待依赖下载完成后修改配置文件
将配置文件改成yml文件 复制一下内容
server:
port: 7001
spring:
application:
#该名称在集群模式下应该保持一致
name: eureka-server
eureka:
instance:
#服务注册中心实例的主机名
hostname: localhost
client:
#是否将自己注册到注册中心,默认为 true,单实例模式下需要设置为 false
register-with-eureka: false
#是否从注册中心获取服务注册信息,默认为 true,单实例模式下需要设置为 false
fetch-registry: false
#注册中心对外暴露的注册地址
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
8.1.3 在SpringBoot主启动类里加注解-@EnableEurekaServer
package com.city.eurekaserver;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
8.1.4 启动服务
启动当前注册中心应用服务,然后打开浏览器,在浏览器地址栏中输入:http://localhost:7001/
8.2 创建服务提供者
8.2.1 在父工程下新建Module - service-provider
新建Module 叫:service-provider
步骤同上!
8.2.2 不同点 - pom.xml中添加的依赖不同
还有一个lombok 我漏掉了 自行 勾选上 之后用的上
8.2.3 修改配置文件
server:
port: 8001
spring:
application:
#该名称在集群模式下应该保持一致
name: service-provider
eureka:
instance:
#是否使用 ip 地址注册
prefer-ip-address: true
#该实例注册到服务中心的唯一ID
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
#设置服务注册中心地址
service-url:
defaultZone: http://localhost:7001/eureka/
8.2.4 修改主启动类 – 添加 @EnableEurekaClient 注解
8.2.5 编写实体类 com.city.serviceprovider.pojo.Item
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Item {
private Integer id;
private String name;
private Double price;
private Integer count;
}
8.2.6 编写服务层接口
import java.util.List;
public interface ItemService {
List<Item> findAll();
}
8.2.7 编写服务层接口实现类
import java.util.Arrays;
import java.util.List;
@Service
public class ItemServiceImpl implements ItemService {
@Override
public List<Item> findAll() {
return Arrays.asList(
new Item(1, "小米手机", 1000.0D, 100),
new Item(2, "华为手机", 2000.0D, 200),
new Item(3, "苹果手机", 3000.0D, 300)
);
}
}
8.2.8 编写控制层代码
@RestController
public class ItemController {
@Autowired
private ItemService itemService;
@RequestMapping("/provider/item/findAll")
public List<Item> findAll(){
return itemService.findAll();
}
}
8.2.9 启动测试
启动当前服务提供者,然后打开浏览器,在浏览器地址栏中输入:http://localhost:7001/
之前的 Eureka Server 不要停
成功显示:
8.2.10测试调用findAll
http://localhost:8001/provider/item/findAll
8.3 创建消费者
8.3.1 在父工程下新建Module - service-consumer
新建Module 叫:service-consumer
步骤同上!
8.3.2 修改yml配置文件
server:
port: 9001
spring:
application:
name: service-consumer9001
eureka:
client:
#是否将自己注册到注册中心,默认为 true
register-with-eureka: false
#表示 Eureka Client 间隔多久去服务器拉取注册信息,默认为 30 秒
registry-fetch-interval-seconds: 10
#设置服务注册中心地址
service-url:
defaultZone: http://localhost:7001/eureka/
8.3.3 修改主启动类
@EnableEurekaClient
@SpringBootApplication
public class ServiceConsumer9001Application {
public static void main(String[] args) {
SpringApplication.run(ServiceConsumer9001Application.class);
}
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
8.3.4 编写实体类Item
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Item implements Serializable{
private Integer id;
private String name;
private Double price;
private Integer count;
}
8.3.5 编写控制层代码
@RestController
public class ItemController {
public static final String BASE_URL = "http://localhost:8001";
@Autowired
private RestTemplate restTemplate;
@RequestMapping("/consumer/item/findAll")
public List<Item> findAll() {
String findAllUrl = BASE_URL + "/provider/item/findAll";
Item[] items = restTemplate.getForObject(findAllUrl, Item[].class);
return Arrays.asList(items);
}
}
8.3.6 测试
启动当前服务消费者,然后打开浏览器,在浏览器地址栏中输入:http://localhost:9001/consumer/item/findAll
九、下期更新
下一期会更新 eureka 和 “服务提供者”的高可用,Ribbon
感谢观看。哪里有不对请留言纠错哇!
最后
以上就是粗犷眼神为你收集整理的Spring Cloud_Day01_认识SpringCloud+Eureka注册中心(上)一、学习环境准备二、什么是微服务?三、Spring Cloud四、Spring Cloud 技术组成五、 Spring Cloud 对比 Dubbo六、Eureka 注册中心 介绍七、 学习准备八 、 Eureka 入门案例九、下期更新的全部内容,希望文章能够帮你解决Spring Cloud_Day01_认识SpringCloud+Eureka注册中心(上)一、学习环境准备二、什么是微服务?三、Spring Cloud四、Spring Cloud 技术组成五、 Spring Cloud 对比 Dubbo六、Eureka 注册中心 介绍七、 学习准备八 、 Eureka 入门案例九、下期更新所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复