本文源码:GitHub·点这里 || GitEE·点这里

更新进度(共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、服务端配置

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、客户端配置

eureka:
instance:
prefer-ip-address: true
client:
service-url:
defaultZone: http://127.0.0.1:5001/eureka/

三、Feign组件

1、Feign接口

@FeignClient("MOPSZ-SOFT-ROCKET")
public interface UserSearchFeign {
@GetMapping("/mq/user/search/sendBookSearch")
void sendBookSearch (@RequestParam("msgContent") String msgContent) ;
}

2、Feign接口实现

@RestController
public class UserSearchController implements UserSearchFeign {
@Override
public void sendBookSearch(String msgContent) {
}
}

3、接口配置

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

feign:
hystrix:
enabled: true
client:
config:
feignName:
connectTimeout: 60000
readTimeout: 60000

4、Feign接口调用

@Resource
private UserSearchFeign userSearchFeign ;
userSearchFeign.sendBookSearch("");

四、服务网关

1、网关组件配置

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、项目部署

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

五、源代码地址

GitHub·地址
https://github.com/cicadasmile/husky-spring-cloud
GitEE·地址
https://gitee.com/cicadasmile/husky-spring-cloud

最新文章

  1. 在CentOS下搭建自己的Git服务器
  2. Logistic回归的使用
  3. [转]Android开发:Parallax效果的ScrollerView,改编自ParallaxListView
  4. Charles移动端抓包工具使用
  5. 分解成3NF的保持函数依赖的分解算法:
  6. POJ 3169 Layout (差分约束系统)
  7. BZOJ 1208 宠物收养所
  8. css expression explaination
  9. 如何搭建Visual Studio的内核编程开发环境
  10. markdownpad2注册及样式调整
  11. Java报文或者同步的数据有个别乱码情况的处理.
  12. PHP知识大全
  13. FastJson简单使用
  14. DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
  15. react native获取组件高度,宽 度等
  16. Is there a TRY CATCH command in Bash
  17. Selenium 3----控制浏览器操作
  18. C#反射机制详解
  19. [z]一步步教你如何在 Visual Studio 2013 上使用 Github
  20. PHOTOSHOP中3D下拉菜单为灰色如何设置

热门文章

  1. Golang 接口与反射知识要点
  2. ES 32 - Elasticsearch 数据建模的探索与实践
  3. 阿里云VS腾讯云 谁才是中国未来的云计算之王?
  4. python与数据存储
  5. 在Mac上搭建带ssl协议和域名指向的Apache服务器
  6. CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算?
  7. MyBatis详解 一篇就够啦
  8. GDB使用总结
  9. 『嗨威说』算法设计与分析 - PTA 数字三角形 / 最大子段和 / 编辑距离问题(第三章上机实践报告)
  10. Python 爬虫 爬取 煎蛋网 图片