SpringCoud服务注册与发现

什么是微服务?

微服务是一种架构风格,并不是一个框架。

微服务的特点

1、由一系列微小服务组成。
2、每个服务单独跑在自己的进程里。
3、每个服务为独立的业务开发。
4、独立部署。
5、分布式的管理。

项目架构的演进:
从单一应用架构=>垂直应用架构=>分布式服务架构=》流动计算架构
在这里插入图片描述

分布式的定义:

旨在支持应用程序和服务的开发,可以利用物理架构由多个自治的处理元素,不共享内存,但通过网络发送消息合作。

简单的微服务架构

在这里插入图片描述
服务架构的基础及框架\组件

  • 服务注册发现
  • 服务网关–限流、监控、日志等。
  • 后端通用服务(也称中间层服务)
  • 前端服务(边缘服务)

在这里插入图片描述
外面常用的微服务有
1、阿里系

  • Dubbo 做服务化治理
  • Zookeeper 服务注册
  • SpringMVC或Spring Boot

2、SpringCloud全家桶。

Spring Cloud是什么?

SpringCloud 是一个开发工具集,包含了多个子项目:

  • 利用Spring Boot的开发便利
  • 主要是基于Netflix开源组合组件的进一步封装。
    Spring Cloud 简化了分布式开发,要想理解微服务更要理解分布式架构的特点。

Spring Cloud Eureka

  • 基于Netflix Eureka 做了二次封装
  • 两个组件组成:
  • Eureka Server 注册中心。供服务注册的服务器
  • Eureka Client (其他服务)服务注册。用来简化与服务器的交互。
Eureka Server 注册中心

1、新建一个Eureka应用
在这里插入图片描述
2、选择eureka server
在这里插入图片描述
3、项目创建完毕需要在启动类上添加注解@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

   public static void main(String[] args) {
      SpringApplication.run(EurekaApplication.class,args);
   }

}

启动项目,访问 http://localhost:8080/ , 会显示如下页面:
在这里插入图片描述
若启动报错是因为Eureka Server 本身即是服务端也是客户端,需要将自己注册在注册中心。
因此需要在application.yml配置文件中进行客户端地址。

ureka:
  client:
    service-url:
        defaultZone: http://localhost:8080/eureka

若不想将服务端注册在注册中心,也可以通过添加配置关闭服务端的客户端功能。

eureka:
  client:
	register-with-eureka: false

给服务进行名字配置

spring:
  application:
    name: eureka
Eureka Client 服务注册

1、新建client项目,选择添加如下依赖:
在这里插入图片描述
2、在启动类中添加注解:@EnableDiscoveryClient

@SpringBootApplication
@EnableDiscoveryClient
public class ClientApplication {

   public static void main(String[] args) {
      SpringApplication.run(ClientApplication.class, args);
   }
}

在配置文件中进行注册中心的地址配置:

eureka:
  client:
    service-url:
        defaultZone:  http://localhost:8761/eureka

如果启动项目的时候,客户端还没启动就被关闭,控制台也没有端口输出,是因为pom引入spring boot的web依赖即可:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

启动项目后,页面如下:
在这里插入图片描述
Status下的地址跳转到一个页面,如果想要自定义跳转地址的ip,可以在配置文件进行配置:

eureka:
  instance:
    hostname: clientname

配置后,点击status中连接跳转页面:
在这里插入图片描述
如果不停的重启client端,当客户端上线率低于某个比例时,会报警告。在开发环境中,可以在Eureka server端配置中关闭:

eureka:
  server:
    enable-self-preservation: false
Eureka 的高可用

当Eureka 服务只在一台服务器上部署时,如果服务器挂掉了此时整个注册中心也就挂了,一般我们在生产环境中,会启动多个eureka,并将eureka两两互相注册。
在这里插入图片描述
将Eureka server 复制两份,定义不同的端口号。
在这里插入图片描述
项目启动,分别在浏览器访问 http://localhost:8761/http://localhost:8762/ 也面如下:
在这里插入图片描述
在这里插入图片描述
均可以发现Client都被注册在上面,此时任何一个Eureka 服务挂掉,client并不受影响。如果client关掉服务并重启,在关掉8761的服务,此时发现8762注册中心并没有client服务。我们需要在client的配置中,进行多个地址配置:

eureka:
  client:
    service-url:
        defaultZone:  http://localhost:8761/eureka,http://localhost:8762/eureka
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值