202012-07 Springcloud seata分布式事务实现代码解析 Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。本篇不涉及其原理,只用代码构建项目简单试用一下其回滚的机制。大致上seata分为TC,TM,RM三大构建成整体。它们之间的包含关系如下。即一(xid主键编码,记录信息)带三(TC,TM,RM)下面之间构建项目进行测试。1.下载seata并解压,然后改动配置文件。http://seata.io/zh-cn/blog/download.html官网下载。解压之后到conf中修改file和registry文... 继续阅读 >
202012-07 Springcloud Nacos基本操作代码实例 Nacos是什么和Eureka,zookeeper,consul相同,Nacos也是一个注册中心组件咯,当然是,不过它不仅仅是注册中心。Nacos也是一个配置中心,比如SpringCloud中的Config,将配置文件版本化管理。那么Nacos到底是什么呢,总结为官网一句话就是:Nacos致力于帮助您发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。下面仅介绍nacos的配置,不涉及深层的原理。1.安... 继续阅读 >
202012-07 Springcloud GateWay网关配置过程图解 一般为了不暴露自己的端口信息等,会选择架构一个网关在前面进行阻挡,起到保护的作用。附上一张工作示列图。1.配置网关9527gateway作为网关需要和其他的应用一样需要注册进eureka中进行管理,先创建应用gateway9527pom文件,关键是gateway依赖<dependencies><dependency><groupId>com.bai</groupId><artifactId>cloud-api-common</artifactId><version>${project.version}</version></dependency>... 继续阅读 >
202012-07 Springcloud hystrix服务熔断和dashboard如何实现 服务在经过一定负荷之后,如果达到一定上限之后会中断进行报错,而服务调用的方法也会报错等等,一旦整体服务停下,别的客户端再来访问就会无法调用。对此需要进行另外一种服务熔断模式。不同于现实中的熔断保险丝,服务熔断是在系统服务达到一定错误之后,自动熔断降级,采取备用方法,但是在一定时间后客户端再次调用成功后,一定时间内成功率上去,系统的熔断机制会慢慢的关闭,恢复到正常请求的状态。本篇接上一章直接改动。1.... 继续阅读 >
202012-07 Springcloud Eureka配置及集群代码实例 springcloud微服务包含的技术种类众多,eureka作为其注册中心,一直处于主流,但在今年已经处于永久停更状态,但其优秀的能力还是值得学习。整体价格采用聚合工程,后续也存在于聚合工程内。1.首先配置pom工程的依赖<dependencies><!--eureka-server--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>... 继续阅读 >
202012-07 Springcloud sentinel安装和使用方法解析 作为阿里版的hystrix,sentinel简化了配置方式,提供了可视化界面网站和便捷的配置方式,更加贴合实际的使用方式,各种优点使得sentinel成为服务降级熔断流控等的最佳选择。1.安装启用https://github.com/alibaba/Sentinel/releases官网选择合适的版本下载,其本体是jar文件。java-jarsentinel-dashboard-1.7.2.jar由于下载的安装包是jar,所以直接在cmd中启动即可。登录地址默认是localhost:8080,账号密码都是sentinel,第一次... 继续阅读 >
202012-03 springcloud 服务降级的实现方法 1、简介什么是服务降级?当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,从而释放服务器资源以保证核心交易正常运作或高效运作。如果还是不理解,那么可以举个例子:假如目前有很多人想要给我付钱,但我的服务器除了正在运行支付的服务之外,还有一些其它的服务在运行,比如搜索、定时任务和详情等等。然而这些不重要的服务就占用了JVM的不少内存与CPU资源,为了能把钱... 继续阅读 >
202011-29 详解SpringCloud使用Consul做注册中心 简介:Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp公司用Go语言开发。Consul支持健康检查,并允许HTTP和DNS协议调用API存储键值对.命令行超级好用的虚拟机管理软件vgrant也是HashiCorp公司开发的产品.一致性协议采用Raft算法,用来保证服务的高可用.使用GOSSIP协议管理成员和广播消息,并且支持,Consul提供了微服务中服务注册发现注册,微服务中的分布式配置中心,可以单独使用,也可以一... 继续阅读 >
202011-01 SpringCloud Gateway自定义filter获取body中的数据为空的问题 最近在使用SpringCloudGateway进行网关的开发,我使用的版本是:SpringBoot的2.3.4.RELEASE+SpringCloud的Hoxton.SR8,在自定义过滤器时需要获取ServerHttpRequest中body的数据,发现一直无法获取到数据,经过各种百度、谷歌,再加上自己的实践,终于找到解决方案:1、首先创建一个全局过滤器把body中的数据缓存起来packagecom.cloudpath.gateway.portal.filter;importlombok.extern.slf4j.Slf4j;importorg.springframework.cl... 继续阅读 >
202010-28 SpringCloud Alibaba Seata (收藏版) 一、简介官网地址:http://seata.io/zh-cn/1,概念Seata是一款开源的分布式事务解决方案,致力于在微服务架构在提供高性能和简单一样的分布式事务服务。2,处理过程TransactionIDXID:全局唯一的事务IDTransactionCoordinator(TC):维护全局和分支事务的状态,驱动全局事务提交或回滚。TransactionManager™:定义全局事务的范围:开始全局事务、提交或回滚全局事务。ResourceManager(RM):管理分支事务处理的资源,与TC... 继续阅读 >
202010-28 SpringCloud Feign转发请求头(防止session失效)的解决方案 微服务开发中经常有这样的需求,公司自定义了通用的请求头,需要在微服务的调用链中转发,比如在请求头中加入了token,或者某个自定义的信息uniqueId,总之就是自定义的一个键值对的东东,A服务调用B服务,B服务调用C服务,这样通用的东西如何让他在一个调用链中不断地传递下去呢?以A服务为例:方案1最傻的办法,在程序中获取,调用B的时候再转发,怎么获取在Controller中国通过注解获取,或者通过request对象获取,这个不难,在... 继续阅读 >
202010-28 Spring Cloud Gateway + Nacos 实现动态路由 本节开始介绍SpringCloudGateway中动态路由的实现方法,包括:Nacos集成动态路由配置,更新配置文件即自动更新路由MySQL+二级缓存实现,主要基于Gateway的一些特性进行重写,实现路由信息的自动更新这篇文章主要介绍第一种方式:将配置文件放到Nacos进行托管,网关服务通过引入Nacos而自动更新路由配置信息。实现较为简单。本节代码在:https://github.com/laolunsi/spring-boot-examples,参考例23即可。下面进入正... 继续阅读 >
202010-20 springcloud alibaba nacos linux配置的详细教程 首先从github上下载nacos的压缩包:https://github.com/alibaba/nacos/releases下载完成之后,通过WinSCP把文件传到linux服务器上接着通过tar-zxvf命令将此压缩包解压解压完成之后,进入conf目录下的clusmter.conf文件打开并在里面加上通过:wq命令保存退出接着通过vim命令进入startup.sh此处修改完成之后,找到这个文件最下面的位置添加红框中的相关配置,保存退出接着进入nginx的conf文件中找到nginx.conf文件,vim进入修改nginx... 继续阅读 >
202010-10 浅析SpringCloud Alibaba-Nacos 作为注册中心示例代码 文档地址https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md1、下载nacos-serverhttps://github.com/alibaba/nacos/releases2、启动nacos-server默认使用nacosnacos登录Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):shstartup.sh-mstandalone如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找... 继续阅读 >
202010-10 springcloud LogBack日志使用详解 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>引入lombok即可,lombok包含了Slf4j下面只需在resources目录下引入此xml配置即可<?xmlversion="1.0"encoding="UTF-8"?><!--控制台输出--><appendername="STDOUT"class="ch.qos.logback.core.ConsoleAppender"><encoderclass="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d... 继续阅读 >
202010-10 解决springcloud Zuul丢失Cookie的问题 springcloud配置智能路由zuul后转发请求指定的方法后会导致cookie无法获取的问题,主要解决方法是再application配置文件中加入sensitive-headers:zuul:routes:yyxt:path:/**serviceId:com.modou.dptsensitive-headers:custom-sensitive-headers:true我的是这样的,具体原理是zuul中sensitiveHeaders的默认值初始值是"Cookie","Set-Cookie","Authorization"这三项,可以看到Cookie被列为了敏感信息,所以不会放到新h... 继续阅读 >