Spring Cloud中使用Eureka
一、创建00-eurekaserver-8000
(1)创建工程
创建一个Spring Initializr工程,命名为00-eurekaserver-8000,仅导入Eureka Server依赖即可


(2)pom.xml文件如下
若你使用的是JDK6、7、8,那么这些依赖无需导入。而JDK9及其以上版本需要导入
-
<?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>
-
-
<groupId>com.abc</groupId>
-
<artifactId>00-eurekaserver-8000</artifactId>
-
<version>0.0.1-SNAPSHOT</version>
-
<packaging>jar</packaging>
-
-
<parent>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-parent</artifactId>
-
<version>2.1.7.RELEASE</version>
-
<relativePath/> <!-- lookup parent from repository -->
-
</parent>
-
-
<properties>
-
<java.version>1.8</java.version>
-
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
-
</properties>
-
-
<dependencies>
-
<!--JAXB,Java Architechture for Xml Binding,XML绑定的Java技术
-
JDK6、7、8版本的不用导入以下依赖,但9及其以上版本需要导入
-
-->
-
<!--<dependency>-->
-
<!--<groupId>javax.xml.bind</groupId>-->
-
<!--<artifactId>jaxb-api</artifactId>-->
-
<!--<version>2.2.11</version>-->
-
<!--</dependency>-->
-
<!--<dependency>-->
-
<!--<groupId>com.sun.xml.bind</groupId>-->
-
<!--<artifactId>jaxb-core</artifactId>-->
-
<!--<version>2.2.11</version>-->
-
<!--</dependency>-->
-
<!--<dependency>-->
-
<!--<groupId>com.sun.xml.bind</groupId>-->
-
<!--<artifactId>jaxb-impl</artifactId>-->
-
<!--<version>2.2.11</version>-->
-
<!--</dependency>-->
-
<!--<dependency>-->
-
<!--<groupId>javax.activation</groupId>-->
-
<!--<artifactId>activation</artifactId>-->
-
<!--<version>1.1.1</version>-->
-
<!--</dependency>-->
-
-
-
<dependency>
-
<groupId>org.springframework.cloud</groupId>
-
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-autoconfigure</artifactId>
-
</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>
(3)创建并配置yml文件
-
server:
-
port: 8000
-
-
eureka:
-
instance:
-
hostname: localhost # 指定Eureka主机
-
client:
-
register-with-eureka: false # 指定当前主机是否向Eureka服务器进行注册
-
fetch-registry: false # 指定当前主机是否要从Eurka服务器下载服务注册列表
-
service-url: # 服务暴露地址
-
defaultZone: http://localhost:8000/eureka
-
# defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka
-
-
# server:
-
# enable-self-preservation: false # 关闭自我保护
(4)定义spring boot启动类

