前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构案例(05):SpringCloud 基础组件应用设计

微服务架构案例(05):SpringCloud 基础组件应用设计

作者头像
知了一笑
发布2019-11-08 15:55:54
4860
发布2019-11-08 15:55:54
举报
文章被收录于专栏:知了一笑知了一笑

更新进度(共6节):

01:项目技术选型简介,架构图解说明 02:业务架构设计,系统分层管理 03:数据库选型,业务数据设计规划 04:中间件集成,公共服务管理 05:SpringCloud 基础组件应用设计

一、组件应用规划

1、注册中心

Eureka 组件是 Netflix 开发的,用于定位服务,基于RESTFul方式实现服务注册与发现。包括一个EurekaServer服务端(通常是指微服务中的注册中心) 和EurekaClient客户端(通常指微服务中的业务服务)。Eureka支持高可用的配置,当注册中心发现有故障的服务时,Eureka就会转入自动保护模式,故障时不影响服务的发现和注册,当故障恢复正常时,注册中心的服务会进行状态同步,继续提供服务。

2、服务调用

Feign 组件是一个声明式的 WebService客户端。在Eureka注册的服务中,可以使用Feign接口的形式来进行相关服务间的请求调用,并提供超时回退,快速熔断的相关特性。Feign是一个便利的RestFul框架,简化调用,通过ribbon在注册服务器中找到服务实例,然后对请求进行服务分配,实现了负载均衡的效果,默认采用轮询算法。

3、服务网关

GateWay网关,可以让所有客户端请求先通过微服务网关,跟网关进行交互,由网关进行各个微服务的请求转发,客户端(前端)对多服务架构无感知。降低客户端与微服务之间的交互耦合度;便于监控,可在网关中监控数据;在网关层统一处理认证,规划切面编程;也就是说与业务本身功能无关的公共逻辑可以在网关层统一封装实现,类似设计模式中的门面模式。

二、注册中心

1、服务端配置

代码语言:javascript
复制
eureka:
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 15000
  instance:
    prefer-ip-address: true
  client:
      register-with-eureka: false
      fetch-registry: false
      service-url:
        defaultZone: http://127.0.0.1:5001/eureka/

2、客户端配置

代码语言:javascript
复制
eureka:
  instance:
    prefer-ip-address: true
  client:
      service-url:
        defaultZone: http://127.0.0.1:5001/eureka/

三、Feign组件

1、Feign接口

代码语言:javascript
复制
@FeignClient("MOPSZ-SOFT-ROCKET")
public interface UserSearchFeign {
    @GetMapping("/mq/user/search/sendBookSearch")
    void sendBookSearch (@RequestParam("msgContent") String msgContent) ;
}

2、Feign接口实现

代码语言:javascript
复制
@RestController
public class UserSearchController implements UserSearchFeign {
    @Override
    public void sendBookSearch(String msgContent) {
    }
}

3、接口配置

该配置文件在实现Feign接口的项目中配置就好,也可针对特定方法配置。

代码语言:javascript
复制
feign:
  hystrix:
    enabled: true
  client:
    config:
      feignName:
        connectTimeout: 60000
        readTimeout: 60000

4、Feign接口调用

代码语言:javascript
复制
@Resource
private UserSearchFeign userSearchFeign ;
userSearchFeign.sendBookSearch("");

四、服务网关

1、网关组件配置

代码语言:javascript
复制
zuul:
  # 前缀,可以用来做版本控制
  prefix: /v1
  # 禁用默认路由,执行配置的路由
  ignored-services: "*"
  routes:
    # 配置 Token 服务
    pro6601:
      serviceId: mopsz-basis-token
      path: /api/6601/**
    # 配置 UserClient 服务
    pro6102:
      serviceId: mopsz-user-client
      path: /api/6102/**
  • 配置FilterConfig进行用户Token认证拦截;
  • 配置FallBackConfig进行服务降级响应管理;

2、项目部署

在项目上线后,对外暴露一个网关服务端口,其他服务端口不对外暴露,所有的请求都必须通过网关拦截或者转发,这就是微服务提供服务的一种常见方式。

五、源代码地址

代码语言:javascript
复制
GitHub·地址
https://github.com/cicadasmile/husky-spring-cloud
GitEE·地址
https://gitee.com/cicadasmile/husky-spring-cloud
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知了一笑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、组件应用规划
    • 1、注册中心
      • 2、服务调用
        • 3、服务网关
        • 二、注册中心
          • 1、服务端配置
            • 2、客户端配置
            • 三、Feign组件
              • 1、Feign接口
                • 2、Feign接口实现
                  • 3、接口配置
                    • 4、Feign接口调用
                    • 四、服务网关
                      • 1、网关组件配置
                        • 2、项目部署
                        • 五、源代码地址
                        相关产品与服务
                        微服务引擎 TSE
                        微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档