SpringCloud(一):服务注册中心与集群
后面我会把我练习电商平台小项目主要架构在下面几篇文章逐一介绍都是分模块
组件模块
单点登陆模块
业务模块
1.介绍
SpringCloud中的核心组件Eureka提供了服务注册和服务发现功能,管理分布式系统中的各种服务,比如注册、发现、熔断、负载均衡等。类似与dubbo中动物园zookeeper注册中心 还要一款consul。下面是那些注册中心对比
本文主要介绍springcloud的组件Euerka
假设一个场景:服务A需要调用服务B,服务B需要调用服务C
他们的调用关系为 A->B->C
使用服务注册中心,他们的调用关系图如下:
我们可以提供几台相同的服务注册到服务中来做集群和负载均衡,服务调用者无需关心服务所在机器的信息,我们可以很方便的做很多高级的功能,比如监控服务器调用成功率来做熔断,移除服务列表中的故障点;监控服务调用时间来对不同的服务器设置不同的权重等等。
二、代码示例
pom.xml的配置
springcloud走配置文件的时候优先走bootstrap.yml 然后在走application.yml
在bootstrap.yml 简单配置了下注册中心名字叫做eureka
主要配置在application.yml
Java代码类只需要一个启动类就好了
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
在跑springcloud服务的时候常常会有404情况 可能地址不对 启动类的位置不对等 地址不对我们可以看启动日志所有的api都会在日志里面出现的
以上是单节点的注册中心 下面介绍注册中心的集群3个节点
使用3个ip地址构建一个注册管理中心集群
192.168.1.31 192.168.1.32 192.168.1.33
那么我们使用上面创建的注册管理中心,通过更改相关配置就可以实现 例如第一个注册管理中心可以使用如下配置
server:
port: 8761
eureka:
instance:
hostname: 192.168.1.31
client:
registerWithEureka: true #自己注册自己
fetchRegistry: false
serviceUrl:
defaultZone: http://192.168.1.32:
s
e
r
v
e
r
.
p
o
r
t
/
e
u
r
e
k
a
/
,
h
t
t
p
:
/
/
192.168.1.33
:
{server.port}/eureka/,http://192.168.1.33:
server.port/eureka/,http://192.168.1.33:{server.port}/eureka/
spring.cloud.config.discovery.enabled: true
主要修改注册中心名字和对应的ip地址 就完成了注册中心的集群。