将spring cloud项目跑起来

springCloud workingTime 52℃ 0评论

准备工作:首先创建一个maven多模块的springboot项目。点这里,就有一个springboot项目了~!

服务治理 Spring cloud eureka

随着系统的壮大,服务的增多,需要可以自动发现服务和注册服务的组件来进行服务的维护,这时服务治理就应运而生,它主要是用来实现各个微服务实例的自动化注册与发现。

  • 服务注册:每个服务需要向注册中心登记自己提供的服务,将端口号、版本号、通信协议等一些附加信息告知注册中心。注册中心按服务分类组织服务清单。
  • 服务发现:由于服务治理框架的作用,我们调用实例不在是直接ip地址:端口号/服务名称/接口名称这种形式,而是直接服务名称/接口名称,服务登记中心会根据注册的服务进行查找返回正确的实例调用。

对于服务的注册发现我们这个这样理解:

一个淘宝店铺,在淘宝注册,上架商品,开始售卖商品。当消费者购买该店铺商品时,只需要知道店铺名称和商品名称就可以进入店铺,而不用知道店铺的店主信息,商品分类等信息。
淘宝就好比注册中心,商家就像每个服务提供者,消费者就是消费服务。

搭建服务注册中心

在我们的maven多模块项目中,新建一个模块,名称随便(我这里叫cloud-eureka-center)

cloud-eureka-center项目的pom.xml文件中加入如下配置:

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

    <dependencyManagement>
        <dependencies>
            <!-- 控制 spring cloud 的版本-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Edgware.SR3</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <!-- 指定项目 Application.java 也就是spring boot中main方法的位置 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>org.cloud.Application</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

spring-boot中启动程序Application.java内容如下(Application.java必须放入一个package中,我这里放到了org.cloud包中):

@EnableEurekaServer
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

接下来进行application.properties配置,需要注意:在默认设置下,该服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为,配置内容如下:

server.port=8886
## 这里不能写127.0.0.1,注册时会出现Cannot execute request on any known server错误
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
## 是否检索服务
eureka.client.fetch-registry=false
# 关闭注册中心的保护机制,否则无法及时发现下线的服务
#eureka.server.enable-self-preservation=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

完成上面的配置后,启动应用并且访问:http://localhost:8886/会出现如下图的界面:

转载请注明:R&M » 将spring cloud项目跑起来

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

联系我:rm@rmworking.com