您的位置:首页 > 编程语言 > Java开发

springcloud记录篇1-eurekaserver

2017-09-21 12:06 579 查看
一。 SpringCloud简介

     Spring Cloud对Netflix的多个开源组件封装而成,同时又实现了和云端平台,和Spring Boot开发框架很好的集成。

Spring Cloud是一个相对比较新的微服务框架,今年(2016)才推出1.0的release版本. 虽然Spring Cloud时间最短, 但是相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案。

Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全居琐,leader选举,分布式session,集群状态)中快速构建的工具,使用Spring Cloud的开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接

 Spring Cloud版本是使用英国城市来定义一个版本号  Dalston为稳定版本

Component
Camden.SR7
Dalston.SR3
Edgware.M1
Finchley.M2
Finchley.BUILD-SNAPSHOT
spring-cloud-aws

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-bus

1.2.2.RELEASE

1.3.1.RELEASE

1.3.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-cli

1.2.4.RELEASE

1.3.4.RELEASE

1.4.0.M1

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-commons

1.1.9.RELEASE

1.2.3.RELEASE

1.3.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-contract

1.0.5.RELEASE

1.1.3.RELEASE

1.2.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-config

1.2.3.RELEASE

1.3.2.RELEASE

1.4.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-netflix

1.2.7.RELEASE

1.3.4.RELEASE

1.4.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-security

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-cloudfoundry

1.0.1.RELEASE

1.1.0.RELEASE

1.1.0.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-consul

1.1.4.RELEASE

1.2.1.RELEASE

1.2.1.RELEASE

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-cloud-sleuth

1.1.3.RELEASE

1.2.4.RELEASE

1.3.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-stream

Brooklyn.SR3

Chelsea.SR2

Ditmars.M2

Elmhurst.M1

Elmhurst.BUILD-SNAPSHOT

spring-cloud-zookeeper

1.0.4.RELEASE

1.1.2.RELEASE

1.2.0.M1

2.0.0.M1

2.0.0.BUILD-SNAPSHOT

spring-boot

1.4.5.RELEASE

1.5.4.RELEASE

1.5.6.RELEASE

2.0.0.M3

2.0.0.M3

spring-cloud-task

1.0.3.RELEASE

1.1.2.RELEASE

1.2.0.RELEASE

2.0.0.M1

2.0.0.RELEASE

spring-cloud-vault

 

1.0.2.RELEASE

1.1.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

spring-cloud-gateway

 

 

1.0.0.M1

2.0.0.M2

2.0.0.BUILD-SNAPSHOT

