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配合使用 前言 默认情况下,配置客户端启动时,都是通过配置属性 ...
随机推荐
- 『学了就忘』Linux基础命令 — 31、grep命令和通配符
目录 1.grep命令介绍 2.find命令和grep命令的区别(重点) (1)find命令 (2)grep命令 3.通配符与正则表达式的区别 (1)通配符: (2)正则表达式: 1.grep命令介绍 ...
- Azure Virtual NetWoker(一)对等互连网络
一,引言 Virtual NetWork Peering 可以无缝连接两个 Azure Virtual NetWork,Virtual NetWork Peering 直接的网络流量是专用的.在实际项 ...
- 【JAVA】笔记(6)--- toString方法;equals方法;finalize方法;package与import;内部类;
toString: 1.每创建一个类时,都要重写 toString 方法,这是敲代码的基本素养: 2.重写规则:简单明了: 3.String 类中也有toString方法(SUN公司写的): equa ...
- Django笔记&教程 6-1 表单(Form)介绍
Django 自学笔记兼学习教程第6章第1节--表单(Form)介绍 点击查看教程总目录 1 介绍 如果网站要让用户输入并提交数据(比如注册登录),则需要用到表单. 单纯的html也能写出表单,格式一 ...
- Qt Creator 源码学习笔记02,认识框架结构
阅读本文大概需要 6 分钟 在上一篇大概了解了关于Qt Creator 基础知识后[1],本篇先学习下框架基本结构,这样能够清晰的知道这个框架当中包含哪些文件.文件夹.工程文件,这些文件分别代表什么意 ...
- Error filterStart
一般原因为:1.xml配置失误filter应配置在servlet-mapping前面(应该都知道吧).看看class配的 别找不到.2.filter中某段代码未实例化(这个情况是出现最多的,要仔细检查 ...
- [hdu6134]Battlestation Operational
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define mod 1000000007 4 #define N 1000005 ...
- final关键字、抽象类、抽象类和接口的区别
1.final关键字 1.1.final修饰的类无法继承. 1.2.final修饰的方法无法覆盖. 1.3.final修饰的变量只能赋一次值. 1.4.final修饰的引用一旦指向某个对象,则不能再重 ...
- vue-通过name进行数据过滤
<template> <div> <h3>搜索列表</h3> <input type="text" placeholder=& ...
- 深入理解Redis 数据结构—双链表
在 Redis 数据类型中的列表list,对数据的添加和删除常用的命令有 lpush,rpush,lpop,rpop,其中 l 表示在左侧,r 表示在右侧,可以在左右两侧做添加和删除操作,说明这是一个 ...