1.微服务之于SpringCloud
- SpringBoot2.0.0.M3和Finchley.M2
- 服务A以来服务B,那么怎么做呢?
- 服务发现的意义,集成Eureka Server,如何集成Eureka client,实现
- 服务的发现:你发布的服务要被别人找到,比如域名(DNS维护的)
- 如何发现服务:(1)访问服务,如通过URI,http://localhost:8080/weather/city/{cityId},ip访问存在一定弊端,很难负载均衡,所以推崇服务注册与发现
- Eureka:
- 提供服务注册和发现机制
- 和SpringCloud无缝集成
- 应用自身容器启动(自身既是服务端又是客户端),高可用
- 开源
2.集成Eureka Server
- helloWorld==》micro-weather-eureka-server
- 版本确定与依赖: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>
3.集成Eureka Client
- 引入的包修改成client,如何变成客户端,在Application上添加@EnableDiscoveryClient
- 修改属性,然后在服务端就可以发现了
spring.application.name=micro-weather-eureka-client
#启动后就会找这个服务器,并把自己注册进去
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
- Eureka对于客户端,自我防护功能,不能很快检测到客户端停止:eureka.server.enable-self-preservation=false(会有红色提醒),试试看停止客户端
- Eureka是运行统计的,比如15分钟内,观察客户端在线率。。。
4.实现服务的注册与发现
- 注意版本问题导致的redis问题
6.服务的运行
- 先启动EurekaServer,剩余的不要直接在idea启动,会冲突在8080端口的
- 运行多个实例,使用bat,查看http://localhost:8761/
批处理
cd %cd%/msa-weather-city-eureka/target
java -jar msa-weather-city-eureka.jar --server.port=8085
pause>null