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配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...
随机推荐
- CSS px的理解
px是像素.然而一个屏幕像素的多少是由屏幕的分辨率决定的. 取个极端的栗子:如果分辨率是1w*1w,你设置一个100px宽的输入框,你只占屏幕的1/100,但是如果屏幕的分辨率是100*100,那么你 ...
- React 三大属性state,props,refs以及组件嵌套的应用
React 三大属性state,props,refs以及组件嵌套的应用 该项目实现了一个简单的表单输入添加列表的内容 代码如下 <!DOCTYPE html> <html> & ...
- 亚马逊开发者用户授权 AWS
在开发之前最好的方法是先拿到官网的API文档简单的预览一遍 这里有个中文文档:AWS 开发中文文档 需要准备: 注册成为开发者 创建 AWS 账户 创建 IAM 用户 创建 IAM 策略 创建 IAM ...
- redis sentinel搭建
/usr/local/bin /usr/local/etc https://www.centos.bz/2017/08/redis-3-x-sentinel-ha-service/ https://w ...
- VM的三种连接方式(转载)
概述: VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式).要想在网络管理和维护中合理应用它们,你就应该先了解一下这三种工作模 ...
- c++学习笔记(七)
位运算和sizeof运算符 位运算 C语言中提供了一些运算符可以直接操作整数的位,称为位运算,因此位运算中的操作数都必须是整型的. 位运算的效率是比较高的,而且位运算运用好的话会达到意想不到的效果. ...
- Python知识整理(三)
三.函数式编程与模块 1.函数式编程 1.高阶函数 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式. 1.map/reduce map()函数接收两个参数,一个是函 ...
- SpringCloud微服务实战——搭建企业级开发框架(十九):Gateway使用knife4j聚合微服务文档
本章介绍Spring Cloud Gateway网关如何集成knife4j,通过网关聚合所有的Swagger微服务文档 1.gitegg-gateway中引入knife4j依赖,如果没有后端代码编 ...
- [luogu4484]最长上升子序列
标算是状压dp+打表,前者时间复杂度为$o(n^{2}2^{n})$,并通过打表做到$o(1)$ 参考loj2265中关于杨表的相关知识,不难发现答案即$\frac{\sum_{a\vdash n}a ...
- 你有没有觉得邮件发送人固定配置在yml文件中是不妥当的呢?SpringBoot 动态设置邮件发送人
明月当天,不知道你有没有思念的人 前言 之前其实已经写过SpringBoot异步发送邮件,但是今天在一个小项目中要用到发送邮件时,我突然觉得邮件发送人只有一个,并且固定写在yml文件中,就是非常的不妥 ...