文档章节

Spring Cloud 学习笔记

xiaoye08050141
 xiaoye08050141
发布于 2017/05/24 17:12
字数 876
阅读 342
收藏 7

工程搭建

1、http://start.spring.io/ 

   

下载工程

2、import 工程

修改pom文件    

<?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>org.xiaoye.clearworld</groupId>
	<artifactId>clearworld-eureka</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<name>clearworld-eureka</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</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.RELEASE</spring-cloud.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-eureka-server</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</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、服务注册中心:新建maven模块【clearworld-eureka-register】

修改pom文件

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	
	<parent>
		<groupId>org.xiaoye.clearworld</groupId>
		<artifactId>clearworld-eureka</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	
	<artifactId>clearworld-eureka-register</artifactId>
	<name>clearworld-eureka-register</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies></dependencies>
</project>

增加配置application.properties

## 端口号
server.port = 8000
## session 超时时间
server.sessionTimeout = 30

eureka.instance.hostname = localhost
eureka.client.registerWithEureka = false
eureka.client.fetchRegistry = false
eureka.client.serviceUrl.defaultZone = http://${eureka.instance.hostname}:${server.port}/eureka/

创建启动类

@EnableEurekaServer
@SpringBootApplication
public class AppStarter {
    
    public static void main(String[] args) {
        SpringApplication.run(AppStarter.class, args);
    }
}

4、服务提供方:新建maven模块【clearworld-eureka-server】

修改pom文件

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.xiaoye.clearworld</groupId>
		<artifactId>clearworld-eureka</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>

	<artifactId>clearworld-eureka-server</artifactId>
	<name>clearworld-eureka-server</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	
	<dependencies></dependencies>
</project>

增加配置application.properties

## 系统名称
application.system-name = eureka-server
## 端口号
server.port = 8001
## session 超时时间
server.sessionTimeout = 30

spring.application.name = ${application.system-name}
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

增加启动类:

@EnableEurekaClient
@SpringBootApplication
public class AppStarter {
    
    public static void main(String[] args) {
        SpringApplication.run(AppStarter.class, args);
    }
}

增加Controller

@RestController
public class TestController {

    @RequestMapping("hello")
    public String hello(@RequestParam String name) {
        return "你好," + name;
    }
}

5、服务消费方:新建maven模块【clearworld-eureka-client】

修改pom文件

<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	
	<parent>
		<groupId>org.xiaoye.clearworld</groupId>
		<artifactId>clearworld-eureka</artifactId>
		<version>0.0.1-SNAPSHOT</version>
	</parent>
	
	<artifactId>clearworld-eureka-ribbon</artifactId>
	<name>clearworld-eureka-ribbon</name>
	<url>http://maven.apache.org</url>
	
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>
	
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-ribbon</artifactId>
		</dependency>
	</dependencies>
</project>

增加配置application.properties

## 系统名称
application.system-name = eureka-client
## 端口号
server.port = 8004
## session 超时时间
server.sessionTimeout = 30

spring.application.name = ${application.system-name}
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/

增加启动类

@EnableDiscoveryClient
@SpringBootApplication
public class AppStarter {
    
    public static void main(String[] args) {
        SpringApplication.run(AppStarter.class, args);
    }
    
    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

增加Controller

// Controller 控制器
@RestController
public class TestController {

    @Autowired
    private TestService service;
    
    @RequestMapping("execute")
    public String execute() {
        String message = service.execute();
        return message;
    }
}

// 服务接口类
public interface TestService {

    public String execute();

}

// 服务接口实现类
@Service
public class TestServiceImpl implements TestService {
    
    @Autowired
    RestTemplate template;

    @Override
    public String execute() {
        return template.getForObject("http://EUREKA-SERVER/hello?name='叶生'", String.class);
    }
}

6、测试

启动说明:

    a、启动服务注册中心,端口号:8000

    b、启动服务提供方,端口号:8001

    c、启动服务提供方,端口号:8002

    d、启动服务消费方,端口号:8004

访问:http://localhost:8000/  打开服务中心

访问:http://localhost:8004/execute

返回:你好,'叶生'

 

结束。

 

异常解析:

1、服务提供方只启动一次(这里只启动端口:8001的服务)

访问:http://localhost:8004/execute

服务消费方后台异常:java.lang.IllegalStateException: No instances available for EUREKA-SERVER

解决:

1、解决方案一:再启动一个服务提供方

2、解决方案二:

    a、取消服务消费方启动类中的“@LoadBalanced”注解(此为负载均衡注解,个人认为需要多个服务,具体待了解)

    b、修改请求服务提供方的地址为:

return template.getForObject("http://localhost:8001/hello?name='叶生'", String.class);

 

© 著作权归作者所有

共有 人打赏支持
上一篇: Java Linux 环境
下一篇: MQ 相关介绍
xiaoye08050141
粉丝 0
博文 29
码字总数 17546
作品 0
深圳
后端工程师
私信 提问
.net core+Spring Cloud学习之路 一

文章开头唠叨两句。 2019年了,而自己参加工作也两年有余了,用一个词来概括这两年多的生活,就是:“碌碌无为”。 也不能说一点收获都没有,但是很少。2019来了,我立志要打破现状,改变自己...

请叫我小冯哥哥
01/02
0
0
【Spring Boot】1.基础知识

前言 该相关文档其实是学习一段名为“尚硅谷Spring Boot的学习视频”的过程中所做的笔记,教导老师讲解的非常细腻,推荐大家去支持一下。 简介 spring boot是用来简化Spring应用开发。 约定大...

落花时节又逢卿
2018/12/27
0
0
专访陈文辉:新技术很重要,但是首先要练好基本功

让我们把时间调回到2003年6月。那一年,承载着“传统J2EE寒冬之后的崭新起点”美好愿景的Spring项目开始立项,并以1.0版本进行推进。 时光荏苒,从Spring Framework 1.0发展到现在的Spring ...

异步社区
2018/08/22
0
0
.net core+Spring Cloud学习之路 二

  前言:   原本计划这次写一下搭建eureka群集。但是发现上次写的只是服务的注册,忘了写服务的发现,所以这次先把服务发现补上去。   我们基于上篇文章,再新建两个.net core web api...

请叫我小冯哥哥
01/15
0
0
8月30日云栖精选夜读 | 谈谈“野生”Java程序员学习的道路!

一、引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的...

yq传送门
2018/08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
1
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部