6.服务注册与发现

1.微服务之于SpringCloud

  • SpringBoot2.0.0.M3和Finchley.M2
    1. 服务A以来服务B,那么怎么做呢?
    2. 服务发现的意义,集成Eureka Server,如何集成Eureka client,实现
    3. 服务的发现:你发布的服务要被别人找到,比如域名(DNS维护的)
    4. 如何发现服务:(1)访问服务,如通过URI,http://localhost:8080/weather/city/{cityId},ip访问存在一定弊端,很难负载均衡,所以推崇服务注册与发现
  • Eureka:
    1. 提供服务注册和发现机制
    2. 和SpringCloud无缝集成
    3. 应用自身容器启动(自身既是服务端又是客户端),高可用
    4. 开源

2.集成Eureka Server

  1. helloWorld==》micro-weather-eureka-server
  2. 版本确定与依赖:http://projects.spring.io/spring-cloud/
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.M9</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
  • 记得引入netflix-eureka
    1. 进行相应配置后再Application添加@EnableEurekaServer,访问:http://localhost:8761/

3.集成Eureka Client

  1. 引入的包修改成client,如何变成客户端,在Application上添加@EnableDiscoveryClient
  2. 修改属性,然后在服务端就可以发现了
spring.application.name=micro-weather-eureka-client
#启动后就会找这个服务器,并把自己注册进去
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
  1. Eureka对于客户端,自我防护功能,不能很快检测到客户端停止:eureka.server.enable-self-preservation=false(会有红色提醒),试试看停止客户端
  2. Eureka是运行统计的,比如15分钟内,观察客户端在线率。。。

4.实现服务的注册与发现

  1. 注意版本问题导致的redis问题

6.服务的运行

  1. 先启动EurekaServer,剩余的不要直接在idea启动,会冲突在8080端口的
  2. 运行多个实例,使用bat,查看http://localhost:8761/

批处理

cd %cd%/msa-weather-city-eureka/target
java -jar msa-weather-city-eureka.jar --server.port=8085
pause>null
阅读更多

没有更多推荐了,返回首页