SpringCloud--服务治理Eureka
你未必出类拔萃,但一定与众不同
SpringCloud--服务治理Eureka
目录
服务治理中心是微服务(分布式)架构中最基础和最核心的功能组件,主要负责对各个服务实例进行管理,包含服务注册和服务发现
搭建Eureka服务治理中心
1.创建springboot项目,这里就不做详细演示
直接创建一个模块

2.在pom.xml引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
3.创建启动类
@SpringBootApplication
@EnableEurekaServer //服务端的启动类 可以接受别人注册
public class EurekaServer_7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaServer_7001.class,args);
}
}
@EnableEurekaServer
代表SpringBoot应用启动以后,Eureka服务器同步启动。以Appication形式运行。如果启动失败有可能是JDK版本太高,SpringCloud的Netflix组件是依赖于JDK8之前的版本开发的。
此时启动Eureka时,会不停出现异常,例如以下异常,这是因为Eureka服务治理中心会把自己作为微服务去寻找注册自己的治理中心
为了避免这种情况需要进行额外的配置,停止注册自己,进行下一步骤

4.application.yml的创建和编写
spring:
application:
name: eureka-server
server:
port: 7001
#Eureka配置
eureka:
instance:
hostname: localhost #Eureka服务端的实例名称
client:
register-with-eureka: false #是否像eureka注册中心注册自己
fetch-registry: false #fetch-registry表示如果为false 则表示自己为注册中心
service-url: #监控页面
defaultZone: http://localhost:7002/eureka/,http://127.0.0.1:7003/eureka/
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
有了以上配置进行运行就不会出现异常 如下图成功启动

对application.yml的某些参数进行解读
- spring.application.name:配置的是此微服务应用的名称
- eureka.client.register-with-eureka:取消当前微服务注册自己,寻找其他微服务进行注册。
- eureka.client.fetch-registry:取消服务获取功能,false表示自己为注册中心
- eureka.client.service-url.defaultZone:需要注册微服务,通过这个属性来配置服务治理中心的注册地址,其实就是配置一些属性来获取其他注册中心。
5.运行微服务应用
使用localhost:7001进行访问

此时配置注册中心成功
搭建服务发现
需要往服务治理中心注册我们自己的服务实例
因此我这里创建一个模块进行服务的注册
1.创建一个SpringBoot模块项目
这是我的 我在里面还有一些业务代码

2.pom.xml 这是我自己的 用者自取
<!-- EUREKA-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<!-- ACTUATOR完善监控信息-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>com.wyyy</groupId>
<artifactId>springcloud-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.修改SpringBootAppication
@SpringBootApplication
@EnableEurekaClient //启动之后自动注册到服务端
public class SpringCloudProviderUser {
public static void main(String[] args) {
SpringApplication.run(SpringCloudProviderUser.class,args);
}
}
4.修改appication.yml或者是创建编写
server:
port: 8081
spring:
application:
name: springcloud-provider-user
#Eureka 的配置 服务注册到哪里
eureka:
client:
service-url:
defaultZone: http://localhost:7002/eureka,http://127.0.0.1:7003/eureka,http://localhost:7001/eureka
instance:
instance-id: springcloud-provider-user
#info配置
info:
app.name: test-springcloud
company.name: wyyyy
-
eureka.client.service-url.defaultZone:根据这个url往其中注册实例
-
eureka.instance.instance-id:则是往服务中心注册时的名字(后面可以根据这个进行rcp调用)
-
info.app.name:则是此微服务的简介
-
info.company.name:则是当前微服务的一些信息
5.运行SpringCloudProviderUser
会发现此时注册中心已经可以注册进来当前微服务的实例了

个人博客** 欢迎访问

浙公网安备 33010602011771号