微服务架构:Eureka集群搭建

版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习!

服务注册、发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必然引入一个服务注册发现的问题,也就是说服务提供方要注册报告服务地址,服务调用方要能发现目标服务。在我们的微服务架构中我们采用了Eureka来完成微服务的注册与发现。微服务通过Eureka进行注册,服务调用方通过Eureka找到目标服务。由于服务提供方以集群方式提供服务,Eureka也采用集群的方式来提供服务的注册与发现,集群中的Eureka实例之间可以进行数据同步,所有Eureka实例中的服务注册信息都是同步的。那么问题来了,Eureka集群中的实例怎么知道其他实例的存在呢,怎么来发现其他的实例呢?通常的做法是通过DNS,因此我们需要搭建DNS服务器。下面来介绍Euraka集群的搭建过程。

一、搭建DNS服务器(Linux环境下)

1、安装DNS服务器组件,这里我们用的是bind

命令:yum install -y bind bind-chroot bind-utils

2、编辑配置DNS主配置文件

命令:vi  /etc/named.conf

3、修改named.rfc1912.zones文件

命令: vi  /etc/named.rfc1912.zones

添加所需要的zone

4、添加设置DNS正向解析

修改zone配置文件,正向解析

命令:cd  /var/named/

cp named.localhost eureka.com.zone

vi eureka.com.zone

注意:要和主配置文件[/etc/named.rfc1912.zones]里面定义的zone文件名一致

5、启动DNS服务器

命令:service named start

6、测试检测域信息是否正常

检查之前先看下配置文件有没有读取权限

命令:ll /var/named

如果没有读取权限,用chmod +r /var/named/* 命令添加即可

7、重新启动DNS服务器

命令:service named restart

8、DNS服务器地址配置

第一种方式:此方式是暂时修改dns地址,当网络重启之后,则自动清除。

命令:vi  /etc/resolv.conf

第二种方式:此方式是永久修改dns地址,当网络重启之后,不会清除。

命令:vi   /etc/sysconfig/network-scripts/ifcfg-enp0s25

二、将eureka的dns配置放在jar包外面启动微服务

docker 命令:docker run –e eurekaServerDNSName=域名 镜像

三、EUREKA集群配置

编写Eureka 配置文件(application.yml)

其中 eureka 的配置分为client 端和server 端:

Eureka client配置中,eurekaServerURLContext: eureka 表示eureka注册中心的路径,默认为http://x.x.x.x:x/eureka/,在eureka的配置文件中加入此配置表

示eureka作为客户端向注册中心注册,从而构成eureka集群。

Eureka server 配置中,enableSelfPreservation: false表示在此eureka服务器中关闭自我保护模式,所谓自我保护模式是指,出现网络分区、eureka在短时间内丢失过

多客户端时,会进入自我保护模式,即一个服务长时间没有发送心跳,eureka也不会将其删除。默认为true:

自我保护模式默认为开启,这就涉及到阈值因子,默认为0.85,这些在eureka主界面上可以看出:

阈值不能大于最小值,否则将会进入自我保护模式。

以上是eureka集群的搭建过程,在搭建的过程中踩过很多坑,也有很多收获,eureka相关的一些配置项就不在这里赘述了,内容比较多,有必要的话我再另外单独介绍这部分内容。

时间: 2024-10-31 01:15:40

微服务架构:Eureka集群搭建的相关文章

springCloud进阶(微服务架构&Eureka)

springCloud进阶(微服务架构&Eureka) 1. 微服务集群 1.1 为什么要集群 为了提供并发量,有时同一个服务提供者可以部署多个(商品服务).这个客户端在调用时要根据一定的负责均衡策略完成负载调用. 1.2 服务提供者集群-同一种服务(服务名)部署多个 实际生产就是同一种服务多部署几台服务器,开发时就是用端口来区分. 1) 拷贝一份8001 2) 修改主类-改名 3) 改8002yml,端口 4) 服务提供者 1.3 服务消费者负载均衡调用 1)常见的负载均衡技术 Ribbon

Eureka集群搭建

Eureka集群搭建 高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 提示:部分内容请前往上篇博客查找 普通操作 我们再新建两个module  microservice-eureka-server-2002  microservice-eureka-server-2003 1.pom.xml 把依赖加下: microservice-eureka-server-2002 1 <?xml version="1.0" encoding="UTF-8&qu

Spring-Cloud学习之Eureka集群搭建

一.为什么需要集群 上一篇文章讲解了如何搭建单个节点的eureka,这篇讲解如何搭建eureka集群,这里的集群还是本地不同的端口执行三个eureka,因为条件不要允许,没有三台电脑,所以大家将就一下吧,eureka集群的目的就是防止一个点故障导致,整个服务瘫痪的问题,成为单点故障,因为一个点出问题,还有另一个点顶上去,代替这个点工作,所以集群也实现了高可用.高性能 二.集群的原理 每一个注册点都配置有其它点的url,能够与其他server点进行数据的同步,当服务向一个点注册时,该店就会把该服务

Spring cloud 微服务架构 Eureka篇

1 服务发现 ## 关于服务发现 在微服务架构中,服务发现(Service Discovery)是关键原则之一.手动配置每个客户端或某种形式的约定是很难做的,并且很脆弱.Spring Cloud提供了多种服务发现的实现方式,例如:Eureka.Consul.Zookeeper. Spring Cloud支持得最好的是Eureka,其次是Consul,最次是Zookeeper. 2.创建一个Maven工程(microservice-discovery-eureka),并在pom.xml中加入如下内

Spring Cloud Eureka集群搭建与注册

参考博文: 单元测试:https://blog.csdn.net/sz85850597/article/details/80427408 Eureka注册与发现:https://blog.csdn.net/qq_32529383/article/details/79951511 原文地址:https://www.cnblogs.com/free-wings/p/9687529.html

【 ECUG 演讲分享】吴海黎:CODING 微服务架构演进之路

近日,CODING 平台技术总监吴海黎参加了由 ECUG 社区举办的技术大会,与听众一同分享了 CODING 微服务架构的演进历程.让我们一起来欣赏精彩的演讲内容吧. 大家好!我是来自 CODING 的吴海黎,今天我给大家分享的内容是微服务拆分的实践,微服务几乎可以说是当下的一个主流架构,希望今天的分享能给大家落地微服务带来帮助.整个分享分为三个部分: 第一是单体架构的简介,第二是微服务架构落地方案,第三是 DevOps 之于微服务的重要性. 一.单体架构简介 虽然第一部分是介绍单体架构的主要痛

SpringCloud微服务架构第三篇

原文链接:https://www.javazhiyin.com/5130.html 微服务开发专栏:https://www.javazhiyin.com/category/springcloud Ribbon是什么? Ribbon是基于Netflix Ribbon实现的一套客户端 负载均衡的工具. 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等.

Eureka集群

Eureka集群搭建 高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 普通操作 新建两个stringboot项目 module  microservice-eureka-server-2002    microservice-eureka-server-2003 配置 microservice-eureka-server-2002 microservice-eureka-server-2003 pom.xml 依赖: 1 <?xml version="1.0"

8分钟学会Consul集群搭建及微服务概念

原文:8分钟学会Consul集群搭建及微服务概念 Consul介绍: Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value 存储.多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等),使用起来也较为简单. Consul的如何实现的? Consul 用 Golang 实现,因此具有天然可移植性(支