spring cloud(二)----------------Eureka注册中心环境搭建

一、首先创建一个没有架骨的maven主项目在这里插入图片描述

  • 点击下一步创建

创建完成后在maven主项目下删除src并且创建四个maven副项目分别叫:

  • demospringcloud-api--------连接实例

  • demospringcloud-cosumer---------消费类

  • demospringcloud-eureka---------注册类

  • demospringcloud-provider---------服务类
    在这里插入图片描述

  • 打开主项目中的pom文件添加引用

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Greenwich.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--Springboot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-maven-plugin</artifactId>
            <version>1.18.12.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

    </dependencies>

二、接下来在demospringcloud-api中创建实体类以供我们测试

在这里插入图片描述

内容:

package com.demospringcloud.entiy;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class StudentEntity implements Serializable {
    private String id;
    private String name;
    private int age;
}

三、配置Eureka:

步骤:

1.首先需要将你的demospringcloud-eureka项目变成springboot项目这里用到的包前面已经引入过了不用在子项目中重新引用了

2.然后就是注意的地方 你需要在本机的host文件中增加一个配置信息或者多个 因为后面会写集成多个Eureka注册中心的配置我电脑是win10的系统文件目录在:

C:\Windows\System32\drivers\etc

在下面增加一句话:

127.0.0.1 localhost1.com
127.0.0.1 localhost2.com
127.0.0.1 localhost3.com

如果是配置多个的话就增加多点 我目前配置了3个用来演示

那么现在先给大家配置一个:

首先需要创建一个普通的Java文件然后创建一个springboot的配置文件 如图:

在这里插入图片描述

编辑当前springcloud文件:

package springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class springcloud {

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

编辑完成后你的这个子项目就变成一个springboot的项目了下面就是配置yml文件:

注意:我这边的hostname是我在我本机更改完host文件以后添加的配置域名,端口号7001是官方默认的你也可以自己更改

server:
  port: 7001
eureka:
  instance:
    hostname: localhost1.com
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka

四、配置服务类

配置好Eureka注册中心后在demospringcloud-provider中创建一个controller,并且将demospringcloud-provider这个类变为springboot项目如图创建:

在这里插入图片描述

然后打开demospringcloudprovider添加:

package demospringcloudprovider;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
//将项目变为springboot项目
@SpringBootApplication
//打开enableeureka服务端
@EnableEurekaClient
public class demospringcloudprovider {
    public static void main(String[] args) {
        SpringApplication.run(demospringcloudprovider.class,args);
    }
}

controller中添加完成Student类后编辑:

package demospringcloudprovider.controller;
//引入当前文件项目中的实体类
import com.demospringcloud.entiy.StudentEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
public class Student {

    @GetMapping("/Get")
    public List<StudentEntity> Get() {
        List<StudentEntity>  list=new ArrayList<StudentEntity>();
        list.add(1,new StudentEntity("1001","大娃",12));
        list.add(2,new StudentEntity("1002","二娃",15));
        list.add(3,new StudentEntity("1003","六娃",18));
        list.add(4,new StudentEntity("1004","七娃",19));
        return list;
    }
}

最后编辑application.yml文件配置:

server:
  port: 8081
spring:
  application:
    name: demospringcloud-provider-8081
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka

声明:如果你引入当前文件项目中的实体类后你的demospringcloud-provider项目的pom文件中会多出来一个引入:

<dependencies>
        <dependency>
            <groupId>com.chinadic</groupId>
            <artifactId>demospringcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

五、初步测试:

首先运行Eureka注册类demospringcloud-eureka------------>其次运行服务类demospringcloud-provider

注意:可以先打开demospringcloud-eureka测试连接

在网页中输入地址: localhost:7001 看看是否能够进入
在这里插入图片描述

这时候需要注意 不要管我的中间那一部分你们应该看不到,这个是后面集成多个成功后的界面

只要能进入这个网页后就再启动demospringcloud-provider

成功后中间的

Insatances currently registered with Eureka

里面应该会有你的provider服务类的接口信息

六、配置消费类

配置这个消费类时我不太喜欢传统的配置方法 那种方法比较麻烦我这边使用了熔断器需要再消费类demospringcloud-cosumer的pom文件中添加:

不说那么多了先看目录:

在这里插入图片描述

编辑configBean

package demospringcloudconsumer.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConfigBean {

    @LoadBalanced
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

编辑StudentContoller

package demospringcloudconsumer.controller;

import com.demospringcloud.service.IStudent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

import java.util.List;


@RestController
@CrossOrigin
public class StudentContoller {
    @Autowired
    private IStudent iStudent;


    @RequestMapping(value = "/Get",produces = "text/html;charset=utf-8")
    public List getRestTemplate(){
        return iStudent.Get();
    }
}

EurekaCAP原则
C : 强一致性
A :可用性
P :分区容错性
CAP核心理论 :
一个分布式系统不可能同事很好的满足一致性,可用性和分区容错性这三个需求
根据Cap原理,将NOSQL数据库分成了满足CA原则 满足CP原则 和满足AP原则三大类
CA :单点集群满足一致性可用性的系统 通常可扩展性比较差
CP :满足一致性 分区容错性的系统 通常性能不是特别高
AP :满足可用性 分区容错性的系统,通常可能对一致性要求低一些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值