- 浏览: 13985 次
- 性别:
- 来自: 广州
最新评论
文章列表
本篇我们根据架构图进行代码的构建。根据微服务化设计思想,结合spring cloud一些优秀的项目,如服务发现、治理、配置化管理、路由负载、安全控制等优秀解决方案,使用Maven技术将框架进行模块化、服务化、原子化封装并构建,也为后期的灰度发布、持续集成提前做好准备工作。
另外在搭建环境之前,大家需要熟练掌握maven的使用及相关问题的处理(这里不再重复介绍)。
Spring Cloud云架构使用maven来构建,使用maven不仅仅是jar包的管控,重要的是要抓住maven的一个核心作用,那就是将整个项目按照模块化的方式进行划分,业务与业务之间解耦,然后将模块化的业务再进行服务化或者组件 ...
关于使用的技术架构的技术点我这边不做重复介绍,如果有兴趣的朋友可以去看一下我之前写过的《构建spring cloud架构》系列文章,因为我一直在强调鸿鹄云商b2b2c o2o平台,所以我们重点讲解的是鸿鹄云商平台的相关技能知识, ...
spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢?
下面我针对于spring cloud微服务分布式云架构做了以下技术总结,希望可以帮助到大家:
Vi ...
我们对当前清单中的每一个功能进行剖析,会将产品设计、UI设计、功能设计详细给大家讲解,也希望能够帮助更多的朋友了解电子商务平台功能。抛开电子商务的登陆、注册基础功能,我们直入主题。今天讲解平台管理中的通用设置功能。
为了在程序启动或者初始化的时候,对系统的配置和通用设置项进行统一加载,所以我们将通用的设置信息全部存储到数据库中,在使用的时候从数据库中读取并存储到缓存(因为配置项长期不会改变,如果改变,我们可以动态刷新缓存)。
鸿鹄云商中的通用配置包括:基础设置、客服设置、第三方登录设置、前台登录设置、平台登录设置、APP相关下载设置等。
1. 系统配置表设计
...
1. 什么是 okhttp ?
okhttp 是由 square 公司开源的一个 http 客户端。在 Java 平台上,Java 标准库提供了 HttpURLConnection 类来支持 HTTP 通讯。不过 HttpURLConnection 本身的 API 不够友好,所提供的功能也有限。大部分 Java 程序都选择使用 Apac ...
这一节我们介绍 Spring Cloud 组件的容器化,主要包括 eureka-server 、 gateway-server 和 provider-server 。(了解源码可+WX: haiwabbc)
1. Docker 化配置
这里我们根据 dockerfile-maven-plugin 这个 maven 插件来构建,可以用来构建 docker 镜像的 maven 插件有很多,其中使用比较多的包括 docker-maven-plugin ,这两个插件是同一个人在 Github 上开源的, docker-maven-plugin 被作者标记为不活跃的,并且建议大家使用 docker ...
1. 容器化
Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。
2. 基础镜像选择(了解源码可+WX: haiwabbc)
在操作系统的选择上,可选择传统的 CentOS 、 Ubuntu 或者更为轻量化的 Alpine 。比如 CentOS 或者 Ubuntu 的镜像都在 100MB 以上,压缩后 ...
Zuul作为一个老牌的开源服务网关组件,动态路由对它来讲是一个十分必要的功能,毕竟我们不能随便重启服务网关,服务网关是一个微服务系统的大门,今天我们介绍的Zuul动态路由的解决方案来自于携程开源的配置中心Apollo。(了解源码可+WX: haiwabbc)
Apollo概述
Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。
Apollo支持4个维度管理Key-Value格式的配置:
application (应用)
enviro ...
1. Pinpoint概述
Pinpoint是一个由韩国人编写的为大型分布式系统服务的链路跟踪平台,并提供大量链路跟踪数据分析汇总解决方案。自2012年7月开始开发,与2015年1月做为一个开源项目推出。
2. Pinpoint主要特性
分布式事务跟踪,跟踪跨分布式应用的消息。(了解源码可+求求: 1791743380)
自动检测应用拓扑,帮助你搞清楚应用的架构。
水平扩展以便支持大规模服务器集群。
提供代码级别的可见性以便轻松定位失败点和瓶颈。
使用字节码增强技术,添加新功能而无需修改代码。
3. Pinpoint优势
无入侵:采用字节码增强技术,新增功能无需修改代码 ...
1. Skywalking概述
Skywalking与2016年11月2日由国人吴晟在Github上传v1.0版本,用于提供分布式链路追踪功能,从5.x开始,成为一个功能较为完善的APM(Application Performance Management)系统,2019年4月17日从Apache孵化器毕业,正式成为Apache顶级项目。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。官方对自己介绍是专为微服务,云原生和基于容器(Docker,Kubernetes,Mesos)架构而设计。
2. Skywalking主要功能
服务,服务实例,端点指标分析
根本原因分 ...
熔断
限流
重试
1. 限速路由器
限速在高并发场景中比较常用的手段之一,可以有效的保障服务的整体稳定性,Spring Cloud Gateway 提供了基于 Redis 的限流方案。所以我们首先需要添加对应的依赖包spring-boot-starter-data-redis-reactive(了解源码可+求求: 1791743380)
Java代码
<dependency>
上一篇文章服务网关 Spring Cloud GateWay 初级篇,介绍了 Spring Cloud Gateway 的相关术语、技术原理,以及如何快速使用 Spring Cloud Gateway。这篇文章我们继续学习 Spring Cloud Gateway 的高级使用方式,比如如何配置服务中心来使用,如何使用熔断、限流等高级功能。(了解源码可+求求: 1791743380)
1. 注册中心
1.1 准备服务和注册中心
上篇主要讲解了网关代理单个服务的使用语法,在实际的工作中,服务的相互调用都是依赖于服务中心提供的入口来使用,服务中心往往注册了很多服务,如果每个服 ...
1. Zuul和Gateway的恩怨情仇
1.1 背景
Zuul是Netflix开源的一个项目,Spring只是将Zuul集成在了Spring Cloud中。而Spring Cloud Gateway是Spring Cloud的一个子项目。(了解源码可+求求: 1791743380)
还有一个版本的说法是Zuul2的连续跳票和Zuul1的性能并不是很理想,从而催生了Spring Cloud Gateway。
1.2 性能比较
网上很多地方都说Zuul是阻塞的,Gateway是非阻塞的,这么说是不严谨的,准确的讲Zuul1.x是阻塞的,而在2.x的版本中,Zuul也是基于Netty, ...
在分布式服务架构中,需要对分布式服务进行治理——在分布式服务协同向用户提供服务时,每个请求都被哪些服务处理?在遇到问题时,在调用哪个服务上发生了问题?在分析性能时,调用各个服务都花了多长时间?哪些调用可以并行执行?…… 为此,分布式服务平台就需要提供这样一种基础服务——可以记录每个请求的调用链;调用链上调用每个服务的时间;各个服务之间的拓扑关系…… 我们把这种行为称为“分布式服务跟踪”。(了解源码可+求求: 1791743380)
1. 背景
现今业界分布式服务跟踪的理论基础主要来自于 Google 的一篇论文《Dapper, a Large-Scale Distri ...
1. Zuul的核心
Zuul的核心是Filter,用来实现对外服务的控制。分别是“PRE”、“ROUTING”、“POST”、“ERROR”,整个生命周期可以用下图来表示。(了解源码可+求求: 1791743380)
Zuul大部分功能都是通过过滤器来实现 ...