风流 少年
我走的很慢,但从不后退!Not designed!
展开
-
SpringBoot入门教程 日志TraceId
一:日志TraceId使用场景1.1 场景一工作中根据日志排查问题时我们经常想看到某个请求下的所有日志,可是由于生产环境并发很大,每个请求之间的日志并不连贯,互相穿插,如果在打印日志时没有为日志增加一个唯一标识是没法分辨出那些日志是那个请求打印的。1.2 场景二在微服务场景下,我们想知道一个请求中所有和该请求相关的链路日志,此时也需要为日志增加一个唯一标识。通常可以使用UUID或者其它雪花算法等作为唯一标识。二:MDCMDC(Mapped Diagnostic Context)映射诊断环境,是原创 2021-09-22 14:51:45 · 2136 阅读 · 0 评论 -
Spring Cloud Stream
spring stream 是对kafka和rabbitmq的一个抽象封装,一个高度的统一,当更换消息中间件时只需要修改少量配置即可实现替换的目的。spring stream 虽然使得替换变容易了,但是因为更加抽象学习成本变高了,而且spring stream 使用的比较少,绝大部分都是直接使用消息中间件而不会使用stream,但是也有个别程序会使用,使得我们不得不去学习spring stream。示例:向test-topic发送一个消息,并监听test-topic对应的消息来消费。一:pom.xml原创 2021-07-12 17:58:44 · 911 阅读 · 0 评论 -
Spring Cloud快速入门:Spring Boot Admin监控
一:eureka-serverpom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.cloud</gro原创 2021-05-04 15:55:10 · 264 阅读 · 0 评论 -
Spring Cloud Alibaba快速入门(六):分布式事务 - Seata
一:分布式事务解决方案1.1 方案1:全局事务(二阶段提交 2PC)全局事务会将每个本地事务纳入到一个全局事务管理器(协调者)中,每个本地事务都会执行并将事务的执行结果汇报给全局事务,注意现在本地事务还没有真正的提交,等到所有本地事务都执行成功了,全局事务会所有本地事务进行提交。全局事务管理器负责协调每个本地事务,然后最后统一决策是对所有本地事务进行提交还是回滚。全局事务是事务分为两个阶段,第一阶段为表决阶段,第二阶段为提交阶段,如果表决阶段都通过即所有本地事务都执行成功,但是在第二阶段去真正提交每原创 2021-01-14 18:02:12 · 415 阅读 · 0 评论 -
Spring Cloud Alibaba快速入门(五):RPC - Dubbo
一:简介Spring Cloud微服务之间互相调用一般是通过Feign以HTTP短连接的方式来调用,因为是HTTP短连接所以每次调用都需要建立TCP连接,使得效率相对Dubbo比较低。Dubbo是一个高性能RPC框架,常用于代替Feign在微服务之间调用。一般我们对外提供服务使用REST API,内部服务之间调用使用RPC。二:启动Nacossh startup.sh -m standalone三:Spring Cloud集成Dubbo(服务提供方)3.1 pom.xml注意:这里并没有使用原创 2021-01-05 20:32:30 · 1087 阅读 · 0 评论 -
Spring Cloud Alibaba快速入门(二):配置中心 - Nacos
一:简介https://nacos.io/zh-cn/docs/quick-start.html 支持以HTTP方式来管理配置,支持动态刷新配置。下载解压即可:https://github.com/alibaba/nacos/releases# 单击模式启动sh startup.sh -m standaloneWeb UI:localhost:8848/nacos 用户名: nacos 密码: nacos二:nacos 持久化2.1 建库建表nacos的数据默认是保存在nacos内嵌的原创 2020-12-30 21:59:24 · 211 阅读 · 1 评论 -
Spring Cloud Alibaba快速入门(一):注册中心 - Nacos
一:微服务集成Nacos 服务发现1.1 pom.xml引入nacos-discovery<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <version>2.2.3.RELEASE</version>&原创 2020-12-30 17:44:49 · 442 阅读 · 0 评论 -
Spring Cloud快速入门(九):路由网关 - Gateway
路由:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency> <groupId>org.springframework.cloud</原创 2020-12-29 20:39:58 · 397 阅读 · 0 评论 -
Spring Cloud快速入门(八):链路追踪 - Sleuth
日志持久化到MySQL:创建Zipkin需要的数据库和表结构。/*SQLyog Ultimate v11.33 (64 bit)MySQL - 5.5.58 : Database - zipkin**********************************************************************//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE=''*/;/*!40014 SET @OLD_UNI原创 2020-12-29 10:43:59 · 310 阅读 · 1 评论 -
Spring Cloud快速入门(七):路由网关 - Zuul(二)
一:简介一般一个系统中会有多个微服务,而微服务之间又会相互调用,通常所有的微服务都会通过路由网关进行转发。路由网关(Zuul) --> 订单微服务 --> 商品微服务,假如商品服务出现业务逻辑或者运行时异常时如何在路由网关中获取商品服务抛出的异常,并统一返回json格式呢?这就是这篇文章要解决的问题。{ "code": "1000", "msg": "参数错误"}二:platform-basepublic enum ApiErrorCodeEnum { SUCCESS("原创 2020-12-28 20:33:05 · 226 阅读 · 0 评论 -
Spring Cloud Alibaba快速入门(三):熔断降级 - Sentinel
GitHub https://github.com/alibaba/Sentinel/releasesjava -jar -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jarlocalhost:8080 用户名:sentinel 密码:sentinelpom.xml<?xml ve原创 2021-01-02 19:20:49 · 314 阅读 · 0 评论 -
Spring Cloud快速入门(六):路由网关 - Zuul
API网关:聚合多个微服务,对外提供一个统一的路径。一般一个系统中会有很多微服务,如果前端调用就需要维护多个ip:port, 这样比较麻烦。一般微服务都会有一些共同的代码比如身份认证校验token等也需要抽取出来。zuul是netflix公司提供的,可以和feign、ribbon、hystrix可以无缝整合。pom.xml<dependency> <groupId>org.springframework.cloud</groupId> <artif原创 2020-12-28 18:15:18 · 189 阅读 · 0 评论 -
Spring Cloud快速入门(五):熔断降级 - Hystrix
服务雪崩:一个接口可能会调用多个其它接口,而其它接口可能还会再调用其它接口,当中间某个接口处问题时就会导致整个接口不能提供服务。熔断降级:熔断器就是一个保险丝。<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.11.RELEA原创 2020-12-28 15:40:35 · 233 阅读 · 0 评论 -
Spring Cloud快速入门(四):服务调用 - Feign
Ribbon调用微服务的不好的地方需要在代码中拼接接口的完整的路径,感觉不够优雅,拼接也容易出错。<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>@EnableFeignClients@EnableFeignClien原创 2020-12-27 19:05:04 · 185 阅读 · 0 评论 -
Spring Cloud快速入门(三):负载均衡 - Ribbon
Ribbon已经集成到Spring Cloud中了,所以不需要在额外引入依赖。服务调用:不需要在手动拼接服务地址负载均衡服务调用示例@Bean@LoadBalancedpublic RestTemplate restTemplate() { return new RestTemplate();}@RestController@RequestMapping("/shoppingCart")public class ShoppingCartController { @原创 2020-12-26 22:46:48 · 213 阅读 · 0 评论 -
Spring Cloud快速入门(二):配置中心 - Config
配置文件集中统一管理:配置文件不需要每个微幅单独维护,而是放在外部统一维护对每个微服务的配置区分环境(开发环境、测试环境、灰度环境、生成环境)无需重启服务,动态的调整配置参数在GitHub上创建一个仓库,保存每个微服务每个环境的配置文件:配置文件命名规范:服务名-环境, 如 order-web-dev.yml、order-web-pro.ymlconfig-server<dependency> <groupId>org.springframewo原创 2020-12-25 14:20:50 · 213 阅读 · 0 评论 -
Spring Cloud快速入门(一):注册中心 - Eureka
一:Eureka Serverpom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency> <dependency> <groupId>org.springframework.clou原创 2020-12-24 21:32:13 · 349 阅读 · 0 评论