Java笔记
文章平均质量分 75
Kesling
这个作者很懒,什么都没留下…
展开
-
SpringBoot多数据源
多套数据源: 定义:在项目中针对一个数据库都为其建立一套独立的数据处理逻辑,包括数据源(DataSource),会话工厂(SqlSessionFactory),连接,DAO操作。一、搭建springboot工程 项目工程结构如下所示,主要从实体类和Mapper层开始进行划分,实际工作可从Service层进行划分。├─config ---------------------------------- // 数据源配置├─controller ------------------------原创 2022-02-07 15:27:34 · 26035 阅读 · 1 评论 -
Seata分布式事务
Seata分布式事务 在单体项目中,一般涉及到的数据源是唯一的,我们可以使用数据库提供的本地事务保证数据的一致性。但是在微服务或者多数据源的项目中,涉及到跨库操作,单个数据库的本地事务无法保证不同数据库的数据一致性。 Seata 提供了 AT、TCC、SAGA 和 XA 事务模式,打造一站式的分布式解决方案,设计思路是将一个分布式事务理解成全局事务,里面包含若干分支事务,每个分支事务是一个满足ACID的本地事务,因此我们可以操作分布式事务像操作本地事务一样。Seata定义了3个模块来处理全局事原创 2022-02-07 15:25:03 · 936 阅读 · 0 评论 -
熔断与降级
熔断与降级Sentinel:支持的规则:流量控制规则、熔断降级规则、系统保护规则、来源访问控制规则 、热点参数规则一、流量控制:设计理念:资源的调用关系,例如资源的调用链路,资源和资源之间的关系;运行指标,例如 QPS、线程池、系统负载等;控制的效果,例如直接限流、冷启动、排队等。二、熔断降级:设计理念:通过并发线程数进行限制: 当线程数在特定资源上堆积到一定的数量之后,对该资源的新请求就会被拒绝。堆积的线程完成任务后才开始继续接收请求。通过响应时间对资源进行降级:原创 2022-02-07 15:23:37 · 728 阅读 · 0 评论 -
RestTemplate连接https,证书匹配失败
RestTemplate连接https,证书匹配失败使用RestTemplate进行接口转发,转发地址是 https://内网IP 的格式,由于证书是自签的,所以在调试的时候接口报错,在jvm中无法找到匹配的SSL证书:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested tar原创 2022-02-07 15:22:57 · 2848 阅读 · 1 评论 -
nacos开启权限认证
nacos开启权限认证 不开启会出现身份认证绕过漏洞,可通过post请求随意添加nacos账户版本信息:nacos:2.0.3 spring-cloud-alibaba-dependencies:2.2.5.RELEASE启动nacos时,添加运行参数配置,开启权限认证,具体参数可以看这里https://github.com/nacos-group/nacos-docker:NACOS_AUTH_ENABLE=truespringboot配置文件添加nacos账户和密码:原创 2022-02-07 15:22:03 · 3412 阅读 · 0 评论 -
HashMap的数据结构(JDK1.8及之后)
HashMap的底层数据结构是 数组 + 链表 + 红黑树当我们new一个HashMap集合对象时,JVM不会立刻初始化一个哈希表,而是等到我们给集合对象添加第一个元素时,才会初始化哈希表(懒加载)。存储一个元素时,是如何确定元素的存放位置呢?public V put(K key, V value) { return putVal(hash(key), key, value, false, true);}static final int hash(Object key) {原创 2020-07-31 21:36:33 · 376 阅读 · 0 评论 -
整数型包装类对象进行==比较时出现的问题
== :对于基本类型,比较的是值;对于引用类型,比较的是地址值。public class Demo02Test { public static void main(String[] args) { Integer i1 = new Integer(10); Integer i2 = new Integer(10); System.out.println(i1 == i2); //false System.out.println(原创 2020-07-27 18:24:25 · 267 阅读 · 0 评论