4.微服务之Eureka服务注册

是什么

SpringCloud封装了netflix公司开发的Eureka模块来实现服务注册与发现(可以对比zookeeper),netflix在设计
Eureka时遵循的是AP原则(CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得

Eureka的基本架构
在这里插入图片描述
Eureka采用了C-S的设计架构,Eureka Server 作为服务注册功能的服务器,它是服务注册中心;而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。

Eureka包含两个组件:Eureka Server和Eureka Client
Eureka Server提供服务注册,各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表就会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到;EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)
三大角色
Eureka Server 提供服务注册和发现
Service Provider服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到
Service Consumer服务消费方从Eureka获取注册服务列表,从而能够消费服务
根据上章所讲项目继续进行修改和改造
A.microservicecloud-eureka-7001eureka服务注册中心Module
1.新建microservicecloud-eureka-7001Module
2.修改pom文件,完整内容

  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.demo.springcloud</groupId>
    <artifactId>microservicespringcloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>microservicecloud-eureka-7001</artifactId>
  
  <dependencies>
   <!--eureka-server服务端 -->
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka-server</artifactId>
   </dependency>
   <!-- 修改后立即生效,热部署 -->
   <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>springloaded</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
   </dependency>
  </dependencies>
  
</project>

3.修改yml文件,内容如下:

  port: 7001
eureka:
  instance:
    hostname: localhost
  client:
    register-with-eureka: false #false表示不向注册中心注册自己。
    fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址

4.新建EurekaServer7001_App启动类

@EnableEurekaServer//EurekaServer服务器端启动类,接受其它微服务注册进来
public class EurekaServer7001_App {

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

5.测试
启动项目,并输入http://localhost:7001/,如下界面:
在这里插入图片描述
B.microservicecloud-provider-dept-8001将已有的部门微服务注册进eureka服务中心
1.修改microservicecloud-provider-dept-8001
2.修改pom文件,在原来的基础上添加下面依赖

<!-- 将微服务provider注册进eureka -->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-config</artifactId>
   </dependency>

3.修改yml文件,在原来的内容基础上添加

eureka:
  client: #客户端注册进eureka服务列表内
    service-url: 
      defaultZone: http://localhost:7001/eureka

4.修改DeptProvider8001_App主启动类
在类名上添加@EnableEurekaClient 这个注解,表示该服务启动后会自动注册进eureka服务中
5.测试
先要启动EurekaServer,也即是EurekaServer7001_App,之后启动microservicecloud-provider-dept-8001,之后在浏览器中输入http://localhost:7001/
在这里插入图片描述
微服务注册名说明:
在这里插入图片描述
@EnableEurekaServer和@EnableEurekaClient分别是eureka服务端/客户端
C.actuator与注册微服务信息完善
1.主机名称:服务名称修改
当前问题是显示主机名,目的是不显示主机名,显示成自己设置的名字
在这里插入图片描述
修改microservicecloud-provider-dept-8001里面的yml文件
在这里插入图片描述
之后刷新http://localhost:7001/
在这里插入图片描述
注意到左下角处显示的内容,由此推出下面需要解决的问题
2.想要左下角显示ip地址信息
修改修改microservicecloud-provider-dept-8001的yml文件
在这里插入图片描述
之后刷新http://localhost:7001/
在这里插入图片描述
点击左下角的地址,即引出下面问题
3.微服务info内容详细信息显示友好
a 修改microservicecloud-provider-dept-8001pom文件内容,添加下面内容

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

b.总的父工程microservicecloud修改pom.xml添加构建build信息

<build>
   <finalName>microservicecloud</finalName>
   <resources>
     <resource>
       <directory>src/main/resources</directory>
       <filtering>true</filtering>
     </resource>
   </resources>
   <plugins>
     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-resources-plugin</artifactId>
       <configuration>
         <delimiters>
          <delimit>$</delimit>
         </delimiters>
       </configuration>
     </plugin>
   </plugins>
  </build>

c.修改microservicecloud-provider-dept-8001的yml文件

info:
  app.name: demo-microservicecloud
  company.name: www.demo.com
  build.artifactId: $project.artifactId$
  build.version: $project.version$

这样在访问信息就比较友好了
在这里插入图片描述
这样eureka服务注册就完成了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值