spring cloud 注册中心--eureka注册与发现
本文详细介绍spring cloud微服务的默认注册中心--eureka注册与发现。开发环境需要Windows系统、jdk和intellij idea。与zookeeper注册中心相比,eureka不需要服务器中间件,而且有更高的可用性,但不保证强一致性。
用idea生成spring boot项目,选中jar包Cloud Discovery--Eureka Server,在启动类添加注解@EnableEurekaServer表名该服务为注册中心。下面分单节点和多节点(高可用)分别介绍配置文件:
单节点配置application.yml非常简单,但因为是单节点,必须配置禁止自己注册自己:
spring:
application:
name: register #微服务名称 eureka:
instance:
hostname: localhost #主机名
client:
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #默认到此路径发现服务
register-with-eureka: false
fetch-registry: false
server:
enable-self-preservation: false server:
port: 1111
打包,再cmd启动注册中心--单节点:java -jar F:\jars\register-0.0.1-SNAPSHOT.jar即可,web监控访问地址:http://localhost:1111,监控内容这里省略不讲
多个节点(3个节点为例)配置application.yml有一小点麻烦,这里需要配置三个文件application-peer1.yml,application-peer2.yml,application-peer3.yml,以application-peer1.yml为例,其他两个类似:
spring:
application:
name: eureka-server #服务名称 eureka:
instance:
hostname: peer1 #服务器上配置主机名叫peer1
client:
service-url:
defaultZone: http://peer2:1112/eureka/,http://peer3:1113/eureka/ #默认到这两个地址发现服务 server:
port: 1111
cmd启动注册中心--高可用多节点(3个节点为例):
先配置hosts文件--将hosts文件拖到桌面添加如下内容,再拖回原来的位置,替换使hosts生效:
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
java -jar F:\jars\register-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar F:\jars\register-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar F:\jars\register-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
web监控访问地址:http://localhost:1111,监控内容这里省略不讲
源码下载地址:https://github.com/zhzhair/spring-cloud-examples.git
spring cloud 注册中心--eureka注册与发现的更多相关文章
- Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建
基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用-服务提供和消费
由于 Eureka 注册中心只是在内存中保存服务注册实例,并且没有将服务注册实例进行同步,因此我们需要对服务提供和消费进行调整,需要指定服务提供和消费的注册.服务发现的具体Eureka 注册中心配置, ...
- Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建
高可用集群 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己 ...
- Spring Cloud 如何使用Eureka注册服务 4.2.2
要使用Eureka实现服务发现,需要项目中包含Eureka的服务端发现组件以及客户端发现组件. 搭建Maven父工程 创建一个Maven父工程xcservice-springcloud,并在工程的po ...
- 【Spring Cloud笔记】Eureka注册中心增加权限认证
在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...
- Spring Cloud 注册中心Eureka
一.简介 最近在看Spring Cloud微服务,接下来的时间和大家一起分享我所看到的,公司现在用的是dubbo ,之后有时间也去了解了解dubbo的源码.与dubbo相比较,Spring Cloud ...
- Spring Cloud 系列之 Eureka 实现服务注册与发现
如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...
- spring cloud 服务注册中心eureka高可用集群搭建
spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...
- 孰能巧用 Spring Cloud 服务注册中心Eureka
Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...
随机推荐
- mysql分割逗号办法
https://blog.csdn.net/xcymorningsun/article/details/73436568
- odoo12.0 在Ubutu 18.04下环境的搭建
sudo apt-get update sudo apt- postgresql nano virtualenv gcc python3.-dev libxml2-dev libxslt1-dev l ...
- 循环语句之for循环
什么是循环语句? 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否 ...
- RabbitMQ学习笔记一:本地Windows环境安装RabbitMQ Server
一:安装RabbitMQ需要先安装Erlang语言开发包,百度网盘地址:http://pan.baidu.com/s/1jH8S2u6.直接下载地址:http://erlang.org/downloa ...
- iOS 基础:Frames、Bounds 和 CGGeometry
https://segmentfault.com/a/1190000004695617 原文:<iOS Fundamentals: Frames, Bounds, and CGGeometry& ...
- EntityFramework优化:查询WITH(NOLOCK)
1.SQL Server查询中WITH(NOLOCK) SELECT语句中加上WITH(NOLOCK)为解决阻塞死锁. 处理数据库死锁异常查询的一种方式是使用NOLOCK 或 READPAST. ◊ ...
- 4月11日java多线程4
继昨天学习了线程池之后,今天学习了多线程内的锁Lock. 定义方法: ReentrantLock queueLock = new ReentrantLock(); //可重入锁 ReentrantRe ...
- JSON.stringify()的不常见用法
1.JSON.stringify()只序列化可遍历属性(enumerable=true) var obj = {}; Object.defineProperties(obj, { 'foo': { v ...
- Monkey参数介绍
monkey 参数 参数分类 常规类参数 事件类参数 约束类参数 调试类参数 常规类参数 常规类参数包括帮助参数和日志信息参数.帮助参数用于输出Monkey命令使用指导:日志信息参数将日志分为三个级别 ...
- Flask上下文管理、session原理和全局g对象
一.一些python的知识 1.偏函数 def add(x, y, z): print(x + y + z) # 原本的写法:x,y,z可以传任意数字 add(1,2,3) # 如果我要实现一个功能, ...