成都没有派对🎉

  • 首页
  • 请我喝茶
  • 蛤?
JAVA
JAVA

微服务拆分之道

背景 微服务在最近几年大行其道,很多公司的研发人员都在考虑微服务架构,同时,随着 Docker 容器技术和自动化运维等相关技术发展,微服务变得更容易管理,这给了微服务架构良好的发展机会。 在做微服务的路上,拆分服务是个很热的话题。我们应该按照什么原则将现有的业务进行拆分?是否拆分得越细就越好?接下来一起谈谈服务拆分的策略和坚持的原则。 拆分目的是什么? 在介绍如何拆分之前,我们需要了解下拆分的目的是什么,这样才不会在后续的拆分过程中忘了最初的目的。 拆分的本质是为了将复杂的问题简单化,那么我们在单体架构阶段遇到了哪…

2023年10月9日 0条评论 1135点热度 0人点赞 suxiaomi 阅读全文
JAVA

Spring Data JPA——多表设计、一对多、多对多、多表查询

一、多表设计 1、表之间关系的划分 数据库中多表之间存在着三种关系,如图所示。 从图可以看出,系统设计的三种实体关系分别为:多对多、一对多和一对一关系。注意:一对多关系可以看为两种: 即一对多,多对一。所以说四种更精确。 实际开发中常用的关联关系,一对多和多对多。而一对一的情况,在实际开发中几乎不用。 2、在JPA框架中表关系的分析步骤 跳转到目录 在实际开发中,我们数据库的表难免会有相互的关联关系,在操作表的时候就有可能会涉及到多张表的操作。而在这种实现了ORM思想的框架中(如JPA),可以让我们通过操作实体类就…

2021年10月20日 0条评论 2917点热度 2人点赞 suxiaomi 阅读全文
JAVA

如何应对缓存穿透

相关的问题 数据库TPS是多少,是否进行测试过 缓存击穿有哪些方案解决 前言 设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。 解决方案 有很多种方法可以有效地解决缓存穿透问题,最常见的则是采用布隆…

2018年12月13日 3条评论 7628点热度 14人点赞 suxiaomi 阅读全文
JAVA

《Java多线程核心技术》读书笔记

Chap1. Java多线程技能 进程是受操作系统管理的基本运行单元 线程是在进程中独立运行的子任务 使用多线程的方法 继承Thread类:继承自Runnable接口 继承Runnable接口:可以支持多继承 Thread.java类中的start()方法是异步执行,此线程对象交给“线程规划器”处理,而run()方法是同步执行,由main()主线程来调用run()方法。 线程安全: synchronized可以在任意对象及方法上加锁,而加锁的这段代码称为“互斥区”或“临界区”。 留意i--与System.out.p…

2018年4月13日 0条评论 7034点热度 5人点赞 suxiaomi 阅读全文
JAVA

Zookeeper客户端Curator使用详解

Zookeeper客户端Curator使用详解 简介 Curator是Netflix公司开源的一套zookeeper客户端框架,解决了很多Zookeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等等。Patrixck Hunt(Zookeeper)以一句“Guava is to Java that Curator to Zookeeper”给Curator予高度评价。 引子和趣闻: Zookeeper名字的由来是比较有趣的,下面的片段摘抄自《从…

2018年4月9日 0条评论 8068点热度 0人点赞 suxiaomi 阅读全文
JAVA

spring-data-jpa只查询部分字段

使用jpa查询默认会返回表的全部字段,为了查询效率和安全考虑我们有时候需要控制查询返回的字段范围。 不论是nativequery还是hql的query,都可以指定需要查询的字段,只是必须定义这些字段所对应的实体,而且需要一个构造函数,构造函数的参数就是查询的字段列表。举个栗子: @Entity @Table(name="Human") @JsonInclude(JsonInclude.Include.NON_NULL) public class Human { @Id @GeneratedValue(strateg…

2018年3月26日 1条评论 12513点热度 9人点赞 suxiaomi 阅读全文
JAVA

放弃使用Java10

:han: hibernate不兼容,启动时 获取java版本方法getJavaVersion()时,居然数组越界,报 java.lang.ArrayIndexOutOfBoundsException异常,猜测之前的java版本是java version1.8.0_161,java10的版本是java version "10" 坑爹 :a:

2018年3月22日 0条评论 6463点热度 1人点赞 suxiaomi 阅读全文
JAVA

Redis为什么用跳表而不用平衡树?

这篇真的写了好久好久,不信你进来看......

2018年3月22日 0条评论 6179点热度 5人点赞 suxiaomi 阅读全文
JAVA

使用 Spring 5 的 WebFlux 开发反应式 Web 应用

Spring 5 是流行的 Spring 框架的下一个重大的版本升级。Spring 5 中最重要改动是把反应式编程的思想应用到了框架的各个方面,Spring 5 的反应式编程以 Reactor 库为基础。在之前的文章《使用 Reactor 进行反应式编程》中,已经对 Reactor 库进行了详细的介绍。读者如果需要了解 Reactor,可以参考之前的那篇文章。Spring 5 框架所包含的内容很多,本文只重点介绍其中新增的 WebFlux 模块。开发人员可以使用 WebFlux 创建高性能的 Web 应用和客户端。…

2018年3月6日 0条评论 6364点热度 0人点赞 suxiaomi 阅读全文

COPYRIGHT © 2023 成都没有派对🎉. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang