搭建springcloud的demo之Eureka集群配置(三)

集群:多台服务器跑的都是一套完整的代码;(集群一般都是哨兵模式,一主二从)
新建microservicecloud-eureka-7002和microservicecloud-eureka-7003
在这里插入图片描述
按照7001为模板粘贴pom.xml
在这里插入图片描述


	<dependencies>

		<dependency><!-- eureka-server服务端 -->
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>

		<!-- 修改后立即生效,热部署 (一修改,自动发布,自动构建)  -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>springloaded</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
		</dependency>

	</dependencies>

修改7002和7003的主启动类
在这里插入图片描述
修改映射配置(找到C:\Windows\System32\drivers\etc路径下的hosts文件)
让它一个localhost有3个不同的别名
在这里插入图片描述

127.0.0.1       eureka7001.com
127.0.0.1       eureka7002.com
127.0.0.1       eureka7003.com

3台eureka服务器的yml配置
在这里插入图片描述

server:
  port: 7001
  
eureka: 
  instance:
    hostname: eureka7001.com         #eureka服务端的实例名称
  client:
    register-with-eureka: false #false表示不想注册中心注册自己
    fetch-registry: false       #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ # 设置与Eureka server交互的地址查询服务和注册服务
      #与7002和7003服务器同步
      #单台服务器的配置 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
 
server:
  port: 7002
  
eureka: 
  instance:
    hostname: eureka7002.com         #eureka服务端的实例名称
  client:
    register-with-eureka: false #false表示不想注册中心注册自己
    fetch-registry: false       #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/ # 设置与Eureka server交互的地址查询服务和注册服务
      #与7002和7003服务器同步
      #单台服务器的配置 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
 
server:
  port: 7003
  
eureka: 
  instance:
    hostname: eureka7003.com         #eureka服务端的实例名称
  client:
    register-with-eureka: false #false表示不想注册中心注册自己
    fetch-registry: false       #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/ # 设置与Eureka server交互的地址查询服务和注册服务
      #与7002和7003服务器同步
      #单台服务器的配置 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
 

microservicecloud-provider-dept-8001微服务发布到上面3台eureka集群配置中(修改8001的application.yml配置文件)

在这里插入图片描述

server:
  port: 8001                                         # 当前微服务的端口
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml # mybatis配置文件所在路径
  type-aliases-package: com.yt.springcloud.entity    # 所有饿entity实体类所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                # mapper映射文件

spring:
  application:
   name: microservicecloud-dept                      # 对外暴露的微服务的名字(很重要)
  datasource:
   type: com.alibaba.druid.pool.DruidDataSource      # 当前数据源操作类型
   driver-class-name: org.gjt.mm.mysql.Driver        # mysql驱动包
   url: jdbc:mysql://localhost:3306/cloudDB01        # 数据库名称
   username: root
   password: hannong
   dbcp2:
    min-idle: 5                                      # 数据库连接池的最小维持连接数 
    initial-size: 5                                  # 初始化连接数
    max-total: 5                                     # 最大连接数
    max-wait-millis: 200                             # 等待连接获取的最大超时时间
    
eureka:
   client:   #客户端注册进eureka服务列表内
    service-url:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/      #去注册中心的地址
      #defaultZone:7001,7002,7003 去注册中心的地址
   instance: 
      instance-id: microservicecloud-dept8001        #修改eureka的服务路径名称
      prefer-ip-address: true                        #访问路径可以显示ip地址

info:
   app.name: yt-microservicecloud                    #
   company.name: www.yt.com                          #
   build.artifactId: $project.artifactId$            #
   build.version: $project.version$                  #


       

启动7001,7002,7003,8001的启动类(访问地址:http://eureka7001.com:7001/)
在这里插入图片描述
CAP3进2
最多只能同时教好的满足两个;
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点,而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须要实现的.
所以我们只能在一致性可用性之间进行权衡,没有NoSQL系统能同时保证这三点;
C:Conslstency(强一致性)
A:Availability(可用性)
P:Parition tolerance(分区容错性)
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类:
CA-单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强太;
CP-满足一致性,分区容忍必的系统,通常性能不是特别高;
AP-满足可用性,分区容错性的系统,通常可能对一致性要求低一些;

猜你喜欢

转载自blog.csdn.net/yuanting_/article/details/88383143
今日推荐