二、创建提供者工程02-provider-8081
(1)创建工程
复制01-provider-8081,并重命名为02-provider-8081
https://blog.csdn.net/u012965203/article/details/99065322
(2)pom.xml依赖如下
-
<?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.7.RELEASE</version>
-
<relativePath/> <!-- lookup parent from repository -->
-
</parent>
-
<groupId>com.abc</groupId>
-
<artifactId>02-provider-8081</artifactId>
-
<version>0.0.1-SNAPSHOT</version>
-
<name>02-provider-8081</name>
-
<description>Demo project for Spring Boot</description>
-
-
<properties>
-
<java.version>1.8</java.version>
-
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
-
</properties>
-
-
<dependencies>
-
-
<dependency>
-
<groupId>com.alibaba</groupId>
-
<artifactId>druid</artifactId>
-
<version>1.1.10</version>
-
</dependency>
-
-
<!--actuator依赖-->
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-actuator</artifactId>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-data-jpa</artifactId>
-
</dependency>
-
<!--eureka客户端依赖-->
-
<dependency>
-
<groupId>org.springframework.cloud</groupId>
-
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-
</dependency>
-
-
<!--修改MySQL驱动版本-->
-
<dependency>
-
<groupId>mysql</groupId>
-
<artifactId>mysql-connector-java</artifactId>
-
<version>5.1.47</version>
-
<scope>runtime</scope>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-web</artifactId>
-
</dependency>
-
-
<dependency>
-
<groupId>org.projectlombok</groupId>
-
<artifactId>lombok</artifactId>
-
<optional>true</optional>
-
</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>
(3)修改yml文件
-
server:
-
port: 8081
-
-
spring:
-
jpa:
-
# 指定在Spring容器启动时是否自动建表,默认为false
-
generate-ddl: true
-
# 指定是否在控制台显示其执行的SQL语句,默认false
-
show-sql: true
-
# 指定应用重启时是否重新创建更新表
-
hibernate:
-
ddl-auto: none
-
-
# 配置数据源
-
datasource:
-
type: com.alibaba.druid.pool.DruidDataSource
-
driver-class-name: com.mysql.jdbc.Driver
-
url: jdbc:mysql:///test?useUnicode=true&characterEncoding=utf8
-
username: root
-
password: root
-
-
# 指定当前微服务对象暴露的名称
-
application:
-
name: abcmsc-provider-depart
-
-
-
logging:
-
# 设置日志输出格式
-
pattern:
-
console: level-%level %msg%n
-
level:
-
root: info
-
org.hibernate: info
-
org.hibernate.type.descriptor.sql.BasicBinder: trace
-
org.hibernate.type.descriptor.sql.BasicExtractor: trace
-
com.abc.provider: debug
-
-
# 指定Eureka服务中心
-
eureka:
-
client:
-
service-url:
-
defaultZone: http://localhost:8000/eureka
-
# defaultZone: http://localhost:8100/eureka,http://localhost:8200/eureka,http://localhost:8300/eureka
-
-
# 指定当前客户端主机在注册中心的名称
-
# instance:
-
# instance-id: abcmsc-provider-8081
-
-
info:
-
company.name: www.abc.com
-
company.addr: China Beijing
-
company.tel: 12345678
-
app.name: abc-msc
-
app.desc: mic-server-cloud
-
author: abc
三、创建消费工程02-consumer-8080
消费者将使用提供者暴露的服务名称(spring.application.name)来消费服务
(1)创建工程
复制01-consumer-8080,并重命名为02-consumer-8080
https://blog.csdn.net/u012965203/article/details/99065322
(2)添加依赖管理及依赖
-
<?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>
-
-
<groupId>com.abc</groupId>
-
<artifactId>02-consumer-8080</artifactId>
-
<version>0.0.1-SNAPSHOT</version>
-
<packaging>jar</packaging>
-
-
<parent>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-parent</artifactId>
-
<version>2.1.3.RELEASE</version>
-
<relativePath/> <!-- lookup parent from repository -->
-
</parent>
-
-
<properties>
-
<java.version>1.8</java.version>
-
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
-
</properties>
-
-
<dependencies>
-
<!--actuator依赖-->
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-actuator</artifactId>
-
</dependency>
-
<!--eureka客户端依赖-->
-
<dependency>
-
<groupId>org.springframework.cloud</groupId>
-
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
-
<version>2.1.2.RELEASE</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-web</artifactId>
-
</dependency>
-
-
<dependency>
-
<groupId>org.projectlombok</groupId>
-
<artifactId>lombok</artifactId>
-
<optional>true</optional>
-
</dependency>
-
<dependency>
-
<groupId>org.springframework.cloud</groupId>
-
<artifactId>spring-cloud-commons</artifactId>
-
<version>2.1.2.RELEASE</version>
-
<scope>compile</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>
(3)修改yml文件
-
spring:
-
application:
-
name: abcmsc-consumer-depart
-
-
eureka:
-
client:
-
service-url:
-
defaultZone: http://localhost:8000/eureka
-
# defaultZone: http://localhost:8100/eureka,http://localhost:8200/eureka,http://localhost:8300/eureka
(4)修改处理器

(5)修改JavaConfig类

四、测试
(1)启动eureka

(2)启动提供者

(3)启动消费者

(4)查看eureka服务列表

(5)测试功能

五、EurekaServer集群集群
这里要搭建的EurekaServer集群中包含三个EurekaServer节点,其端口号分别为8100、8200与8300
设置域名
在C:\Windows\System32\drivers\etc的host文件中添加如下域名映射信息
-
127.0.0.1 eureka8100.com
-
127.0.0.1 eureka8200.com
-
127.0.0.1 eureka8300.com
一、创建00-eurekaserver-8100
(1)创建工程
复制00-eurekaserver-8000工程,并重命名为00-eurekaserver-8100
(2) 修改pom

(3)修改配置文件
-
server:
-
port: 8100
-
-
eureka:
-
instance:
-
hostname: eureka8100.com # 指定Eureka主机
-
client:
-
register-with-eureka: false # 指定当前主机是否需要向注册中心注册(不用,因为当前主机是Server,不是Client)
-
fetch-registry: false # 指定当前主机是否需要获取注册信息(不用,因为当前主机是Server,不是Client)
-
service-url: # 暴露服务中心地址
-
defaultZone: http://eureka8100.com:8100/eureka,http://eureka8200.com:8200/eureka,http://eureka8300.com:8300/eureka
(4)创建00-eurekaserver-8200
再以相同的方式再复制出00-eurekaserver-8200

(5)创建00-eurekaserver-8300
再以相同的方式再复制出00-eurekaserver-8300

(6)修改提供者配置文件

(7)修改消费者配置文件

(8)启动eureka8100.com

(9)启动eureka8200.com

(10)启动eureka8300.com

(11)启动消费者

(12)启动提供者

(13)查看提供服务列表



