SpringCloud Day02---服务发现与注册(Eureka+zookeeper+Consul(二)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: SpringCloud Day02---服务发现与注册(Eureka+zookeeper+Consul)
  • 修改映射配置

找到C:\Windows\System32\drivers\etc路径下的hosts文件,打开并添加映射配置添加进hosts文件.


1bbdf3120add589c651a30ebc20cc9dd.png


修改完成后,刷新DNS缓存


dd562f878347f228b459faa7483e602e.png


  • 写YML

以下是Eureka7001的yaml文件,Eureka7002,7003类似,只不过port和url需要做点修改.


server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7004.com:7004/eureka/
  • 主启动

省略…

  • 启动Eureka7001,7002,7004进行 测试

1fcddfe9185b85da98eac22e86916420.png

7fa87627a3724c991a4e41845a6e1be0.png

84e62568a58dd2db3679ed7b228a59c1.png


2.3.3 将支付服务8001微服务发布到上面3台Eureka集群配置中


server:
  port: 8001
spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/db2021?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 186259
eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
#      defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7004.com:7004/eureka  # 集群版
mybatis:
  mapperLocations: classpath:mapper/*.xml               # 配置Mapper所有接口配置文件的位置.
  type-aliases-package: com.rg.springcloud.pojo    # 所有Entity别名类所在包

2.3.4 将订单服务80微服务发布到上面3台Eureka集群配置中

server:
  port: 80
spring:
  application:
    name: cloud-order-service
eureka:
  client:
    #表示是否将自己注册进EurekaServer默认为true。
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
       defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7004.com:7004/eureka  # 集群版

2.3.5 测试01


1.先要启动EurekaServer,7001/7002服务


2.再要启动服务提供者provider,8001


3.再要启动消费者,80


测试结果:

b4922ea1e61db6f8b7d946919bc4c493.png

ffaefb4439b83ea2023a9625f25bb492.png

f1cff809317ed32daadc513668fbe382.png


访问: http://localhost/consumer/payment/get/1


9f6b97871f1bbfcb7704faaebfde0418.png


2.3.6 支付服务提供者8001集群环境构建


建Module

参考cloud-provider-payment8001,建立cloud-provider-payment8002


改POM

写YML

主启动

业务类

修改8001/8002的Controller

26234b269c639c6c4a533e928af3a08f.png


2.3.7 负载均衡+测试


1.先要启动EurekaServer,7001/7002/7004服务


2.再要启动服务提供者provider,8001/8002服务


3.访问 http://localhost/consumer/payment/get/1


访问结果


5ce03f5c97f139af04402258096f3b0d.png


原因:订单服务访问地址不能写死,否则无法进行负载均衡的调用,修改OrderController上的访问地址


0dd7bcfa759627d91c231271e8bbd319.png


**再次进行测试:**依旧报错…


8bfc9c77ab8f19cfe0491d1b32b50a54.png


@LoadBalanced注解赋予RestTemplate负载均衡的能力


2bb9e9a0820be04db280c39e7d7f890b.png


再进行测试:成功!!!


2e62d902df849a6cabdce0e11de45c4f.png


2.3.8 对比官方给出的Eureka示意图


5b3098eb61cfd8c94cfb64e85d5a5e59.png

1ca2b63751501d2c9e7e4aeeca3c493b.jpg

95916e9428c8057c0c6eaba8dfdea27e.png

2.4 actuator微服务信息完善


2.4.1 主机名称:服务名称修改


当前问题:含有主机名称.


95916e9428c8057c0c6eaba8dfdea27e.png


修改cloud-provider-payment8001的yaml,添加instance配置

eureka:
  instance:
    instance-id: payment8001

2.4.2 访问信息有IP信息提示

当前问题:没有IP提示

修改cloud-provider-payment8001的yaml

eureka:
  instance:
    instance-id: payment8001
    prefer-ip-address: true     #访问路径可以显示IP地址

085f87e891ce4708591b489cfb453d9f.png


2.5 服务发现Discovery

对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息

  • 修改cloud-provider-payment8001的Controller
@Slf4j
@RestController
public class PaymentController {
    //...
    @Resource
    private DiscoveryClient discoveryClient;
    //...
    @GetMapping(value = "/payment/discovery")
    public Object discovery(){
        List <String> services = discoveryClient.getServices();//获取Eureka上所有的服务
        for (String service : services) {
            log.info("*****service:"+service);
        }
        //获得某一个服务所有的实例
        List <ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");
        for (ServiceInstance instance : instances) {
            log.info(instance.getServiceId()+"\t"+instance.getHost()+"\t"+instance.getPort()+"\t"+instance.getUri());
        }
        return this.discoveryClient;
    }
}
  • 为8001主启动类加上**@EnableDiscoveryClient**
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient //服务发现
public class PaymentMain8001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8001.class,args);
    }
}
  • 测试

先要启动EurekaServer,再启动8001主启动类,需要稍等一会儿,输入 http://localhost:8001/payment/discovery

719111683002209d0729f20d07842ba0.png



相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
1月前
|
监控 Dubbo Java
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
80 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
|
1月前
|
负载均衡 算法 Nacos
SpringCloud 微服务nacos和eureka
SpringCloud 微服务nacos和eureka
59 0
|
2月前
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
3月前
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
|
3月前
|
缓存 Java Maven
SpringCloud基于Eureka的服务治理架构搭建与测试:从服务提供者到消费者的完整流程
Spring Cloud微服务框架中的Eureka是一个用于服务发现和注册的基础组件,它基于RESTful风格,为微服务架构提供了关键的服务注册与发现功能。以下是对Eureka的详细解析和搭建举例。
|
存储 安全 Go
Golang 语言微服务的服务注册与发现组件 Consul
Golang 语言微服务的服务注册与发现组件 Consul
122 0
|
6月前
|
存储 网络协议 数据中心
服务注册中心Consul
服务注册中心Consul
74 1
|
6月前
Consul安装教程和注册
Consul安装教程和注册
77 0
|
6月前
|
微服务
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
三个微服务注册中心eureka、consul、zookeeper之间的异同点以及CAP理论图
341 0
|
应用服务中间件 Shell nginx
Docker consul的容器服务注册与发现-2
Docker consul的容器服务注册与发现
101 0