zoukankan      html  css  js  c++  java
  • springcloud记录篇1-eurekaserver

    一。 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














  • 相关阅读:
    吴裕雄 python深度学习与实践(1)
    吴裕雄 python 机器学习-Logistic(1)
    吴裕雄 python 熵权法确定特征权重
    【Uva 1252】Twenty Questions
    【玲珑杯 round#18 B】图论你先敲完模板
    【Uva 10817】Headmaster's Headache
    【玲珑杯 round#18 A】计算几何你瞎暴力
    【Uva 12128】Perfect Service
    【UVa 12186】Another Crisis
    【Uva 10003】Cutting Sticks
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331191.html
Copyright © 2011-2022 走看看