Spring Cloud Eureka高可用(二)

简介: Eureka 服务器配置高可用Eureka服务器1.配置公用Eureka 服务器application.properties##定义应用名称spring.application.name=spring-cloud-eureka-server##配置端口##通过启动参数覆盖9090端口#server.

Eureka 服务器

配置高可用Eureka服务器

1.配置公用Eureka 服务器
application.properties


##定义应用名称
spring.application.name=spring-cloud-eureka-server
##配置端口
##通过启动参数覆盖9090端口
#server.port=9090
##取消向注册中心注册
eureka.client.register-with-eureka=true
##取消向注册中心获取注册信息,实例信息
eureka.client.fetch-registry=true
##解决Peer/集群连接问题
#eureka.instance.hostname=localhost
#eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka

2.配置Peer 1 Eureka服务器
application-peer1.properties(单机情况相当于profile="peer1")


##peer1完整配置
##配置端口
#peer1端口9090
server.port=9090
#peer2主机:localhost 端口9091
peer2.server.host=localhost
peer2.server.port=9091
#Eureka注册信息
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://${peer2.server.host}:${peer2.server.port}/eureka

启动Peer1 Eureka服务器
--spring.profiles.active=peer1,相当于读取了application-peer1.properties和application.properties
aa1

3.配置Peer 2 Eureka服务器
application-peer2.properties(单机情况相当于profile="peer2")


##peer2完整配置
##配置端口
#peer2端口9090
server.port=9091
#peer1主机:localhost 端口9090
peer1.server.host=localhost
peer1.server.port=9090
##取消向注册中心注册
#eureka.client.register-with-eureka=false
##取消向注册中心获取注册信息,实例信息
#eureka.client.fetch-registry=false
##解决Peer/集群连接问题
#Eureka注册信息
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://${peer1.server.host}:${peer1.server.port}/eureka

启动Peer2 Eureka服务器
--spring.profiles.active=peer2,相当于读取了application-peer2.properties和application.properties
效果如图:
aa2

Spring cloud Consul

Consul组件

  • 服务发现(Service Discovery)
  • 健康检查(Health Check)
  • 键值存储(KV Store)
  • 多数据中心(Multi Datacenter)
    理解Raft协议:http://thesecretlivesofdata.com/raft/
  • Agent的启动
    我的操作系统是windows所以下面的步骤是windows下安装步骤

1.首先下载consul的windows版本
2.解压到指定文件夹
我的文件夹路径是D:\consul
3.配置环境变量
在path下添加

aa3

4.启动consul
cmd下输入consul agent -dev

aa4

5.在浏览器中输入localhost:8500出现下图所示则为正确
aa5

consul agent -dev
查看本机信息
consul members
创建K/V
consul kv put abc 123
获取K/V
consul kv get abc

  • UI控制台
    localhost:8500/ui

Spring Cloud整合Consul

1.引入依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-parent</artifactId>
      <version>2.1.3.RELEASE</version>
      <relativePath/> <!-- lookup parent from repository -->
   </parent>
   <groupId>com.example</groupId>
   <artifactId>spring-cloud-lesson-consul-client</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>spring-cloud-lesson-consul-client</name>
   <description>Demo project for Spring Boot</description>

   <properties>
      <java.version>1.8</java.version>
      <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-actuator</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
      </dependency>
      <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-consul-discovery</artifactId>
      </dependency>

      <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <build>
      <plugins>
         <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

</project>

2.激活服务发现客户端
使用@EnableDiscoveryClient注解

package com.example.springcloudlessonconsulclient;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class SpringCloudLessonConsulClientApplication {

   public static void main(String[] args) {
      SpringApplication.run(SpringCloudLessonConsulClientApplication.class, args);
   }

}

利用服务发现API操作
配置应用信息

##应用名称
spring.application.name=spring-cloud-consul
##服务端口
server.port=8080
##配置连接Consul服务器的配置
#Consul主机地址
spring.cloud.consul.host=localhost
##Consul服务端口
spring.cloud.consul.port=8500
目录
相关文章
|
1月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
46 0
|
29天前
|
负载均衡 Java API
Spring Cloud 面试题及答案整理,最新面试题
Spring Cloud 面试题及答案整理,最新面试题
131 1
|
29天前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
136 0
|
30天前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
130 0
|
30天前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
81 0
|
1月前
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
398 0
|
2天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。
|
2天前
|
Java API 对象存储
对象存储OSS产品常见问题之使用Spring Cloud Alibaba情况下文档添加水印如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
20 2
|
17天前
|
负载均衡 网络协议 Java
构建高效可扩展的微服务架构:利用Spring Cloud实现服务发现与负载均衡
本文将探讨如何利用Spring Cloud技术实现微服务架构中的服务发现与负载均衡,通过注册中心来管理服务的注册与发现,并通过负载均衡策略实现请求的分发,从而构建高效可扩展的微服务系统。
|
30天前
|
SpringCloudAlibaba 负载均衡 Java
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(目录大纲)
61 1