Spring Cloud中的初步学习(二)

Spring Cloud中的初步学习(二)

Eureka服务端运行出现的问题

昨天文章最后,在我电脑关机又运行了Eureka服务端一次的时候出现了问题,浪费了很长时间
访问地址是:http://localhost:8761
问题:java.net.ConnectException: Connection refused
在这里插入图片描述

出现这个问题,网上一般的解决方案是认为在配置application.properties时,
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false
两个参数没有配置为false,但我的参数设置没有问题
我的解决方案
由某一个评论下看到的(忘记在哪里了看的了),主要先验证application.properties有没有被读到。于是为了验证已经读到可以只保留server.port=8761,其余参数删除,查看端口是tomcat默认的8080还是我的8761。我保存了一次,然后运行Eureka服务端,出现问题了。
下图是我已经修改好的,但当时我tomcat初始化端口是8080,并不是设置的8761,说明application.properties读取存在问题,在检测其余步骤没有出错后,我又把之前删除的参数配置恢复了,再次保存后,运行端口正确,一切正常。
**总结:**使用的是eclipse,可能存在软件运行的bug,在两次参数变动保存并运行服务端,eclipse里面的运行的内容终于发生了变化,朝着预想的方向进行了。关于eclipse的bug只是个人猜想,但问题解决经过就是这样的。
在这里插入图片描述

Eureka客户端启动

客户端pom文件配置:
这里继承的是上篇文章中Eureka服务端的pom文件,只增加了spring-cloud-starter-eureka的依赖。

<?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>cn.com</groupId>
  <artifactId>eureka-client</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
	
  <name>eureka-client</name>
  <url>http://maven.apache.org</url>
  <!--这里继承的是上篇文章中Eureka服务端的pom文件-->
	<parent>
        <groupId>cn.com</groupId>
        <artifactId>eureka-server</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
  	<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
  </dependencies>
</project>

客户端application.properties文件配置

server.port=8091
#设置应用名称
spring.application.name=service-hi
#开启客户端角色
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
# 将IP注册到Eureka Server上,而如果不配置就是机器的主机名。
eureka.instance.prefer-ip-address=true

客户端启动类,平平无奇,注意和服务端不同,是@EnableEurekaClient

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.hystrix.EnableHystrix;

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

访问http://localhost:8761/,显示
在这里插入图片描述
这次依旧遇到了如服务端遇到的一样的问题,客户端端口号显示是8080,重复之前的解决方案,但这次操作的对象时pom文件,之后就正常了,不清楚idea会不会出现这样的问题。
以上就是Eureka服务端(也叫注册中心)和客户端的基本内容。

Eureka服务端增加内容

1、服务端安全问题

防止外网直接进入注册中心,这里可以增加登录账号和密码
在服务端pom文件中增加spring-boot-starter-security依赖

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

配置文件bootstrap.properties:

security.basic.enabled=true
security.user.name=admin
security.user.password=123

启动服务端,访问localhost:8761,显示
在这里插入图片描述

2、eureka server集群

使用三个注册中心进行相互注册,并且也作为相互的注册中心。
首先要开启作为客户端角色,服务端这两个参数不再是false

eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true

在application.properties文件中增加配置:
注意eureka.client.serviceUrl.defaultZone处的配置
接口8761:

server.port=8761
spring.application.name=eureka-server
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.client.serviceUrl.defaultZone=http://localhost:8762/eureka
eureka.server.enable-self-preservation=false
eureka.instance.prefer-ip-address=true

接口8762:

server.port=8762
spring.application.name=eureka-server
eureka.client.registerWithEureka=true
eureka.client.fetchRegistry=true
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka
eureka.server.enable-self-preservation=false
eureka.instance.prefer-ip-address=true

eureka.server.enable-self-preservation=false测试时关闭自我保护机制,保证不可用服务及时踢出
eureka.instance.prefer-ip-address=true将IP注册到Eureka Server上,而如果不配置就是机器的主机名
启动类不变,启动后,访问localhost:8761或者localhost:8762,出现下图表示配置成功,若配置三台Eureka服务端,则多配置一个server.port=8763的服务器,配置中的eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka,http://localhost:8762/eureka,其余两个端口也变更成两个defaultZone。
在这里插入图片描述

3、eureka client集群

复制多个client微服务,修改配置文件中的server.port,每个client端口号不同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值