zoukankan      html  css  js  c++  java
  • spring cloud学习(一) 服务注册

    首先spring-cloud相关的简介可以去百度搜索,这里就不多说了,这里分享一个翻译spring cloud官网的中文网站spring cloud中文网

    这个学习项目的代码放在 https://github.com/fengzp/SpringCloudDemo

    一、创建eureka服务注册中心

    1.1创建工程

    我这里选的是spring-boot1.4.6的版本,因为暂时1.5.+的版本,spring-cloud会有一些bug

    我这里的关于spring-cloud的学习都是在同一个项目下练习的。

    最后根的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>com.feng</groupId>
        <artifactId>spring-cloud</artifactId>
        <packaging>pom</packaging>
        <version>0.0.1</version>
    
        <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>Camden.SR7</spring-cloud.version>
        </properties>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.4.6.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <dependencies>
            <dependency>
                <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-starter-web</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>
    
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
        </repositories>
    </project>
    

    新建模块eureka-server
    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">
        <parent>
            <artifactId>spring-cloud</artifactId>
            <groupId>com.feng</groupId>
            <version>0.0.1</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>eureka-server</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka-server</artifactId>
            </dependency>
        </dependencies>
    
    </project>
    

    1.2
    在resources下新建application.yml文件

    server:
      port: 8010 #服务端口
    
    eureka:
      instance:
        hostname: localhost
      client:
        register-with-eureka: false #是否将eureka自身作为应用注册到eureka注册中心
        fetch-registry: false #为true时,可以启动,但报异常:Cannot execute request on any known server
        serviceUrl:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    
    

    1.3
    ServerApplication,使用@EnableEurekaServe标识这是一个eureka中心

    package com.feng;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    /**
     * @author fengzp
     * @date 17/4/27
     * @email fengzp@gzyitop.com
     * @company 广州易站通计算机科技有限公司
     */
    @SpringBootApplication
    @EnableEurekaServer
    public class ServerApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ServerApplication.class, args);
        }
    }
    
    

    运行成功后打开http://localhost:8010/

    可以看到如下页面说明启动成功

    二、新建服务提供者

    2.1
    新建模块service-a
    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">
        <parent>
            <artifactId>spring-cloud</artifactId>
            <groupId>com.feng</groupId>
            <version>0.0.1</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>service-a</artifactId>
    
    
    </project>
    

    2.2
    新建配置文件application.yml
    这里说明一点,端口可以使用${PORT:${SERVER_PORT:0}}来随机指定一个未使用的端口

    spring:
      application:
        name: service-a
    
    server:
      port: 8810
    
    eureka:
      client:
        serviceUrl:
              defaultZone: http://localhost:8010/eureka/ #eureka服务注册地址
    

    2.3
    ServiceApplication:
    使用@EnableDiscoveryClient来标识是一个eurekaclient

    /**
     * @author fengzp
     * @date 17/4/27
     * @email fengzp@gzyitop.com
     * @company 广州易站通计算机科技有限公司
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    @RestController
    public class ServiceApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(ServiceApplication.class, args);
        }
    
        @Value("${spring.application.name}")
        private String name;
        @Value("${server.port}")
        private String port;
    
        @RequestMapping("/hi")
        public String hi(@RequestParam String id){
            return "hi, " + id + ", " + name + ":" + port;
        }
    
    }
    
    

    2.4
    运行后再次打开http://localhost:8010/可以看到服务已经注册到中心

  • 相关阅读:
    [团队项目]典型用户
    0415 操作系统_实验二、作业调度模拟程序
    0415 结对2.0评价
    复利计算- 结对2.0--复利计算WEB升级版
    0408汉堡
    复利计算- 结对1.0
    0405《构建之法》第四章读后感
    复利计算器4.0 【java版】
    复利计算器的单元测试结果
    操作系统 实验一、命令解释程序的编写实验
  • 原文地址:https://www.cnblogs.com/andyfengzp/p/6830679.html
Copyright © 2011-2022 走看看