创建多模块springcloud应用eureka server和client和消费端demo
使用环境是 STS + maven
1 创建父级 项目,springcloud-demo1
new -> maven project ->

按照要求进行配置即可。然后删除 src目录,因为父级项目只是配置项目依赖和版本控制使用。
1.2 修改 pom 文件
<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.</modelVersion>
<groupId>com.huitong</groupId>
<artifactId>springcloud-demo1</artifactId>
<version>0.0.-SNAPSHOT</version>
<packaging>pom</packaging> <properties>
<project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR4</spring-cloud.version>
</properties> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5..RELEASE</version>
</parent> <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> <modules>
</modules>
</project>
此时也要注意springcloud 和 springboot 版本之间有一定的关联性,最好使用官网推荐的对应版本。否则可能会出现版本不兼容的问题。我就是这么趟的坑过来的
2 创建 eureka server端项目,spring-cloud-sureka-server
在 springcloud-demo1 项目上右击, new -> maven module

2.2 修改 pom 文件,添加 eureka-server 依赖, spring-cloud-starter-eureka-server
<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.</modelVersion>
<parent>
<groupId>com.huitong</groupId>
<artifactId>springcloud-demo1</artifactId>
<version>0.0.-SNAPSHOT</version>
</parent>
<artifactId>spring-cloud-eureka-server</artifactId> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.3 添加配置文件 application.yml
server:
port: spring:
application:
name: eureka-server eureka:
instance:
hostname: 127.0.0.1
server:
# 关闭自我保护,当服务出现故障自动剔除。清理间隔(单位毫秒,默认是60*)
enableSelfPreservation: false
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
eureka 配置说明 可见 http://www.cnblogs.com/li3807/p/7282492.html
在 server 端 service-url 指定暴露出的注册服务地址。让客户端可以将应用注册到该地址上。
2.4 添加启动类,StartEurekaServer
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication
@EnableEurekaServer
public class StartEurekaServer { public static void main(String[] args) {
SpringApplication.run(StartEurekaServer.class, args);
} }
3 新建一个服务提供端 module,spring-cloud-eureka-client-demo1,跟 eureka 方法一样,在springcloud-demo1项目上右击, new -> maven module
3.2 修改 pom 文件
<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.</modelVersion>
<parent>
<groupId>com.huitong</groupId>
<artifactId>springcloud-demo1</artifactId>
<version>0.0.-SNAPSHOT</version>
</parent>
<artifactId>spring-cloud-eureka-client-demo1</artifactId> <dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency> </dependencies> </project>
3.3 添加配置文件 application.yml
server:
port: spring:
application:
name: eureka-client-demo1 eureka:
instance:
preferIpAddress: true
hostname: 127.0.0.1
instanceId: ${spring.cloud.client.ipAddress:127.0.0.1}:${server.port}
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${eureka.port:8010}/eureka/
3.4 编写启动类,SpringCloudDemo1
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient; @SpringBootApplication
@EnableEurekaClient
public class SpringCloudDemo1 { public static void main(String[] args) {
SpringApplication.run(SpringCloudDemo1.class, args); } }
3.5 简单的实体类,Student
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor; @Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Student {
private String name;
private Integer age; }
3.6 Controller
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController; @RestController
public class StudentController { @RequestMapping(value="/student/demo1", method=RequestMethod.GET)
public Student getStu1() {
Student result = Student.builder().name("allen").age().build();
if (ObjectUtils.allNotNull(result)) {
System.out.println(result);
} return result;
} }
此时访问页面 :http://localhost:8010/

