springCloud单机环境搭建

个人理解 先学习怎么用 再去理解为什么这么用 当前阶段应该只涉及项目的搭建 让项目能够正常的运行

首先把一个完整的项目分为消费者 服务者 以及注册中心

起一个maven的项目 然后在里面添加module 

PS:除了这三个组成部分还有一个单独存放实体的module 为了后面的拓展

导入依赖

首先是注册中心依赖 


<!--这里只需要导入 eureka server 的依赖就好了-->

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

    </dependencies>

 

 然后是服务者

  <dependencies>

        <!--完善监控信息-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--         eureka -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

        <!--        获得实体类 配置api module-->
        <dependency>
            <groupId>com.xd</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jetty</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

 

最后是消费者

   <dependencies>
        <!--ribbon -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-ribbon</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>

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


        <dependency>
            <groupId>com.xd</groupId>
            <artifactId>springcloud-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>
    </dependencies>

 

首先修改host文件,为了以后的集群准备

C:\Windows\System32\drivers\etc 

127.0.0.1 eureka.7001.com
127.0.0.1 eureka.7002.com
127.0.0.1 eureka.7003.com

注册中心配置

server:
  port: 7001
eureka:
  instance:
    hostname: eureka.7001.com #Eureka服务端的实例名称
  client:
    register-with-eureka: false # 表示是否向注册中心注册自己
    fetch-registry: false # 表示如果为 false 表示自己为注册中心
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/  # 单机

 

.yml 文件 目前是单机状态后面会搭建集群

服务者配置

server:
  port: 8001
mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.xd.springcloud.pojo
  configuration:
    cache-enabled: true



spring:
  application:
    name: springcloud-provider-dept
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.gjt.mm.mysql.Driver
    url: jdbc:mysql://localhost:3306/db01?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&allowMultiQueries=true&useSSL=false
    username: root
    password: root

eureka:
  client:
    service-url:
      defaultZone: http://eureka.7001.com:7001/eureka/
  instance:
    instance-id: springcloud-provider-dept-8001 # 修改默认的描述信息

info: # 单纯的给 eureka 一些信息
  app.name: xd-springcloud
  company.name : LTIL

 

消费者配置

server:
  port: 80
eureka:
  client:
    register-with-eureka: false # 不向注册中心注册自己
    service-url:
      defaultZone: http://eureka.7001.com:7001/eureka/

 

我们的注册中心只需要一个启动类就可以了

// 启动之后 访问 http://eureka.7001.com:7001/
@SpringBootApplication
@EnableEurekaServer // EnableEurekaServer 服务端的启动类 可以接收别人注册进来
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class, args);
    }
}

 

这个时候就可以看到注册中心启动 但是并没有服务

上面是后面会搭建的集群

下面是会显示的服务

这个时候启动服务者

这个时候下面就有了服务 

PS:这个时候的服务者和我们平时的springBoot没有区别只是 使用了spring cloud启动,真正的spring cloud配置和内容还没有展现

启动消费者

PS:消费者不会在注册中心注册

这个时候就可以访问消费者,消费者会通过 RestTemple 去连接服务者 这个时候也可以直接去访问服务 提供者,但是考虑到后续的业务情况可能非常复杂,所以我们通过消费者来访问服务者

 

@Autowired
private RestTemplate restTemplate;


private static final String REST_URL_PERFIX = "http://localhost:8001";

@RequestMapping(
"/consumer/dept/queryAll") public List<Dept> queryAll() { return restTemplate.getForObject(REST_URL_PERFIX + "/dept/queryAll", List.class); }

 

 

 

可以直接去获取,非常的简单,后续会配置属于自己的 RestTemple 

单机情况下的配置和简单应用就到这里了 项目就可以正常运行了

posted @ 2021-05-10 14:36  野兽Gentleman  阅读(225)  评论(0编辑  收藏  举报