zipkin
懒惰——它是一种对待劳动态度的特殊作风。它以难以卷入工作而易于离开工作为其特点。 —— 杰普莉茨卡娅
引入依赖
<!-- zipkin+sleuth 链路追踪+可视化 --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> <version>2.2.0.RELEASE</version></dependency>
注意要把spring-boot-starter-data-redis指定为jedis
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis --><dependency> <groupId>org.s ...
sentinel流控降级与熔断
人们因为能忘却,所以自己能渐渐的脱离了受过的苦痛,也因为能忘却,所以照样得再犯前人的错误。——鲁迅
引入依赖
<!-- sentinel 降级熔断 --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency><!-- 与sentinel控制台进行通信 --><dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-transport-simple-http</artifactId> <version>1.7.1</version></dependency>
下载客户端 ...
CompletableFuture
一个能思想的人,才真是一个力量无边的人。——巴尔扎克
我们之前使用异步
public static ExecutorService executor = Executors.newFixedThreadPool(10); final Future<Integer> submit = executor.submit(new Callable<Integer>() { @Override public Integer call() throws Exception { print("原始异步Callable"); return 1; } }); executor.execute(new Runnable() { @Override public void run() { LineUtils.print("原始异步Runna ...
sentinel监控不到2级接口?加上@SentinelResource就可以?
真正的快乐是内在的,它只有在人类的心灵里才能发现。——布雷默
如果出现这种问题啊
可以看你的项目启动日志
发现输出如下一句话
2021-03-16 23:24:49.986 INFO 18604 — [ main] c.a.c.s.SentinelWebAutoConfiguration : [Sentinel Starter] register SentinelWebInterceptor with urlPatterns: [/*].
看到这句话差不多懂了吧?
Sentinel提供的SentinelWebInterceptor的urlPatterns默认为/*
我们跟踪配置文件com.alibaba.cloud.sentinel.SentinelProperties
找到这个配置
spring: cloud: sentinel: filter: url-patterns: /**
我们设置为/**后,所有接口都会被监控到啦~
Momo Code Sec inpoector
凡笑者,就表现着他尚有生活的胆和力。——德懋庸
介绍个idea插件
下载后重启idea
然后可以看到我们的代码中出现了更多审查
我们可以点击一键修复
这个插件可以避免我们代码中的潜在隐患,很香啊
seata实现分布式事务
尽管世界和人生是坏透了,其中却有一件东西永远是好,那便是青春——显克维奇
首先是下载seata1.4.1
然后解压
先修改conf下的registry.conf
把type改为nacos
进入bin
打开控制台运行seata-server.bat
然后在项目中引入依赖,记得需要分布式式事务的服务都要配置
<!-- seata 分布式事务 --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency>
配置类
package com.ruben.config;import com.alibaba.druid.pool.DruidDataSource;import com.zaxxer.hikari.HikariDataSource;import io.seata.rm.datasource ...
fastJson的JSONField注解
真正的快乐是内在的,它只有在人类的心灵里才能发现。——布雷默
相信关于FastJson大伙都不陌生
今天聊聊fastjson的这个注解@JSONField
首先它可以放到方法上
例如我们pojo的getter和setter等
其次用的最多的是放到属性上
例如我这里新建一个POJO
@Data@Builder@NoArgsConstructor@AllArgsConstructorprivate static class Student implements Serializable { private static final long serialVersionUID = -3289647584974663707L; private String name; private Integer age; private String job; private GenderEnum gender; private Date birthday; private String json;}
这里的性别枚举
@Getter@Al ...
yml中list写法
三更灯火五更鸡,正是男儿读书时。黑发不知勤学早,白首方悔读书迟。——颜真卿
之前写过一个springboot自定义配置
当时配置map使用的是这种方式
ruben: number: 4444 avatar: https://waibi.oss-cn-chengdu.aliyuncs.com/2020-06-01/head.jpg gender: male hobby: ["游戏","动漫","编程"] introduce: {"food": "blood","programLanguage": "java"}
这里hobby是一个List<String>,introduce是一个Map<String,String>,实际上我们可以使用如下写法
ruben: number: 4444 avatar: https://waibi.oss-cn-chengdu.aliyuncs.com/20 ...
springSession
慎易以避难,敬细以远大。一一韩非子
依赖管理器
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-bom</artifactId> <version>Corn-SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>
依赖
<dependencies> <dependency> <groupId>org.springframework. ...
nacos动态配置
十年树木,百年树人。——《管子》
昨天说了openfeign实现远程调用,今天继续
用nacos作为配置中心实现动态配置
依赖上面已经引入了,直接把官方的demo拿来
不过要注意,我们如果是yml配置的话千万别忘了指定file-extension
spring: cloud: nacos: config: server-addr: 127.0.0.1:8848 file-extension: yml application: name: ruben-provider
然后是controller,这里是需要加上@RefreshScope注解实现动态更新配置
package com.ruben.controller;import com.ruben.enumeration.GenderEnum;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.Ref ...