说明:由于springcloud 版本低或者什么原因,在编写配置时,使用的是 横线命名法 启动的时候一直给我报错,com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
后来查阅大量资料发现将配置属性全部改为 驼峰命名法 就好了
创建多模块springcloud应用eureka server和client和消费端demo的更多相关文章
- 【SpringCloud】04.SpringCloud Eureka Server与Client的创建
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCloud将它集成在其子项 ...
- springcloud(四)-Eureka Server集群
Eureka Server的高可用 这一节我们接着上一节说. 有分布式应用开发经验的朋友应该发现,前文编写的单节点Eureka Server并不适合线上生产环境.Eureka Client会定时连接E ...
- SpringCloud启动Eureka server时报错 java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present
SpringBoot打开Eureka server时出现以下错误: java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext ...
- (2-2)SpringCloud-服务注册到Eureka Server集群并消费
服务注册到Eureka Server集群 在(2-1)SpringCloue-Eureka实现高可用注册中心中我们搭建好了高可用的Eureka注册中心,下面我们要把服务注册到Eureka Server ...
- SpringCloud(3)---Eureka服务注册与发现
Eureka服务注册与发现 一.Eureka概述 1.Eureka特点 (1) Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移. (2) Eureka 主管服务 ...
- Springcloud-alibaba学习实践(2)- nacos&Eureka Server服务注册实践
前言:上一篇已搭建好了springcloud服务注册中心(Nacos&Eureka Server),本篇继续代码实践,注册服务到服务中心,本篇只是演示了两种注册中心,后续我们以Nacos注册中 ...
- SpringCloud警告(Eureka):EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.
警告!Eureka可能存在维护了错误的实例列表(当它们没有启动的时候,Eureka却把它当成启动的了):Renews值小于Threshold值,因此剩下未过期的都是安全的. 原因分析: 这个是Eure ...
- SpringCloud创建Config模块
1.说明 本文详细介绍Spring Cloud创建Config模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 创建Config模块这个子工 ...
- SpringCloud创建Gateway模块
1.说明 本文详细介绍Spring Cloud创建Gateway模块的方法, 基于已经创建好的Spring Cloud父工程, 请参考SpringCloud创建项目父工程, 和已经创建好的Eureka ...
随机推荐
- Atlas系列一:【已解决】error while loading shared libraries: libcrypto.so.6: cannot open shared object file: No such file or directory
1:Atlas的安装 https://github.com/Qihoo360/Atlas/wiki/Atlas的安装 2: [root@localhost bin]# ./mysql-proxyd t ...
- jump-game i&&ii 能否跳出区间 贪心
I: Given an array of non-negative integers, you are initially positioned at the first index of the a ...
- 对2个hex(16进制)字符串进行异或操作
private static String hexXOR(String hex1, String hex2){ BigInteger i1 = new BigInteger(hex1, 16); Bi ...
- mysql日期/时间转换为字符串
将日期时间2016-05-13 16:07:50转化为字符串20160513 date_format select phone, date_format(time, '%Y%m%d%H%i%s') ...
- CentOS 6.4 安装 rabbitmq(3.6.15)
安装废了一番周折,中间需要装一个socat,网上各种过时的地址. 无奈去socat官网,结果提供编译安装,编译安装完yum install rabbitmq的时候仍然提示缺少需要的依赖,烦,好在折腾两 ...
- centos7 计划任务 crontab的使用
#vim /etc/crontab #号代表以管理员身份运行. 将你要执行的脚本或者命令加进去,例如我的: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr ...
- 六大主流开源SQL引擎总结
本文涵盖了6个开源领导者:Hive.Impala.Spark SQL.Drill.HAWQ 以及Presto,还加上Calcite.Kylin.Phoenix.Tajo 和Trafodion.以及2个 ...
- Spark ML 几种 归一化(规范化)方法总结
规范化,有关之前都是用 python写的, 偶然要用scala 进行写, 看到这位大神写的, 那个网页也不错,那个连接图做的还蛮不错的,那天也将自己的博客弄一下那个插件. 本文来源 原文地址:htt ...
- 基于酷Q的工作秘书机器人
代码地址如下:http://www.demodashi.com/demo/14617.html 环境准备 名称 版本 Jdk 8 groovy 2.4.12 gradle 4.6 酷Q 5.12.3A ...
- 【php将日志写入一个按时间天来分类的文件】put_file_contents()
具体参考php官方文档:http://php.net/manual/zh/function.file-put-contents.php 具体参数:成功返回插入数据的字节数,失败返回false 使用示例 ...