• Spring Cloud入门程序——注册服务提供者


    1、创建Spring Starter project

    2、引入依赖

     点击finish

    3、创建启动类

    package com.hello;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    
    /***
     * 
     * @EnableDiscoveryClient
     * 让服务使用eureka服务器
     * 实现服务注册和发现
     *
     */
    @EnableDiscoveryClient
    @SpringBootApplication
    public class Springmvc012HelloServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(Springmvc012HelloServiceApplication.class, args);
        }
    }

     4、创建controller

    package com.hello;
    
    import java.util.List;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.cloud.client.ServiceInstance;
    import org.springframework.cloud.client.discovery.DiscoveryClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class HelloController {
        
        @Autowired
        DiscoveryClient discoveryClient;
        
        @RequestMapping("/hello")
        public String hello() {
            List<ServiceInstance> list = discoveryClient.getInstances("STORES");
            
            System.out.println("discoveryClient.getServices().size() = " + discoveryClient.getServices().size());
            
            for( String s :  discoveryClient.getServices()){
                System.out.println("services " + s);
                List<ServiceInstance> serviceInstances =  discoveryClient.getInstances(s);
                for(ServiceInstance si : serviceInstances){
                    System.out.println("    services:" + s + ":getHost()=" + si.getHost());
                    System.out.println("    services:" + s + ":getPort()=" + si.getPort());
                    System.out.println("    services:" + s + ":getServiceId()=" + si.getServiceId());
                    System.out.println("    services:" + s + ":getUri()=" + si.getUri());
                    System.out.println("    services:" + s + ":getMetadata()=" + si.getMetadata());
                }
                
            }
            
            System.out.println(list.size());
            if (list != null && list.size() > 0 ) {
                System.out.println( list.get(0).getUri()  );
            }
    
            return "hello,this is hello-service";
            
        }
    
    }

    5、配置项目的 application.properties

    server.port=9090
    #设置服务名
    spring.application.name=hello-service
    #设置服务注册中心的URL,本服务要向该服务注册中心注册自己
    eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka

    6、浏览器访问

    (1)访问服务提供者项目 的请求 /hello:

    控制台打印:

     (2)访问服务注册中心:

    之前:

    之后,再次访问localhost:1111,发现有服务注册到注册中心了

     7、总结:

     服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册发现

    Spring Cloud Eureka是Spring Cloud Netflix 微服务套件的一部分,主要负责完成微服务架构中的服务治理功能。

    本文通过简单的小例子来分享下如何通过Eureka进行服务治理:

    • 搭建服务注册中心
    • 注册服务提供者(本文)
    • 服务发现和消费

    实践终极目标:手把手,以上实例实现了基本的服务治理:

    • 通过spring-cloud-starter-eureka-server和@EnableEurekaServer实现服务注册中心
    • 通过spring-cloud-starter-eureka和@EnableDiscoveryClient使用并注册到服务注册中心
    • 通过spring-cloud-starter-eureka和@EnableDiscoveryClient使用注册中心并发现服务,通过spring-cloud-starter-ribbon来实现负载均衡消费服务

    Donate捐赠

    如果我的文章帮助了你,可以赞赏我 1 元给我支持,让我继续写出更好的内容)

       

      (微信)                                        (支付宝)

    微信/支付宝 扫一扫

  • 相关阅读:
    线程安全 ---Struts1与Struts2
    sql servset 有表,没表备份数据。
    group by 使用及体会 和having用法
    js 去掉输入的空格
    struts + json + ajax +级联 例子
    js 级联 思路
    return break continue 的用法和作用
    eclise 怎么集成 spket 。及spket 与 sdk.jsb3管理起来
    logback基本用法
    log4j:特定类的日志输出到指定的日志文件中
  • 原文地址:https://www.cnblogs.com/moonsoft/p/9307270.html
Copyright © 2020-2023  润新知