-
springcloud注册中心
2017-12-22 14:49:42springcloud注册中心 pom文件 <groupId>org.springframework.cloud <artifactId>spring-cloud-starter-eureka-server </d- springcloud注册中心
pom文件
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> </dependencies>
- EurekaServerApplication
@EnableEurekaServer @SpringBootApplication public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
- application.properties
server.port=7000 eureka.instance.hostname=eureka-server #eureka.client.register-with-eureka=false #eureka.client.fetch-registry=false
部署启动报错参照: 学习笔记-Eureka
-
spring cloud 注册中心
2017-07-29 21:09:58做微服务,注册中心是少不了的,之前用Dubbo的时候用的是Zookeeper,Spring Cloud也有自己的注册中心——Eureka。 按照之前的文章《极简Spring Boot搭建、开发、部署》在http://start.spring.io 构建一个...做微服务,注册中心是少不了的,之前用Dubbo的时候用的是Zookeeper,Spring Cloud也有自己的注册中心——Eureka。
按照之前的文章《极简Spring Boot搭建、开发、部署》在http://start.spring.io 构建一个Spring Boot工程,dependencies选web、Eureka Server。
pom.xml:
重要配置如下:
1
2
3
4
5
代码&配置:
结构:
代码结构
启动类:
启动类
简单至极,就加上@EnableEurekaServer即可,没其他代码了。
application.yml:
配置文件
说明:
端口号就不解释了。
A, 可以不配置,在eureka的监控页面上有个environment,会显示test。
B, hostname也可以不配置,在D上直接写死即可,不过后面我们会配置Eureka集群,这里最好还是配上,当然不会是localhost了。
C, 因为我们这个是服务端,所以自己不会去注册自己。下面我们会写需要注册的服务,这两个必须是true。
D,可以写死。
直接启动,访问http://127.0.0.1:8864,会看到以下页面:
注意红框。
需要注册的服务,去http://start.spring.io 构建一个Spring Boot工程,dependencies选web、Eureka Discovery。
pom.xml:
与注册中心基本相同,区别如下:
代码&配置:
启动类
就加一个@EnableDiscoveryClient注解即可。
A, 服务名。
B, 需要向注册中心注册,且读取注册信息。
C, 注册中心的url。
先启动注册中心,再启动本服务,访问http://127.0.0.1:8864,监控页面如下:
已经注册进去了,其他服务就可以调用了。
还有一些配置,比如心跳发送间隔、注册中心多久没收到心跳就剔除服务等,大家可以自己查询API。
单节点的注册中心开发环境中还可以,生产环境就得上高可用了。
程序代码不需要改,但是要部署到不同的服务器或虚拟机或Docker上,IP、Hostname肯定不一样了。要么是打包之后修改配置文件,要么是配置好配置文件,在启动的时候指定。
规划:
先在三台服务器中修改hosts,把ip和hostname对应上。别忘了把防火墙中相应的端口打开。
配置文件:
修改application.yml,内容如下:
server2
server3
具体就不解释了,都看得懂。
启动&测试:
打包之后,分别上传到服务器中,使用以下命令启动:
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver1
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver2
java -jar eurekaserver-0.0.1-SNAPSHOT.jar --spring.profiles.active=eurekaserver3
在我们的Windows系统中,如果也配置了hosts,可以通过hostname:port来访问,如果没有,就直接访问ip地址。
三个监控页面如下:
server1
server2
server3
客户端配置:
只需要把defaultZone一个URL地址改成三个即可,用,分隔。
启动服务之后,可以刷新一下Eureka的三个监控页面,客户端已经注册进去了。
-
Spring Cloud 注册中心整合配置中心
2018-12-01 16:07:38Spring Cloud 注册中心整合配置中心背景实现 背景 实现背景
在常见的微服务架构中,注册中心(服务发现组件)和配置中心(配置管理组件)是必不可少的。注册中心具备服务注册、服务发现及服务检查等功能;配置中心则用于存放各类配置供服务消费者使用。相关的介绍已经有很多了,这里不再赘诉。从微服务的单一职责角度,这两者通常是分开部署,配置中心将自己注册到注册中心来提供高可用的配置获取功能。本文将介绍另一种方式,即注册中心与配置中心整合,一起部署。这样的好处是可以一台实例同时提供服务发现以及配置管理等功能,节约部署成本。
实现
本文以spring cloud框架为基础,采用eureka作为注册中心;使用spring cloud config提供配置管理功能其中配置文件放在本地(配置中心有很多中配置方式,为了简单方便可以使用本地存放)
。整合过后的注册中心和配置中心称之为eureka-config-center
。通过maven进行依赖管理。本文的所有代码托管在https://github.com/Hxuhao233/spring-cloud-demo
目录结构
eureka-config-center | —— src | —— main | —— java # Java代码 | —— resources # 配置 | —— config # 配置中心所管理的配置 | | —— dev | | | —— mysql.properties | | —— test | —— application.properties # eureka-config-center的配置
依赖引入
由于要整合注册中心和配置中心,所以二者的相关依赖需要一起引入
pom.xml
中关键的配置如下<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.8.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Dalston.SR4</spring-cloud.version> </properties> <!-- 注册中心 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <!-- 配置中心 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <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>
配置文件
这里说的是启动
eureka-config-center
所需要的配置,存放在application.properties
,而不是配置中心提供给服务消费者的配置(见下节)。
有两个配置需要注意一下spring.cloud.config.server.prefix
,本来这个配置对于独立的配置中心无需设置,但由于本文将其与注册中心整合在一起,为了防止文件冲突,所以特别设置。spring.cloud.config.server.native.searchLocations
,这个配置用于设置配置中心搜索配置的路径,需要和配置文件存放的位置保持一致。
############################# 服务相关配置 ############################# # 服务端口 server.port=8081 # 服务名称 spring.application.name=eureka-config-server # 服务注册中心 eureka.client.service-url.defaultZone=http://localhost:8081/eureka/ # 环境 spring.profiles.active=dev # 不注册自己 eureka.client.register-with-eureka=false # 不检索服务 eureka.client.fetch-registry=false ############################# 注册中心相关配置 ############################# # dashboard页面url eureka.dashboard.path=/eurekaCenter ############################# 配置中心相关配置 ############################# # 读取本地配置 spring.profiles.include=native # 配置文件路径 spring.cloud.config.server.native.searchLocations=classpath:/config/{profile} # 配置中心url前缀,防止跟注册中心的静态文件冲突 spring.cloud.config.server.prefix=/config
配置管理
配置文件存放与
src\main\resource\config
下,与spring.cloud.config.server.native.searchLocations
保持一致,这里为了举例分了两个环境dev
,test
,每个环境都只有一个配置文件mysql.properties
。mysql.url=123
配置中心的文件命名规则以及对应的获取可以参考https://github.com/spring-cloud/spring-cloud-config
启动类
@EnableEurekaServer
用于启动注册中心
@EnableConfigServer
用于启动配置中心@EnableEurekaServer @EnableConfigServer @SpringBootApplication public class EurekaConfigServer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(EurekaConfigServer.class); } public static void main(String[] args) { new SpringApplicationBuilder(EurekaConfigServer.class).web(true).run(args); } }
效果展示
启动之后,访问
http://localhost:8081/eurekaCenter
,这个是eureka的dashboard页面,可以看到注册中心已经成功启动了再访问
http://localhost:8081/config/dev/mysql
,这表示获取dev环境的mysql配置,可以看到mysql.url
的值为123,与配置文件中的一致。
结语
本文讲述了一种将注册中心与配置中心合并的方式。一体化的`eureka-config-conter节约了部署成本,然而从某种角度上也破坏了微服务的单一职责原则,这种方式是否真的合适有待考究。
-
springCloud注册中心处理注册事件
2016-11-01 08:12:47springCloud注册中心处理注册事件,spring cloud服务注册spring cloud的注册中心是Eureka server。客户端通过http与注册中心交互。
与zookeeper不同,Eureka server集群如果挂掉只剩一台还是能工作的。
而zk的设计目标是一致性,使它用类似paxos协议去实现了。而这样设计的结果是如果zk集群挂掉了整个集群的一半及以上那么整个zk集群就不能工作了。这就是zk的死亡容忍性。举个例子:2台zk,只要挂掉一台就不能工作了,对应死亡容忍度为0。3台为1,4台也为1,5台为2,6台也为2. 因此从资源利用角度,奇数台是最佳的。
以下为注册中心处理注册服务事件简要流程:
做了两件主要的事情:1.往registry map中放了要注册的服务,registry map的key为appName,value 为 map<Long,LeaseInfo>2.如果不是从其它注册中心复制过来的话,需要通过网络传给其它注册中心核心调用方法:PeerAwareInstanceRegistryImpl. register
该方法代码如下:@Override public void register(final InstanceInfo info, final boolean isReplication) { int leaseDuration = Lease.DEFAULT_DURATION_IN_SECS; if (info.getLeaseInfo() != null && info.getLeaseInfo().getDurationInSecs() > 0) { leaseDuration = info.getLeaseInfo().getDurationInSecs(); } super.register(info, leaseDuration, isReplication); replicateToPeers(Action.Register, info.getAppName(), info.getId(), info, null, isReplication); }
-
Kubernetes 部署 Spring Cloud 注册中心 Eureka Server
2020-04-23 11:59:49Kubernetes 部署 Spring Cloud 注册中心 Eureka Server 系统环境 Java JDK 版本:openjdk:8-jdk Docker 版本: version 19.03.8 kubernetes 版本:1.14.0 SpringBoot 版本:2.0.3.RELEASE SpringCloud 版本:... -
Spring cloud 注册中心使用简介
2017-12-08 11:53:51Spring cloud 注册中心使用简介注册中心是服务发现的核心。它保存了各个可用服务实例的网络地址(IP Address和Port)。服务注册中心必须要有高可用性和实时更新功能。 Netflix Eureka 就是一个服务注册中心。它提供... -
spring cloud 注册中心 instance_id 配置
2019-09-18 05:18:01spring cloud 注册中心 instance_id 配置 consul 注册发现中心 instance_id 配置 ip + 端口 一般网上推荐的配置都是 ${spring.application.name}:${vcap.application.instance_id:${spring.application.instance_... -
SpringCloud注册中心Eureka、Consul、Nacos简单对比
2019-07-30 17:05:21Spring Cloud注册中心对比 Eureka: Netflix公司开源的注册中心,分为Eureka Server和Eureka Client,Eureka Server需要单独作为一个服务发布,启动之后可以在浏览器中打开,Eureka Client则是需要注册到Eureka ... -
SpringCloud注册中心Eureka源码分析(二)
2019-04-29 23:30:00SpringCloud注册中心Eureka源码分析 serviceUrls 在获取了Region和Zone的信息之后,才开始真正加载Eureka Server 的具体地址。他根据传入的参数按一定算法确定加载位于哪一个Zone配置的serviceUrls。 int ... -
用Maven项目创建的Spring Cloud注册中心Eureka项目报错
2019-09-23 13:22:12用Maven项目创建的Spring Cloud注册中心Eureka项目报错 解决方法: 右键项目 – > 右键Maven – > 点击Update Project 就不报错了 -
微服务搭建 SpringCloud 注册中心及配置中心管理
2018-09-05 17:28:37SpringCloud搭建微服务架构 ...经过几天学习实践整理,已经完成SpringCloud 注册中心 、SpringCloud Config配置中心 搭建。 安装的三台Linux虚拟机: JDK环境1.8 master :192.168.0.132 打包运行注册中心 n... -
SpringCloud注册中心(一)
2019-01-03 14:00:01简介: Eureka是Netflix开发的服务发现...SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。 Eureka分为两个组件:server(服务端)和client(客户端) 注册中心节点默认时间... -
Nacos替换spring cloud注册中心Eureka
2020-04-15 16:41:39从上一篇Nacos简单了解了它所能提供的功能。...那么我们就要考虑微服务springcloud在容器以及网格化的改造迁移的适配。那么Nacos可以作为一个选择。下面我们就进行spring cloud集成Nacos 的替换步骤。 微服务spr... -
springcloud注册中心配置集群
2018-02-07 18:01:53部署springcloud高可用注册中心 使用eureka实现分布式服务治理,在搭建eureka的注册中心时,一般有如下配置 eureka.client.registerWithEureka =false //本身不注册为服务 eureka.client.fetchRegistry = false ... -
-
分布式组件SpringCloud 注册中心、配置中心及网关
2020-06-03 10:40:35SpringCloud的几大痛点 SpringCloud部分组件停止维护和更新,给开发带来不便; SpringCloud部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制 SpringCloud配置复杂,难以上手,部分配置差别难以... -
idea创建springcloud注册中心,图文并茂
2020-08-12 17:52:43但防止注册中心挂掉,可以再运行一个,服务对两个注册中心互相注册创建另一个 Eureka Server修改 Eureka Client的application.yml启动springcloud-other,重启springcloud-consumer 创建 Eureka Ser -
Spring Cloud 注册中心在tomcat中部署
2017-08-19 08:41:01前言最近刚刚接触spring boot 和spring cloud,只知道可以直接通过main方法启动服务,一直不会将项目部署到tomcat中,今天学了一下,做个记录备忘. 步骤pom文件在pom文件中引入spring-boot-starter-web,然后排除掉内置的... -
springcloud注册中心与注册发现
2018-05-31 19:52:11一。eureka server 端配置1....org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </depend... -
微服务分布式事务实战(三)SpringCloud注册中心编写和测试
2018-10-30 11:35:19SpringCloud注册中心编写和测试 (1)创建注册中心工程 (2)添加jar包 pom.xml 4.0.0 com.jh TestSpringCloud 0.0.1-SNAPSHOT jar TestSpringCloud http://maven.apache.org &amp;amp;... -
SpringCloud注册中心Eureka
2018-07-12 15:01:111. 关于Eureka的简单介绍 服务治理: 为了实现各个微服务实例的自动化...Eureka服务端(即为注册中心):支持高可用性,依托于强一致性提供良好的服务实例可用性,可以多种不同的故障场景;以集群方式部署,具有... -
Spring Cloud 注册中心的保护机制
2017-08-22 16:25:37部署好spring cloud 的注册中心之后,如果某个服务提供者关闭或者出现什么异常而不能用,注册中心会提示: EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER ... -
SpringCloud注册中心应用及分析
2019-07-30 21:52:51Eureka是netflix公司的,也是较早出现作为注册中心的组件,2.X已不再更新维护,最新稳定版为v1.9.12,查看spring-cloud-starter-netflix-eureka-client的Maven依赖,eureka-client和eureka-core版本就是1... -
SpringCloud注册中心-Eureka
2019-05-03 11:29:491.Eureka注册中心 1.1.Eureka简介 首先我们来解决第一问题,服务的管理。 问题分析 在刚才的案例中,user-service对外提供服务,需要对外暴露自己的地址。而consumer(调用者)需要记录服务提供者的地址。将来地址... -
spring cloud 注册中心的搭建
2017-08-19 08:46:34pom文件注意:spring cloud server 使用时需要注意parent的版本号和dependencies的版本号,1.3版本的parent请使用Brixton.SR5 xmlns:xsi="ht -
【Docker】(5)---springCloud注册中心打包Docker镜像
2019-05-05 18:32:22【Docker】(5)—springCloud注册中心打包Docker镜像 上一篇文章讲了将镜像推送到远处私有仓库,然后再从私有仓库拉取该镜像的过程。而这里的镜像是直接从Docker拉取的。 所以这篇要讲的就是将本地项目打包成Docker... -
springcloud注册中心、网关
2019-06-08 09:25:30一、服务注册中心 1.新建一个项目,右键项目新建一个组件(new ->Module) test-eureka 2.依赖 3.配置文件 4.建包 引入注解 二、网关 1.新建一个项目,右键项目新建一个组件(new ->Module) test-gateway 2....
-
51单片机电子时钟设计.rar
-
golang网络编程
-
docker容器中启动uwsgi秒退
-
GO语言JSON
-
牛牛量化策略交易
-
ubuntu 文件大小 查询
-
自媒体搞笑音效和段子素材
-
SIMATIC_S7PLCSIM_V14_SP1.001
-
VMware vSphere ESXi 7 精讲/VCSA/VSAN
-
唯恩.rar电气设备选型资料大全 (适合刚刚入行的电气工程师对设备进行选型规划)详解 报价
-
批量生成条形码和二维码.zip
-
计算机病毒分为哪三类
-
文件操作所需Jar.zip
-
Samba 服务配置与管理
-
Cmake
-
MySQL 事务和锁
-
access应用的3个开发实例
-
阿里云服务器配置ftp
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
ELF视频教程