1、springcloud微服务:基于Eureka搭建服务注册中心

摘要:eureka是springcloud项目下的一个子项目,类似zookeeper提供服务注册、服务发现功能,本文基于Eureka搭建一个简单的服务注册项目:microservice-register-eureka,以及服务提供项目:microservice-provider-org。

所有项目基于maven搭建。

一、服务注册中心:microservice-register-eureka

1、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>com.netsframe.serviceregister</groupId>  
    <artifactId>microservice-register-eureka</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <packaging>jar</packaging>  
  
    <name>microservice-register-eureka</name>  
    <description>Demo project for Spring Boot</description>  
  
    <parent>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-parent</artifactId>  
        <version>2.0.0.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>Finchley.M8</spring-cloud.version>  
    </properties>  
  
    <dependencies>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>  
        </dependency>  
          
        <dependency>  
            <groupId>com.thoughtworks.xstream</groupId>  
            <artifactId>xstream</artifactId>  
            <version>1.4.7</version>  
        </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>  

2、启动类,加上注解:@EnableEurekaServer:

package com.netsframe.serviceregister;  
  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;  
  
@SpringBootApplication  
@EnableEurekaServer  
public class MicroserviceRegisterEurekaApplication {  
  
    public static void main(String[] args) {  
        SpringApplication.run(MicroserviceRegisterEurekaApplication.class, args);  
    }  
}  

3、配置application.yml:

server:  
  port: 8761 #启动端口  
eureka:  
  client:  
    registerWithEureka: false #false:表示仅做服务器,不会作为客户端注册到eureka     
    fetchRegistry: false #false:无需注册自身  

经上面配置,一个基于eureka的简单服务注册项目就单间完成,启动类MicroserviceRegisterEurekaApplication,访问地址:http://localhost:8761/,显示如下界面:

二、服务提供:microservice-provider-org

 1、maven配置:

<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.netsframe.org</groupId>  
    <artifactId>microservice-provider-org</artifactId>  
    <version>0.0.1-SNAPSHOT</version>  
    <packaging>jar</packaging>  
  
    <name>microservice-provider-org</name>  
    <url>http://maven.apache.org</url>  
  
    <properties>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    </properties>  
      
    <dependencyManagement>  
        <dependencies>  
            <dependency>  
                <groupId>org.springframework.cloud</groupId>  
                <artifactId>spring-cloud-netflix</artifactId>  
                <version>1.2.2.RELEASE</version>  
                <type>pom</type>  
                <scope>import</scope>  
            </dependency>  
        </dependencies>  
    </dependencyManagement>  
  
    <dependencies>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-actuator</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.cloud</groupId>  
            <artifactId>spring-cloud-starter-eureka</artifactId>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework.boot</groupId>  
            <artifactId>spring-boot-starter-web</artifactId>  
            <version>1.5.9.RELEASE</version>  
        </dependency>  
        <dependency>  
            <groupId>com.thoughtworks.xstream</groupId>  
            <artifactId>xstream</artifactId>  
            <version>1.4.7</version>  
        </dependency>  
    </dependencies>  
</project>

 2、application.yml配置:

server:  
  port: 9001  
spring:  
  application:  
    name: org-service #服务名,将注册到eureka注册中心  
eureka:  
  instance:  
    statusPageUrlPath: ${management.context-path}/info  
    healthCheckUrlPath: ${management.context-path}/health  
  client:  
    serviceUrl:  
      defaultZone: http://localhost:8761/eureka/ #注册地址,eureka服务地址

3、rest服务类:

package com.netsframe.org.rest;  
  
import org.springframework.web.bind.annotation.PathVariable;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController()  
public class OrgController {  
    @RequestMapping("/org/query/{id}")  
    public String query(@PathVariable("id") String id) {  
        return "中国深圳";  
    }  
}  

4、启动类,添加注解:@EnableEurekaClient

package com.netsframe.org;  
  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;  
  
@SpringBootApplication  
@EnableEurekaClient  
public class MicroserviceProviderOrgApplication {  
    public static void main(String[] args) {  
        SpringApplication.run(MicroserviceProviderOrgApplication.class, args);  
    }  
}  

启动MicroserviceProviderUserApplication类访问:http://localhost:9001/org/query/1,返回如下:

再次访问http://localhost:8761/,会发现microservice-provider-org已经注册到注册中心了:

 至此,服务注册、服务发现实现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值