微服务架构实战
文章平均质量分 92
全面记录微服务的技术实践细节(主要技术点涉及到:SpringBoot、Spring Cloud Alibaba、docker、k8s)
gin_91
JAVA工程师
展开
-
微服务实战(二十四)分布式日志使用
1.简介ELK是Elasticsearch、Logstash、Kibana的简称Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。 Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 Rabb.原创 2021-10-23 22:53:30 · 824 阅读 · 1 评论 -
微服务实战(二十三)一个微服务架构小项目源码
jfcloud源码:https://gitee.com/zhaojunfu2014/jfcloud介绍基于springcloud的demo实践技术栈:SpringBootMybatisPlusSpringCloudNacosSentinelSpringCloud GatewaySeataSkywalkingSwaggerLombok本项目功能:微服务token校验商品展示服务库存扣减服务余额扣减服务订单服务(下单,扣余额,扣库存 微服务链路调用)分布式事原创 2020-12-27 23:59:04 · 2501 阅读 · 1 评论 -
微服务实战(二十二)devops 实践:jenkins+docker 自动化源码拉取,编译,打包,生成docker镜像,部署容器
什么是devops安装jenkinsjenkins实践devops安装插件:maven、ssh publish创建任务配置git源码库配置maven构建命令配置构建完成后的shell操作完成一次自动化的构建过程原创 2020-12-23 23:22:45 · 2147 阅读 · 0 评论 -
微服务实战(二十一) 从一个秒杀场景的小demo开始
介绍之前的章节主要是把微服务架构的概念,常用组件逐个实际测验。接下来就是开始真正项目实战,整体计划是这样的:1、使用微服务架构实现一个秒杀下单的应用2、集成注册中心、链路追踪、限流断路、聚合API文档等组件,整合到统一的界面,实现单点登录3、模拟压力测试,针对互联网高并发场景进行实际测验和性能优化4、容器化部署,在服务器上进行真实部署(规模在10台以上),实践CI / CD 以及真实高并发目前DEMO是利用碎片时间开发,等到完整后再开放源码应用截图业务部分拆分为4个.原创 2020-09-20 00:28:38 · 712 阅读 · 2 评论 -
微服务实战(二十) 微服务RPC feign如何进行实体对象传递与接收
关于微服务RPC远程调用,之前已经简单介绍过feign以及openfeign,并且就参数传递与接收也进行过简单讲解。Nacos+Feign简单使用:https://blog.csdn.net/u011177064/article/details/104309921本文继续介绍feign采用实体对象作为请求响应参数具体怎么使用。以下是几种常见的用法:1、请求参数: 单独字段,使用@RequestParam注解,并且里面的 value 必须和 服务生产者的参数名一致响应参数: 实..原创 2020-09-13 21:05:11 · 3948 阅读 · 0 评论 -
微服务实战(十九)Docker篇 从代码工程发布到Docker镜像的详细过程
本篇以 jdk8+tomcat7+springmvc 的项目为例,讲解从项目代码,发布成docker镜像的过程。(springmvc是因为本人最近正好要把公司的旧项目docker化)主要流程编写Dockerfile脚本 并 验证生成的镜像是否正确 (jdk+tomcat+项目war包) 集成Maven-Docker插件 (将本地工程结合Dockerfile脚本 打包镜像至Docker仓库) 完善:打包命令区分环境(生产/测试),直接用maven命令制作不同环境的包 测试拉取镜像并...原创 2020-07-26 21:43:19 · 1680 阅读 · 1 评论 -
微服务实战(十八)通过AOP的方式自动完成微服务token验证
本章主要内容在上一篇中,我们介绍了微服务架构中,token的多种实现方式。https://blog.csdn.net/u011177064/article/details/104822700本篇我们继续探究微服务架构中token的验证环节,在token微服务搭建好之后,我们将它接入 注册中心 (nacos)。这样其他微服务就可以通过 注册中心 结合 RPC(远程过程调用)来轻松调...原创 2020-03-29 14:45:38 · 4073 阅读 · 0 评论 -
微服务实战(十七)微服务Token的实现: MD5简易Token、Jwt、Jwt结合AES加密
关于Token (令牌)说起令牌,仿佛回到了封建时代,一掏出令牌,其他人都知道你是什么身份了。而在web系统中,前后端的业务交互也往往需要附带身份数据,先姑且把这个数据统称为Token (令牌) 。面向有状态HTTP请求:在前后端不分离的模式下,这个Token实际上是 jsessionId,存储在前端的cookies中,后端根据请求者cookies里的jsesssionId获取到服务...原创 2020-03-13 00:38:40 · 7420 阅读 · 0 评论 -
微服务实战(十六)微服务到底该如何拆分、设计
这里我大概分为这么几个流派:保守派:大多场景是本身已经存在了一个单体巨无霸系统,考虑的是如何拆分的问题,拆少了吧,达不到预期拆分效果,还增加了整体复杂度,不如不拆;拆太碎了吧,工作量忒大了,相当于重做。所以折中一下,大概按照系统的粒度,把一个大型系统拆分成为数不多的几个中型系统。比如原项目是一个商城系统,包括商城前台,订单管理,商品管理等后台功能。拆分后: 商城前台、个人中心、商城...原创 2020-03-07 20:01:20 · 3184 阅读 · 0 评论 -
微服务实战(十五)看完不信你还不懂单点登录:SSO,CAS,OAuth,Jwt,Spring Security,Shiro
单点登录扫盲前面铺垫了那么多,我们马上要进入到真正的微服务实战当中了,先上一个前菜:单点登录,这是接下来的微服务架构中的家常便饭,系统被你拆得那么微了,这么多系统,难道每个系统我要记一个账号吗? 在没有单点登录的模式下,可就是这么做的哦!每个系统的用户都分的倍儿清,井水不犯河水,所以,想要在大量系统集成的环境下,需要单点登录的机制来优化我们系统的登录体验。单点登录(SSO)单点登录,...原创 2020-03-04 16:06:20 · 4817 阅读 · 5 评论 -
微服务实战(十四)微服务分布式事务之集成 Nacos + Feign + Seata_AT
本章主要内容我们在上一章已经测试了Seata的AT模式的分布式事务,不过每个SpringBoot中都是直接用IP+端口的模式去调用其他服务的,现在我们将上一章中的4个微服务注册到Nacos,并且通过Feign来实现远程调用。接入Nacos和Feign首先是在父类工程“springboot-mybatis”的 pom.xml 中引入 springcloud的依赖。定义新的版本号...原创 2020-02-28 11:44:34 · 3612 阅读 · 1 评论 -
微服务实战(十三)初探微服务分布式事务 - Seata AT
本章主要内容本章我们主要了解一下分布式事务的概念、目前市面上的解决方案、以及在微服务中如何实现分布式事务。什么是事务,什么是ACID首先,提到分布式事务,咱们得明白什么是事务(Transaction),百科的链接放这里咯,事务应该具有4个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。这四个属性通常称为...原创 2020-02-26 19:32:55 · 1226 阅读 · 0 评论 -
微服务实战(十二)微服务的调用链路追踪 - Skywalking
本章主要内容本章主要介绍如何去追踪各微服务的调用过程。在之前章节我们讲解了用Feign在微服务之间进行相互调用,那么在整个微服务体系运行时,我们怎么宏观地监测和跟踪这些微服务的调用过程呢?接下来我们就引入:微服务链路追踪技术链路追踪技术汇总现在比较流行的链路追踪框架主要有Zipkin,Pinpoint,SkyWalking,CAT主流技术对比:https://blog.csdn...原创 2020-02-22 20:43:02 · 7652 阅读 · 3 评论 -
微服务实战(十一)微服务的熔断降级 - Sentinel
本章主要内容本章我们主要讲述如何使用Sentinel的熔断降级能力,包括熔断策略的设置、熔断后处理逻辑、以及在Sentinel控制台中观测熔断效果。什么是熔断降级首先我们需要认识到微服务架构的一大特点就是服务被拆分地非常细,所以一个可供前端使用的、完整的接口,调用经常会需要涉及到多个微服务,比如说一个获取订单详情的接口,开放给前端的就是单单一个接口,但是这个接口里面可能调用了订单数据、...原创 2020-02-18 00:36:21 · 1481 阅读 · 0 评论 -
微服务实战(十)各微服务之间的相互调用 Feign + Nacos
本章主要内容之前我们介绍了通过服务网关来调用注册中心的微服务,但是各微服务之间怎样优雅简洁的相互调用呢?下面我们又引入一个新的组件:Feignhttps://github.com/OpenFeign/feignFeign是什么?(使用上注解是@Feign)Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方...原创 2020-02-14 18:26:36 · 3944 阅读 · 1 评论 -
微服务实战(九)接入Sentinel 控制台可视化观测流控效果
本章主要内容1、部署Sentinel控制台2、控制台和SpringCloud GateWay 的连接3、在控制台中查看流控效果Sentinel控制台的启动首先去Sentinel的官网下载最新的控制台Jar包https://github.com/alibaba/Sentinel/releases使用命令启动,其中-Dserver.port=8080用于指定 Senti...原创 2020-02-13 19:36:33 · 1793 阅读 · 0 评论 -
微服务实战(八)集成Sentinel网关服务限流功能 SpringCloud GateWay + Sentinel + Nacos
本章主要内容在SpringCloud GateWay服务网关中集成Sentinel来实现服务的限流功能。首先,我们谈一下什么是服务限流。在如今互联网的大环境下,我们后端的接口调用频次(QPS/TPS)动辄上百万,甚至达到千万级别,这对于服务端的承受能力是一个巨大的考验。那么限流在这个问题中起到什么作用呢?其实就是对于流量进行有策略的管理和限制。 比如说在一个系统中,有订单查询服务,商品...原创 2020-02-12 11:15:37 · 8457 阅读 · 1 评论 -
微服务实战(七)实现服务负载均衡 - SpringCloud GateWay + Nacos + Robin
本章主要讲述内容在上一章节中讲述了集成 配置中心+注册中心+服务网关 的初步使用。本章节主要记录 在服务网关中同一个服务下多个节点的负载均衡问题。由于Nacos里默认集成了 Ribon 负载均衡组件,实际上经过上一章节的操作,我们已经搭建完了负载均衡的功能,所以我们主要是验证一下实际的效果,和一些使用方法以及源码分析。具体搭建可参考:微服务实战(六)集成服务网关 SpringClo...原创 2020-02-08 16:31:56 · 10783 阅读 · 4 评论 -
微服务实战(六)集成服务网关 SpringCloud GateWay (配置中心&注册中心用Nacos)
本章主要讲述服务网关、配置中心、注册中心 结合使用结合使用微服务架构的 服务网关、配置中心、注册中心。回顾一下:之前分别讲述了Nacos的配置中心、注册中心单独使用,记得在注册中心一章中我们是在消费者微服务中先进行了接口地址的寻址,然后再调用的。这次加上服务网关,就不用这么麻烦啦!只要将服务网关也注册到服务中心,那么服务网关就会自动代理服务中心的服务,相当于Nginx的作用。介绍一下这...原创 2020-02-04 23:56:06 · 4026 阅读 · 6 评论 -
微服务实战(五) Nacos架构源码分析---配置中心
本章节主要内容:Nacos的架构介绍、配置中心源码初步分析nacos官网https://nacos.io/nacos源码https://github.com/alibaba/Nacos我们已经在前面章节启动了Nacos,并且作为了 服务注册发现中心 和 配置中心,作为微服务开发者,其实很有必要去了解下微服务这些核心组件的架构、实现,虽然在实际开发中这些组件都是拿来即用的,但是...原创 2020-02-01 16:36:21 · 6795 阅读 · 0 评论 -
微服务实战(四) 配置中心的使用 - Nacos
本章主要讲述如何使用微服务架构中的配置中心在微服务架构中,每个微服务应用都有自己的应用外部配置,在以前大多是使用配置文件或者数据库的形式和应用一起部署,而在SpringCloud体系下,需要有一个配置中心,专门管理各个微应用的配置信息,并且配置发生更新后,所有微应用都能马上读取到最新的配置。解决了每个应用都要去手动维护配置的不便。上一章节中,使用了Nacos作为服务注册发现中心,其实Nac...原创 2020-01-30 22:02:27 · 2198 阅读 · 1 评论 -
微服务实战(三)集成服务注册发现中心 - Nacos
本章主要讲述如何使用服务注册发现中心SpringCloud默认的注册中心eurka 已经停止更新,通过比较,发现阿里的SpringCloud Alibaba 是一个比较不错的选择,其中它的注册中心使用的是 Nacos。SpringCloud Alibaba的git:https://gitee.com/mirrors/Spring-Cloud-Alibabahttps://gi...原创 2020-01-29 20:04:01 · 5742 阅读 · 1 评论 -
微服务实战(二) 搭建第一个SpringBoot小应用
1、搭建第一个springboot微服务创建一个maven工程,工程结构如下:pom.xml内容如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://mav...原创 2020-01-28 20:44:28 · 1269 阅读 · 2 评论 -
微服务实战(一) 如何理解SpringBoot 、SpringCloud、Docker、K8s
本篇主要阐述微服务的个人理解现如今,随着互联网的发展,对于系统性能,架构均有了更高的要求。以前传统的ssh单体应用的模式已显力不从心,而微服务架构应运而生,并且形成了越来越成熟的方案。传统的单体应用模式(比如ssh时代的惯用架构)优点是开发和部署都非常方便,只需要考虑到单体应用如何实现业务逻辑,对于性能的扩展只需要复制部署到多个tomcat形成集群,用Nginx进行负载均衡,即可完成一...原创 2020-01-28 16:25:24 · 13829 阅读 · 5 评论