springcloud项目的搭建01

git的使用

我是直接使用的git集成到idea,git的图形化工具TortoiseGit,和码云平台(https://gitee.com/)
git的优点:
1)版本库本地化,支持离线提交,相对独立不影响协同开发。每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。
2)更少的“仓库污染”。git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像老版本SVN那样在每个目录下都产生.svn目录。
把内容按元数据方式存储,完整克隆版本库。所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
3)支持快速切换分支方便合并,比较合并性能好。在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
4)分布式版本库,无单点故障,内容完整性好。
5) 国外开源项目基本使用git

安装好git和TortoiseGit后,先在idea中集成
springcloud项目的搭建01_第1张图片
这样就可以从git上获取项目了(比如,码云,github都可以)
springcloud项目的搭建01_第2张图片
springcloud项目的搭建01_第3张图片
在url中引入地址就可以了;

远程仓库

springcloud中的configserver配置需要从远程仓库中拉取;
这是我从网上拉取的项目
springcloud项目的搭建01_第4张图片
三个配置文件分别是
application-user.yml

spring:
  profiles:
    active:
      - dev
---
server:
  port: 3355
spring:
  profiles: dev #开发环境
  application:
    name: MICROSERVICE-USER-DEV
---
server:
  port: 3355
spring:
  profiles: test #测试环境
  application:
    name: MICROSERVICE-USER-TEST

application-zuul-dev.yml

server:
  port: 1030
spring:
  application:
    name: zuul-gateway
zuul:
  routes:
    myUser.serviceId: user-provider #这是调用满足条件的服务名,注意要小写
    myUser.path: /user/** #这是所有路径前的通配
  ignored-services: "*" #用*来通配符,忽略从端口通过服务名来调用
  prefix: "/services" #这是所有路径的前缀

application-zuul-test.yml

server:
  port: 1030
spring:
  application:
    name: zuul-gateway
zuul:
  routes:
    myUser.serviceId: user-provider #这是调用满足条件的服务名,注意要小写
    myUser.path: /user/** #这是所有路径前的通配
  ignored-services: "*" #用*来通配符,忽略从端口通过服务名来调用
  prefix: "/services" #这是所有路径的前缀

让后就是搭建父级模块 springcloud-parent
pom

 
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.5.RELEASE
    

    
        UTF-8
        UTF-8
        1.8
        Finchley.SR1
    

    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

搭建二级父模块(方便入口类的配置) support-parent 不需要做任何配置,只需要在下面建立子模块
搭建eureka模块(还没有集群)
pom


        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

bootstrap.yml

spring:
  application:
    name: hrm-eureka
server:
  port: 1010
eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机配置

application.yml(下面的配置可以不用管,因为bootsrap.yml>application.yml)

spring:
  application:
    name: hrm-eureka

入口类

@SpringBootApplication
@EnableEurekaServer
public class HrmEureka1010 {
    public static void main(String[] args) {
        SpringApplication.run(HrmEureka1010.class, args);
    }
}

搭建configserver
pom



        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
        

        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
        
            org.springframework.cloud
            spring-cloud-config-server
        
    

application.xml

server:
  port: 1020
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1010/eureka
  instance:
    prefer-ip-address: true
spring:
  application:
    name: hrm-config-server
  cloud:
    config:
      server:
        git:
          uri: 我的码云上的configserver的地址
          username: 我的码云账号
          password: 密码
          search-paths: src/main/resources # 如果不是在根路径下面需要加搜索地址

入口类

@SpringBootApplication
@EnableEurekaClient
@EnableConfigServer
public class HrmConfigServer1020Application {
    public static void main(String[] args) {
        SpringApplication.run(HrmConfigServer1020Application.class, args);
    }

}

搭建zuul
pom


    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-test
        
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        

        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-zuul
        
        
        
            org.springframework.cloud
            spring-cloud-starter-config
        
    

bootsrtap.yml

spring:
  profiles:
    active: dev
  cloud:
    config:
      name: application-zuul #github上面名称
      profile: ${spring.profiles.active} #环境 java -jar -D xxx jar
      label: master #分支
      discovery: #configserver集群
        enabled: true #从eureka上面找配置服务
        service-id: hrm-config-server #指定服务名
      #uri: http://127.0.0.1:1299 #配置服务器 单机配置
eureka: #eureka不能放到远程配置中
  client:
    service-url:
      defaultZone: http://localhost:1010/eureka  #告诉服务提供者要把服务注册到哪儿 #单机环境
  instance:
    prefer-ip-address: true #显示客户端真实ip

application.yml(如果不想该配置,只需要将配置放入bootstrap.yml)

spring:
  application:
    name: zuul-gateway

入口类

@SpringBootApplication
@EnableZuulProxy
public class HrmZuulGetway1030Application {
    public static void main(String[] args) {
        SpringApplication.run(HrmZuulGetway1030Application.class, args);
    }
}

你可能感兴趣的:(springcloud项目的搭建01)