二 。启动简单的eurekaserver

  eurekaserver是一个类似于zookeeper的分布式调度中心  用于注册节点和发现节点信息 

 1》准备工作:

   下载 spring开发工具 sts  进入官网(http://projects.spring.io/spring-cloud/) 拉动到网页最下端 页脚栏  Tools点击(https://spring.io/tools)

   下载sts(http://download.springsource.com/release/STS/3.9.0.RELEASE/dist/e4.7/spring-tool-suite-3.9.0.RELEASE-e4.7.0-win32-x86_64.zip)

 2》创建springcloud项目

    包视图 new - spring starter project 

    


 填写maven的 公司名称 项目名等 

 


点击下一步 选择Cloud Discory - Eureka Server

 


 完成创建的项目中 pom.xml自动添加eureka的maven依赖

<?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.et</groupId>
<artifactId>eurekapub</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>eurekapub</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.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.7</java.version>
<spring-cloud.version>Dalston.SR3</spring-cloud.version>
</properties>

<dependencies>
<dependency> #引用eureka
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</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》创建资源文件

   src/main/resources 下创建application.yml文件 内容如下

 

#eureka服务器的启动端口
server:
port: 8761

#eureka的主机名 如果不配置 会从操作系统获取
eureka:
instance:
hostname: mymaster
preferIpAddress: true  #未配置hostname时 使用本机ip地址作为主机名 ipAddress是ip地址
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
appname: eurekaserver  #应用程序的名称
namespace: myeureka 对外公布地址时的命名空间也就是上下文路径 不设置默认为eureka
client:
registerWithEureka: false
fetchRegistry: false  #是否允许客户端抓取eureka的注册信息
serviceUrl:
defaultZone: http://mymaster:8761/myeureka/ security:
basic:
enabled: false #不启动认证


添加启动类

package cn.et;

import java.io.InputStream;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer  //表示启用EurekaServer
@SpringBootApplication
public class EurekaServerApplication {

public static void main(String[] args) {
SpringApplication sa=new SpringApplication(EurekaServerApplication.class);
sa.run(args);
}
}


启动后访问 http://localhost:8761  这里管理界面只允许localhost访问 不允许使用ip



三。设置eurekaserver权限

   src/main/resources下创建 application.yml文件 添加权限认证 

#eureka服务器的启动端口
server:
port: 8761

#eureka的主机名 如果不配置 会从操作系统获取
eureka:
instance:
hostname: mymaster
preferIpAddress: true  #未配置hostname时 使用本机ip地址作为主机名 ipAddress是ip地址
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
appname: eurekaserver
namespace: myeureka
client:
registerWithEureka: false
fetchRegistry: false  #是否允许客户端抓取eureka的注册信息
serviceUrl:
defaultZone: http://jiaozi:jiaozi123@mymaster:8761/myeureka/ #这里url上必须带上用户名和密码
security:
basic:
enabled: true #启动认证
user:
name: jiaozi #用户名
password: jiaozi123 #密码


maven中添加依赖

maven中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>


浏览器访问 http://localhost:8761    


输入 用户名和密码后后 可以看到管理界面

四。eurekaserver高可用

  这里添加 一主一丛

 eurekaserver    本机ip为 192.168.88.20  主机名 mymaster 端口 8761

 eurekabackup  本机ip为 192.168.88.20  主机名 mybackup 端口 8762

hosts文件中添加

192.168.88.20 mymaster
192.168.88.20 mybackup


同上 创建两个eureka server项目 

eurekaserver的application.yml配置 
#eureka服务器的启动端口
server:
port: 8761
spring:
application:
name:   eurekaserver
#eureka的主机名 如果不配置 会从操作系统获取
eureka:
instance:
hostname: mymaster  #可以通过修改 c:/windows/system32/drivers/etc/hosts文件
preferIpAddress: false  #未配置hostname时 使用本机ip地址作为主机名 ipAddress是ip地址
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
appname: eurekaserver
lease-expiration-duration-in-seconds: 5
lease-renewal-interval-in-seconds: 5
client:
registerWithEureka: true #是否允许 注册到Eureka服务器 一般集群环境需要互相注册
fetchRegistry: true  #是否允许客户端抓取eureka的注册信息
serviceUrl:
defaultZone: http://jiaozi:jiaozi123@mymaster:8761/eureka/,http://jiaozi:jiaozi123@mybackup:8762/eureka/ #启动安全认证  浏览器访问 http://localhost:8761需要输入预定义的用户名和密码 security:
user:
name: jiaozi #用户名
password: jiaozi123  #密码
basic:
enabled: true #启动认证
eurekabackup的application.yml配置 

#eureka服务器的启动端口
server:
port: 8762
spring:
application:
name:   eurekabackup
#eureka的主机名 如果不配置 会从操作系统获取
eureka:
instance:
hostname: mybackup
preferIpAddress: false  #未配置hostname时 使用本机ip地址作为主机名 ipAddress是ip地址
instance-id: ${spring.cloud.client.ipAddress}:${server.port}
appname: eurekabackup
lease-expiration-duration-in-seconds: 5
lease-renewal-interval-in-seconds: 5
client:
registerWithEureka: true #是否允许 注册到Eureka服务器 一般集群环境需要互相注册
fetchRegistry: true  #是否允许客户端抓取eureka的注册信息
serviceUrl:
defaultZone: http://jiaozi:jiaozi123@mybackup:8762/eureka/,http://jiaozi:jiaozi123@mymaster:8761/eureka/ #启动安全认证  浏览器访问 http://localhost:8761需要输入预定义的用户名和密码 security:
user:
name: jiaozi #用户名
password: jiaozi123  #密码
basic:
enabled: true #启动认证
两个项目添加 启动 类 分别启动 

查看 http://localhost:8761


因为我的设置中 appname设置的不一样导致从 不可用 所以 需要将主从项目的appname设置为相同的名称 

修改eurekabackup配置

eureka:
instance:
hostname: mybackup
appname: eurekaserver
启动



查看 http://localhost:8762
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: