栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

玩转SpringCloud 一.服务的注册与发现(Eureka)

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

玩转SpringCloud 一.服务的注册与发现(Eureka)

一.服务的注册与发现(Eureka)

spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等

 

1. 主项目:版本控制

 

Springboot集中声明

 


  org.springframework.boot
  spring-boot-starter-parent
  2.0.4.RELEASE
  

 

Springcloud版本

 

Finchley.RELEASE

 

主项目管理的依赖Jar:

 


  
    org.springframework.boot
    spring-boot-starter-test
    test
  
    
        
            org.springframework.cloud
            spring-cloud-dependencies
            ${spring-cloud.version}
            pom
            import
        
    

 

Springboot组件:

 


    
        
            org.springframework.boot
            spring-boot-maven-plugin
        
    

 

2.创建2个model工程

一个model工程作为服务注册中心,即Eureka Server,另一个作为Eureka Client。

1)创建服务注册中心Eureka Server  

引入主项目:

 


   com.fsdm
   SpringCloud_test1
   1.0-SNAPSHOT

 

引入spring-cloud-starter-netflix-eureka-server的依赖:


   
      org.springframework.cloud
      spring-cloud-starter-netflix-eureka-server
   

Application启动类:

@EnableEurekaServer
@SpringBootApplicationpublic class Demo1Application {   public static void main(String[] args) {
      SpringApplication.run(Demo1Application.class, args);
   }
}

 

注解解析:

@SpringBootApplication

1. 复合注解主要包括@ComponentScan,和@SpringBootConfiguration,@EnableAutoConfiguration。

2. @SpringBootConfiguration标注当前类是配置类

3. @EnableAutoConfiguration启动自动的配置,根据你添加的jar包来配置你项目的默认配置

4. @EnableAutoConfiguration扫描当前包及其子包下被@Component,@Controller,@Service,@Repository注解标记的类并纳入到spring容器中进行管理

 

@EnableEurekaServer

1. 表明这是一个EurekaServer(服务注册中心)

2. 配合yml文件使用:

Eureka:  Client:    registerWithEureka: false
    fetchRegistry: false

 

 

yml配置:

 

server:
  port: 8761eureka:
  instance:    hostname: localhost  client:
  #  表明自己是一个eureka server.    registerWithEureka: false    fetchRegistry: false    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/spring:
  application:
    name: eurka-server

 

启动程序,访问http://localhost:8761/

当client向server注册时,它会提供一些元数据,例如主机和端口,URL,主页等。Eureka server 从每个client实例接收心跳消息。 如果心跳超时,则通常将该实例从注册server中删除。

 

No application available 表示没有服务被发现

因为我们还没有注册服务当然没有发现服务啦,

 

 

2)创建一个服务提供者 (eureka client)

引入主项目:

 


   com.fsdm
   SpringCloud_test1
   1.0-SNAPSHOT

 

需要的jar以及组件:

 


   
      org.springframework.cloud
      spring-cloud-starter-netflix-eureka-client
   
   
      org.springframework.boot
      spring-boot-starter-web
   
   
      
         org.springframework.boot
         spring-boot-maven-plugin
      
   

 

Application启动类:

 

@SpringBootApplication
@EnableEurekaClient
@RestControllerpublic class Demo2Application {   public static void main(String[] args) {
      SpringApplication.run(Demo2Application.class, args);
   }

   @Value("${server.port}")
   String port;
   @RequestMapping("/hi")   public String home(@RequestParam String name) {      return "hi "+name+",i am from port:" +port;
   }


}

 

注解解析:

@EnableEurekaClient

1. 表明这是一个EurekaClient(服务提供者)

 

@RestController

1. 复合注解主要包括@Controller和@ResponseBody

2. 标注controller层,可供url访问

3. 无法返回jsp页面,或者html,配置的视图解InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

 

yml配置:

 

server:
  port: 8762spring:
  application:#工程名称    name: service-hieureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

 

需要指明spring.application.name,这个很重要,这在以后的服务与服务之间相互调用一般都是根据这个name 。

 

 

启动这个项目,刷新http://localhost:8761/

发现一个服务已经注册在服务中了,服务名为SERVICE-HI ,端口为8762

你会发现一个服务已经注册在服务中了,服务名为SERVICE-HI

关于红色字体的警告解释:

https://www.cnblogs.com/breath-taking/articles/7940364.html

 

访问http://localhost:8762/hi?name=fsdm

 

(C) 房上的猫 。 保留所有权利。 https://www.cnblogs.com/lsy131479/ 如需转载,请注明出处!!!


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235870.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号