微服务架构案例(05):SpringCloud 基础组件应用…
2019-11-06 16:02:28来源:博客园 阅读 ()
微服务架构案例(05):SpringCloud 基础组件应用设计
本文源码: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
原文链接:https://www.cnblogs.com/cicada-smile/p/11808320.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- 老板让你抗住千万级流量,如何做架构设计? 2020-06-11
- 聊聊微服务架构及分布式事务解决方案! 2020-06-10
- java环境教程:Tomcat下载,安装,设置为Windows服务,启动 2020-06-09
- Dubbo+Zookeeper集群案例 2020-06-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash