Spring Cloud Alibaba微服务实战
文章平均质量分 92
愤怒的苹果ext
本人擅长Ai、Fw、Fl、Br、Ae、Pr、Id、Ps等软件的安装与卸载,精通CSS、JavaScript、PHP、ASP、C、C++、C#、Java、Ruby、Perl、Lisp、python、Objective-C、ActionScript、Pascal等单词的拼写,熟悉Windows、Linux、Mac、Android、IOS、WP8等系统的开关机.
展开
-
《Spring Cloud Alibaba微服务实战》 之 Jenkins + Gitlab + Docker部署运行
目录前面已经分别使用过Docker、Jenkins + GitLab 了,本小节就将它们整合起来使用。在Java项目中直接使用Dockerfile构建镜像还是有些不方便,最直观的有一些路径问题要解决,好在可以使用Maven插件构建镜像。1.在服务消费者和2个服务提供者项目的pom.xml文件plugins标签下增加docker-maven-plugin插件,新增的代码如下所示。<!--maven构建docker镜像 --><plugin> <groupId>原创 2021-08-14 09:24:34 · 488 阅读 · 0 评论 -
《Spring Cloud Alibaba微服务实战》 之 Nacos + OpenResty + Keepalived高可用集群
目录上一小节说到此时Nacos集群服务只是基本的高可用,因为此时的短板在于OpenResty,它就只有一个服务,试想下,如果中途宕机(虽然这个概率很小),那就引发单点故障,请求连入口都进不来。至于如何解决呢?可能很多读者朋友都能想到了,既然Nacos能做集群,那OpenResty也可以呀!虽然OpenResty不能像Tomcat那样直接配置集群,但是可以联合Keepalived做成高可用的集群。加入Keepalived后的部署架构图如图4.24所示。图4.24 加入Keepalived后的部原创 2021-08-14 09:18:04 · 861 阅读 · 0 评论 -
《Spring Cloud Alibaba微服务实战》 之 Sentinel集群流控
目录1.向服务消费者的pom.xml文件dependencies标签内导入集群流控服务端、集群流控客户端和访问Nacos数据源的相关依赖。2.通过SPI完成配置源注册。定义com.alibaba.csp.sentinel.init.InitFunc的实现。3.服务提供者再增加一个节点。4.在Nacos控制台创建一条新的DataId数据,具体内容如图6.40所示。5.启动2个提供者服务和1个消费者服务,并请求一次它们各自的接口,使Sentinel出现对它们的操作界面。6.如果Nacos持久化规则配置成功,则会原创 2021-08-14 09:03:53 · 1088 阅读 · 13 评论 -
《Spring Cloud Alibaba微服务实战》 之 Spring Cloud Gateway整合Sentinel功能
目录路由维度自定义API维度自1.6.0版本开始,Sentinel提供了Spring Cloud Gateway的适配模块,能针对路由(route)和自定义API分组两个维度进行限流。路由维度路由维度指配置文件中的路由条目,资源名是对应的routeId,相比自定义API维度这是一个较为粗粒度的限流。下面就来实现网关路由维度的限流。1.首先导入Sentinel组件为Spring Cloud Gateway提供的适配模块依赖包,在项目pom.xml文件dependencies标签内添加如下原创 2021-08-14 08:54:20 · 404 阅读 · 0 评论 -
《Spring Cloud Alibaba微服务实战》 之 分布式事务解决方案概览
目录二阶段提交(2PC)三阶段提交(3PC)保证最终一致性在前面已经看到在分布式系统中,很容易产生分布式事务问题。事务指的就是一个操作单元,在一个操作单元中要使所有操作保持一致,简言之就是要么是全部成功,要么是全部失败。本来在单体应用、单个数据库的系统中,依靠像MySql这种数据库强大的事务机制是很容易保证一个操作单元中的操作都保持一致的。不过在分布式系统下,要完成一项业务功能,一般会调用多个服务并且还可能操作多个数据库,在这样的情况下要保证本次操作下的行为全部都成功或者全部失败,显得有些困难。幸原创 2021-08-14 08:48:52 · 182 阅读 · 0 评论 -
《Spring Cloud Alibaba微服务实战》 之 整合Seata解决分布式事务问题
目录1.往项目中添加关于Seata的依赖包。2.创建Seata高可用所需的database和表以及业务数据库所需要的undo_log表。3.整理高可用db模式参数配置并提交至Nacos配置中心。4.订单服务和配送服务分别加入Seata的配置。前面已经把Seata的服务端程序启动好了,下面开始把Seata整合到上面的案例中,使用AT事务模式解决实际的分布式事务问题。需要有以下几个步骤。1.往项目中添加关于Seata的依赖包。在订单服务和配送服务的pom.xml文件dependencies标签中分别原创 2021-08-14 08:39:10 · 324 阅读 · 0 评论 -
《Spring Cloud Alibaba微服务实战》 之 为什么使用微服务
目录单体架构 VS 微服务SOA VS 微服务一件新事物的产生,必有有一定的道理,有它自己的生存土壤,或者说能为社会解决一些“痛点”;下面可以从单体架构、SOA各自与微服务的对比和微服务的优缺点慢慢展开。单体架构 VS 微服务单体架构在业务初期,功能足够简单,网站流量不大的情况下的确是个低成本又高效的方案。不过随着时间的推移,业务的激增,网站流量增大,单体架构程序必然会暴露出很多问题;比如:(1)代码复杂度高:因为所有的代码都糅合在一起,依赖紧密,可能修改一处会带来“牵一发而动全身的风险”;这原创 2021-08-14 08:25:08 · 123 阅读 · 0 评论