Eureka 服务与发现(单机模式)

1......   概念: 

            Eureka   是Netflix开发的服务发现框架,本身是一个基于REST的服务,

           主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。

2.....    基于上次代码:

              基于springBoot,,springCloud,mybatis 框架简单 微服开发 ==CRUD (依次为基础进行 添加 eureka 服务与 发现代码

3.....  provider 类 的 resources / application.yml 加上代码    

 1 server:
 2   port: 8001
 3 mybatis:
 4   config-location: classpath:mybatis/mybatis.cfg.xml #mybatis 配置文件路径
 5   type-aliases-package: com.wsc.core.pojo # entity别名类所在包
 6   mapper-locations: mybatis/mapper/*.xml    # mapper映射文件
 7 spring:
 8   application:
 9     name: microserver-product #这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name
10   datasource:
11     type: com.alibaba.druid.pool.DruidDataSource
12     driver-class-name: com.mysql.cj.jdbc.Driver
13     url: jdbc:mysql://127.0.0.1:3306/springcloud_db01?serverTimezone=GMT%2B8
14     password: wsc
15     username: root
16     dbcp2:
17       min-idle: 5                         # 数据库连接池的最小维持连接数
18       initial-size: 5                     # 初始化连接数
19       max-total: 5                        # 最大连接数
20       max-wait-millis: 150                                    # 等待连接获取的最大超时时间
21 
22 eureka:
23   client:
24     register-with-eureka: true             #服务注册开关
25     fetch-registry: true                  #服务发现开关
26     service-url:
27       defaultZone: http://localhost:6001/eureka # 1 显示主机名
28   instance:
29     instanceId: ${spring.application.name}.${server.port} #  2   指定实例ID 不显示主机名
30     preferipAddress: true
View Code

           启动类上:加上注解:

1 @EnableEurekaClient //  本服务启动后 自动注册进Eureka中心
2 @MapperScan("com.wsc.core.mapper") //mapper扫描包 类 ProductMapper
3 @SpringBootApplication 
4 public class Start_8001 {
5     public static void main(String[] args) {
6         SpringApplication.run(Start_8001.class,args);
7     }
8 }

4..... 新建 eureka-6001 服务包

   resources / application.yml

 1 server:
 2   port: 6001
 3 eureka:
 4   instance:
 5     hostname: localhost
 6   server:
 7     enable-self-preservation: false  # 禁用自我保护模式
 8   client:
 9     register-with-eureka: false #服务注册开关
10     fetch-registry: false #服务发现开关
11     service-url:
12      defaultZone:  #  http://localhost:6001/eureka   #  1  显示主机名 单机是配置自己  如果不配置默认端口是8761
13        http://${eureka.instance.hostname}.${server.port}/eureka   #  不显示主机名
View Code 

 启动类:  

 1 package com.wsc.core.eureka;
 2 
 3 import org.springframework.boot.SpringApplication;
 4 import org.springframework.boot.autoconfigure.SpringBootApplication;
 5 import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 6 
 7 /**
 8  * @version 1.0
 9  * @ClassName Start_6001
10  * @Description TODO
11  * @Author WSC
12  * @Date 2019/8/28 14:11
13  **/
14 @EnableEurekaServer //声明注册中心
15 @SpringBootApplication
16 public class Start_6001 {
17     public static void main(String[] args) {
18         SpringApplication.run(Start_6001.class,args);
19     }
20 }
View Code

5....测试结果:

单机

这是测试关闭保护,正常开发需要开启保护。

enable-self-preservation: false  # 禁用自我保护模式 (不写  或 设置 true)

 THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.    

自我保护模式被关闭,这可能无法在网络/其他问题的情况下保护实例失效。

原文地址:https://www.cnblogs.com/wangshichang/p/11425876.html