Spring Cloud中使用Eureka的更多相关文章
- Spring Cloud中,Eureka常见问题总结
Spring Cloud中,Eureka常见问题总结. 1 eureka.environment: 指定环境 参考文档: 1 eureka.datacenter: 指定数据中心 参考文档: 使用配置项 ...
- 【spring cloud】spring cloud中启动eureka集群时候,发生端口已经绑定的报错The Tomcat connector configured to listen on port 8000 failed to start. The port may already be in use or the connector may be misconfigured.
在分别设置 进行微服务eureka集群启动时候,执行命令行启动jar包时候,报错前面一个端口8000已经被使用,而我这里启动的配置文件中端口号是8001,怎么会导致端口冲突呢?? 但是报错我的端口冲突 ...
- Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul)
Spring Cloud中五大神兽总结(Eureka/Ribbon/Feign/Hystrix/zuul) 1.Eureka Eureka是Netflix的一个子模块,也是核心模块之一.Eureka是 ...
- Spring Cloud中负载均衡器概览
在上篇文章中(RestTemplate的逆袭之路,从发送请求到负载均衡)我们完整的分析了RestTemplate的工作过程,在分析的过程中,我们遇到过一个ILoadBalancer接口,这个接口中有一 ...
- Spring Cloud 系列之 Eureka 实现服务注册与发现
如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...
- Spring Cloud中的负载均衡策略
在上篇博客(Spring Cloud中负载均衡器概览)中,我们大致的了解了一下Spring Cloud中有哪些负载均衡器,但是对于负载均衡策略我们并没有去详细了解,我们只是知道在BaseLoadBal ...
- Spring Cloud中服务的发现与消费
之前没注意,微信公众号的图片不能引用到其他地方,本文图片显示不正常,原图在写完博客后已经删了,,,,,,所以本文小伙伴可以移步这里https://mp.weixin.qq.com/s/GoIZdwt5 ...
- 基于Spring cloud Ribbon和Eureka实现客户端负载均衡
前言 本案例将基于Spring cloud Ribbon和Eureka实现客户端负载均衡,其中Ribbon用于实现客户端负载均衡,Eureka主要是用于服务注册及发现: 传统的服务端负载均衡 常见的服 ...
- spring cloud config与eureka配合使用
前面两篇介绍了Spring Cloud Config服务端和客户端的简单配置,本篇介绍Spring Cloud Config与Eureka配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...
随机推荐
- VLAN技术 & ACL访问控制
VLAN介绍与配置 VLAN概述 交换网络中的问题 VLAN(Virtual Local Area Network) 在物理网络上划分出逻辑网 ,对应OS模型第二层 VLAN划分不受端口物理位置限制, ...
- [zoj3990]Tree Equation
记$dep(T)$为树$T$的深度(根节点深度为0),则有$\begin{cases}dep(A+B)=\max(dep(A),dep(B))\\dep(A\cdot B)=dep(A)+dep(B) ...
- 深度学习,机器学习神器,白嫖免费GPU
深度学习,机器学习神器,白嫖免费GPU! 最近在学习计算机视觉,自己的小本本没有那么高的算力,层级尝试过Google的Colab,以及移动云的GPU算力,都不算理想.如果数据集比较小,可以试试Cola ...
- 跟着老猫来搞GO-内建容器Map
前期回顾 在上面的文章中,老猫和大家分享了GO语言中比较重要的两种数据结构,一种是数组,另外一种是基于数组的slice.本篇文章想要继续和大家分享剩下的容器以及字符字符串的处理. MAP map的定义 ...
- C#中的异步
什么是异步? 作为一名Web端的码农,第一次接触异步是Ajax. 异步请求后端获取数据源,js操作html的dom节点,而无需要渲染整个网页的操作. 页面上点击按钮,加载进度动画,同时发起Ajax请求 ...
- .NET Core基础篇之:依赖注入DependencyInjection
依赖注入已经不是什么新鲜话题了,在.NET Framework时期就已经出现了各种依赖注入框架,比如:autofac.unity等.只是在.net core微软将它搬上了台面,不用再依赖第三方组件(那 ...
- C#使用Thrift作为RPC框架实战(四)之TSocket
前言 在前几个小节中我们讲了Thrift框架的基本概念以及重要的名称空间,接下来的几个小节,我们将站在实战的角度来深入讲解一些Thrift的重要类型.本小节我先要讲一下Thrift框架支持TCP通信的 ...
- javaSE基础复习
第一天:复习java入门知识,jvm内存,java程序执行流程,数据类型,变量和自动类型转换,运算符... 学习java目的:起初是因为想找工作,拿高薪.后来逐渐在学习java技术的过程中渐渐循喜欢上 ...
- [ARC098B] Xor Sum 2
关于异或运算和代数和运算有很不错的性质: \(xor_{i = 1} ^ {n}a_i \leq \sum_{i = 1} ^ n a_i\) 所以我们考虑一段区间按题目来说是合法的,即 \(xor_ ...
- Codeforces 1396D - Rainbow Rectangles(扫描线+线段树)
Codeforces 题面传送门 & 洛谷题面传送门 一道鸽了整整一年的题目,上一次提交好像是 2020 年 9 月 13 日来着的(?) 乍一看以为第 2 个提交和第 3 个提交只差了 43 ...