springCloud各组件配置

1.springCloud各组件配置

springcloud中有很多组件,第一步先引入springcloud的版本控制依赖,之后再进行各个组件的配置与测试,springcloud的版本为:Finchley.SR2。
注意:由于springcloud构建于springboot之上,因此使用springcloud的组件时需要结合springboot的版本,springboot版本与springcloud的版本对应关系如下:
springCloud各组件配置_第1张图片
上图中第一列为springcloud的版本,第二列为springboot的版本,请根据自己的springboot版本进行搭建。
由于版本在不断更新,因此请前往查看最新版本对应详情,官网传送门:https://spring.io/projects/spring-cloud,进入后查看页面最下方内容就可看到。

1.1 父工程对子工程的版本约束

在父pom中引入springCloud的版本约束依赖,如下:

 
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Finchley.SR2
                pom
                import
            
        
    

这样的目的在于在引入springCloud的各组件的时候,将会有统一版本的约束,无需我们自己进行版本的依赖,同时要注意springCloud版本是在springboot之上构建的,引入springCloud时需考虑版本的依赖关系。

1.2配置eureka服务端

创建新的eureka的moudle,在pom中引入eureka服务端依赖,如下所示:

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

编写application.yml,配置eureka服务端,如下所示:

eureka:
 client:
   registerWithEureka: false #是否将自己注册到Eureka服务中,本身就是所有无需注册
   fetchRegistry: false #是否从Eureka中获取注册信息
   serviceUrl: #Eureka客户端与Eureka服务端进行交互的地址
         defaultZone: http://127.0.0.1:${server.port}/eureka/

启动类加注解:@EnableEurekaServer

1.3配置eureka客户端

子模块引入依赖:

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

启动类加注解:

@EnableEurekaClient
@EnableDiscoveryClient

aplication.yml添加如下信息,用户服务注册与发现:

spring:
  application:
    name: roleDemo-userRolePermission
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6666/eureka

1.4feign的远程服务调用

在要调用的模块中添加依赖:

  
        org.springframework.cloud
        spring-cloud-starter-openfeign
    

启动类添加服务调用注解:

@SpringBootApplication
@EnableDiscoveryClient
@EnableEurekaClient
@EnableFeignClients
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class);
    }
}

application配置:

#eureka注册
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6666/eureka
spring:
  #配置微服务名称,用户服务注册与发现
  application:
    name: roleDemo-feign
server:
  port: 8081

编写要调用的接口:

@FeignClient("roleDemo-userRolePermission")
public interface UserClient {
    @RequestMapping(value = "user/findAll", method = RequestMethod.GET)
     List findAll();
}

编写要调用该接口的类:

@RestController
    @RequestMapping("/feign")
    public class FeignController {
        @Autowired
        private UserClient userClient;
        @RequestMapping("/feignUserFindAll")
        public List feignUserFindAll(){
            return userClient.findAll();
        }
    
    }

测试访问编写的调用类,返回调用的接口的提供的数据。

1.5feign自带的hystrix熔断器

在要调用的模块中的application中开启熔断器:

#开启熔断器
feign:
  hystrix:
    enabled: true

创建写好的调用接口类的实现类

在写好的调用接口上添加,fallback = UserClientImpl.class ,意思是当调用失败时执行熔断操作,走该实现类的方法。

1.6网关

这里的常见网管有两种spring自己的gateway,还有Netflix的开源网关,微服务网关将解决一下问题;

# 客户端会多次请求不同微服务,增加客户端的复杂性
# 存在跨域请求,在一定场景下处理相对复杂
# 认证复杂,每一个服务都需要独立认证
# 难以重构,随着项目的迭代,可能需要重新划分微服务,如果客户端直接和微服务通
信,那么重构会难以实施
# 某些微服务可能使用了其他协议,直接访问有一定困难

1.7配置中心服务端

添加依赖

       
            org.springframework.cloud
            spring-cloud-config-server
        

配置文件

#eureka注册
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:6666/eureka
spring:
  #配置微服务名称,用户服务注册与发现
  application:
    name: roleDemo_config
  #配置中心连接码云
  cloud:
    config:
      server:
        git:
          uri: 自己配置中心的地址,可以为码云,github
server:
  port: 12000
#开启熔断器
feign:
  hystrix:
    enabled: true

启动类添加注解

	@EnableConfigServer //开启配置服务

启动成功,http://localhost:12000/文件名称,即可查看。

1.8配置中心客户端

添加依赖

 
        org.springframework.cloud
        spring-cloud-config-client
    
  或者
   
        org.springframework.cloud
        spring-cloud-starter-config
    

修改配置文件application.yml为bootstrap.yml,修改内容为:

spring:
  cloud:
    config:
      name: base
      profile: dev
      label: master
      uri: http://127.0.0.1:12000

将application.yml内容复制粘贴到码云仓库

重新启动,即可正常访问。

1.9消息总线

1.9.1配置中心服务端

添加依赖

       
            org.springframework.cloud
            spring‐cloud‐bus
        
        
            org.springframework.cloud
            spring‐cloud‐stream‐binder‐rabbit
        

修改application.yml文件,添加如下内容:

rabbitmq:
    host: 192.168.184.135
management: #暴露触发消息总线的地址
  endpoints:
    web:
      exposure:
        include: bus‐refresh

1.9.2配置客户端

添加依赖

    
  org.springframework.cloud        
  spring‐cloud‐bus        
      
      
  org.springframework.cloud        
  spring‐cloud‐stream‐binder‐rabbit        
      
      
  org.springframework.boot        
  spring‐boot‐starter‐actuator        
   

码云配置文件添加内容

 rabbitmq:
    host: 192.168.184.135

postman测试 Url: http://127.0.0.1:12000/actuator/bus-refresh Method:
post

你可能感兴趣的:(SpringCloud组件配置)