一起学微服务(服务注册中心Eureka服务搭建)
1 单机Eureka搭建
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2.yml文件
server:
port: 7001
eureka:
instance:
#eureka服务端的实例名称
hostname: localhost
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
#设置与Eureka Server 交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
3.主启动类
@SpringBootApplication
@EnableEurekaServer //表明这是服务注册中心
public class EurekaMain7001 {
public static void main(String[] args) {
SpringApplication.run(EurekaMain7001.class,args);
}
}
4.启动项目,浏览器访问localhost:7001 出现下图表示注册注册中心配置成功。
上面的结果显示,
No instances available
,因为没有服务注册进来,当然不可能有服务被发现。
5.下面将上一期中的8001(微服务的支付服务提供者入驻服务注册中心)进行改造
5.1 pom文件中引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
5.2 yml文件
server:
port: 8001
spring:
application:
name: cloud-payment-service
eureka:
client:
#是否将自己注册到注册中心, 默认true
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
5.3 主启动类
@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient
public class PaymentMain8001 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8001.class,args);
}
}
6.启动8001,在eureka界面查看,出现如下界面,8001成功入驻7001
注意,80也可以入驻进7001,方法和8001完全相同,不再赘述 启动服务的时候,一定先启动eureka服务端,再启动客户端。
当80和8001都成功入驻7001后,直接访问80就可以调用8001的。
2 Eureka集群搭建
原理:互相注册,守望相助
目的:高可用,实现负载均衡和故障容错
因为是集群部署,为了便于区分主机,因此需要对映射文件hosts做简单的修改。在文件末尾添加
127.0.0.1 eureka7001.com
127.0.0.1 eureka7002.com
上面已经配置好了7001,请小伙伴们自己创建7002,除了端口号不一样,其他的完全copy即可。
7001 yml
文件改写成集群版的配置
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
defaultZone: http://eureka7002.com:7002/eureka/
7002 yml
文件改写成集群版的配置
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,职责是维护实例,并不需要检索服务
fetch-registry: false
service-url:
defaultZone: http://eureka7001.com:7001/eureka/
分别启动7001和7002,浏览器查看,出现如下结果,eureka集群搭建完毕。
7001注册到7002,7002注册到7001,相互注册,互相守望。
以上就是今天的所有内容了。如果觉得有用的话,麻烦求点赞、求转发,你们的支持就是我不断分享的动力。