自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 收藏
  • 关注

转载 Apollo 配置中心详细教程

Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。服务端基于Spring Boot和Spring Cloud开发,打包后可以直接运行,不需要额外安装Tomcat等应用容器。Java客户端不依赖任何框架,能够运行于所有Java运行时环境,同时对Spring/Spring Boot环境也有较好的支持。.Net客户端不依赖任何框架,能够运行于所有.Net运行时环境。

2023-09-20 10:23:44 2417

原创 将JSON写入文件

java将json保存在文件中

2023-05-19 17:39:18 1068

原创 springboot读取yml文件中的list列表、数组、map集合和对象方法实例

application.yml接收不同类型的参数

2023-04-16 19:14:58 9032

原创 Result window is too large, from + size must be less than or equal to: [10000] but was

es分页搜索报错,

2023-02-07 17:58:26 3617

原创 接口性能优化的11个小技巧

接口优化方案

2022-12-02 18:50:24 296

原创 BigInteger.toString方法生成md5字符串,会删除开头0

md5

2022-11-24 17:04:48 690

原创 easyExcel不同版本按照模板导出

easy excel按照模板导出文件

2022-11-18 18:00:30 6301

原创 mapstruct实体转换 转换成不同类型

mapstruct转换

2022-11-10 15:59:54 1475

原创 Elastic Search(ES)数据同步方案分析比较

elastic数据同步

2022-11-03 10:10:00 601

原创 Java下载文件

下载文件

2022-08-22 00:04:59 425

原创 sql按时间删除指定条数数据

sql删除日期前几条数据

2022-08-15 11:30:07 1296

转载 Spring Boot 获取IP

获取ip

2022-08-08 20:13:40 4098

转载 SpringBoot框架开发的优秀的项目「值得收藏学习」

有用的springboot项目

2022-07-19 10:12:37 2145

原创 后端validated校验

Validated校验

2022-07-01 15:00:52 616

原创 Idea Maven项目打包工其他项目进行外部引用

引用公共模块

2022-07-01 10:14:53 2801 1

原创 jpa手写sql,用自定义实体类接收

jpa

2022-06-29 15:20:00 1062

原创 windows下安装erl和rabbitmq

erlong和rabbitmq安装

2022-06-28 11:29:19 835

原创 Spring Data JPA 之 一对一,一对多,多对多 关系映射

springbootjpa映射

2022-06-22 11:49:01 1152

原创 mongodb 数据聚合Aggregation使用

方法解读方法 参数 备注 match() (Criteria criteria) 查询条件构建 lookup() (String from, String localField, String foreignField, String as) from:关联表localField:主记录关联字段,传入的是MongoDB中的字段名,非实体类字段名foreignField:关联表关联字段,字段名同上as:别名,及实体类映射字段名(lookup默认返回的类型是Arr

2022-04-26 10:22:17 2439 1

原创 springboot集成mongodb

1.开发环境IDEA、Maven、SpringBoot2.0.4、Jdk1.8、MongoDB4.0、MongoDB Compass Community、PostMan2.MongoDB传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由

2022-04-24 18:09:37 8653 3

原创 mongodb的优缺点及应用场景

一、MongoDB是什么1、维基百科MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据

2022-04-24 16:20:58 7022

原创 mybatis plus乐观锁

mybatis plus中的OptimisticLockerInnerInterceptor与OptimisticLockerInterceptor新版的mybatis plus中,OptimisticLockerInnerInterceptor已经被弃用,改为OptimisticLockerInterceptor旧版的乐观锁代码:package com.nanyuan.mybatisplus.config;import com.baomidou.mybatisplus.exte

2022-04-22 17:29:06 814

转载 Java中“附近的人”实现方案讨论及代码实现

在我们平时使用的许多app中有附近的人这一功能,像微信、qq附近的人,哈罗、街兔附近的车辆。这些功能就在我们日常生活中出现。像类似于附近的人这一类业务,在Java中是如何实现的呢?本文就简单介绍下目前的几种解决方案,并提供简单的示例代码注: 本文仅涉及附近的人这一业务场景的解决方案讨论,并未涉及到相关的技术细节和方案优化,各位看官可以放心阅读。2|0基本套路和方案目前业内的解决方案大都依据geoHash展开,考虑到不同的数据量以及不同的业务场景,本文主要讨论以下3种方案Mys

2022-04-22 17:27:54 1085

原创 Java中通过redis实现每日实时排行榜

通过redis中zset类型来实现每日排行榜还是比较容易的,但也有一些地方需要注意。具体实现代码如下:1.设置数据首先是要把需要的数据设置到redis中,注意分值前面的负号,由于zset特性是越小排到越前,所以分值需要加上负号才能到达分值越大排名越靠前的效果。 1 /** 2 * 设置排行榜信息 3 * 4 * @param anchorId 5 * @param score 6 * @param userId 7

2022-04-08 15:17:54 3744

原创 基于redis分布式锁实现“秒杀”(含代码)

本文转载自【微信公众号:java进阶架构师,ID:java_jiagoushi】经微信公众号授权转载,如需转载与原文作者联系来源:http://t.cn/EtMiR33最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的demo,阐述实现所谓“秒杀”的基本思路。业务场景所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证

2022-04-01 23:15:28 1164

原创 分布式事务有这一篇就够了

1. 基础概念1.1 什么是事务事务可以看做是一次大的活动,它由不同的小活动组成,这些活动要么全部成功,要么全部失败。1.2 本地事务 在计算机系统中,更多的是通过关系型数据库来控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。数据库事务的四大特性:ACIDA(Atomic):原子性,构成事务的所有操作,要么都执行完成,

2022-04-01 22:15:30 244

原创 内存泄漏典型例子

Vector v = new Vector( 10 ); for ( int i = 1 ;i < 100 ; i ++ ){ Object o = new Object(); v.add(o); o = null ; }在这个例子中,代码栈中存在Vector 对象的引用 v 和 Object 对象的引用 o 。在 For 循环中,我们不断的生成新的对象,然后将其添加到 Vector 对象中,之后将 o 引用置空。问题是当 o 引用被置空后,如果发生 GC.

2022-04-01 21:22:27 656

原创 PHP中的self关键字详解

静态成员函数内不能用this调用非成员函数,但可以用self调用静态成员函数/变量/常量;其他成员函数可以用self调用静态成员函数以及非静态成员函数。随着讨论的深入,发现self并没有那么简单。鉴于此,本文先对几个关键字做对比和区分,再总结self的用法。与parent、static以及this的区别要想将彻底搞懂self,要与parent、static以及this区分开。以下分别做对比。parentself与parent的区分比较容易:parent引用父类/基类被隐盖的方法(或变量),s

2022-02-11 16:33:23 2482

转载 详细解析Redis中的布隆过滤器及其应用

什么是布隆过滤器布隆过滤器(Bloom Filter)是由Howard Bloom在1970年提出的一种比较巧妙的概率型数据结构,它可以告诉你某种东西一定不存在或者可能存在。当布隆过滤器说,某种东西存在时,这种东西可能不存在;当布隆过滤器说,某种东西不存在时,那么这种东西一定不存在。布隆过滤器相对于Set、Map 等数据结构来说,它可以更高效地插入和查询,并且占用空间更少,它也有缺点,就是判断某种东西是否存在时,可能会被误判。但是只要参数设置的合理,它的精确度也可以控制的相对精确,只会有小小的误判概

2022-02-10 19:57:00 392

原创 php常用方法

array_column($empInfo, 'badge') 以$empInfo的badge为新数组array_values() 返回数组中所有的值(不保留键名)in_array("Mark", $people) 是否在数组内array_diff 计算数组的差集strtotime() 函数将任何字符串的日期时间描述解析为 Unix 时间戳explode()把字符串打散为数组:implode()把数组元素组合为字符串:implode(" ",$arr);...

2022-02-10 17:28:44 289

原创 SQL查询两个条件不等于需要同时成立

1.第一种用orselect * from ts_order where (a!=10 or b!=20)2.第二种用notselect * from ts_order where not (a=10 and b=20)

2022-01-26 17:21:13 4836

原创 线程同步的注解:@ThreadSafe、@Immutable、@NotThreadSafe、@GuardedBy

Java并发编程中,用到了一些专门为并发编程准备的 Annotation。主要包括三类:<dependency> <groupId>net.jcip</groupId> <artifactId>jcip-annotations</artifactId> <version>1.0</version> </dependency> 注解包含以下类1、类

2022-01-13 14:23:22 594

原创 mysql的join查询和多次查询比较

MySQL多表关联查询效率高点还是多次单表查询效率高?在数据量不够大的时候,用join没有问题,但是一般都会拉到service层上去做第一:单机数据库计算资源很贵,数据库同时要服务写和读,都需要消耗CPU,为了能让数据库的吞吐变得更高,而业务又不在乎那几百微妙到毫秒级的延时差距,业务会把更多计算放到service层做,毕竟计算资源很好水平扩展,数据库很难啊,所以大多数业务会把纯计算操作放到service层做,而将数据库当成一种带事务能力的kv系统来使用,这是一种重业务,轻DB的架构思路第二:

2022-01-12 15:29:18 1462

原创 js刷新页面和刷新打开自己的父页面

1.用iframe、弹出子页面刷新父页面iframe 1 2 3 <script language=JavaScript>   parent.location.reload(); </script> 2.弹出子页面 1 2 3 <script language=JavaScript> window.opener.location.r..

2022-01-05 15:05:56 2821

原创 thinkphp接受assign传值给option选择框

<select id="marriage" name="marriage"><option>--请选择--</option><foreach name="list" item="vo"><option value="<{$vo.class_id}>" selected="<{$vo.class_id}>" >...

2022-01-05 13:58:44 217

原创 layer.open关闭

var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引parent.layer.close(index);

2022-01-04 10:52:21 3587

原创 mysql注意事项

在高并发场景中,避免使用”等于”判断作为中断或退出的条件。说明:如果并发控制没有处理好,容易产生等值判断被“击穿”的情况,使用大于或小于的区间判断条件来代替。反例:判断剩余奖品数量等于 0 时,终止发放奖品,但因为并发处理错误导致奖品数量瞬间变成了负数,这样的话,活动无法终止。mysql规范1、表达是与否概念的字段,使用 is_xxx 的方式命名,数据类型是 unsignedtinyint(1 表示是,0 表示否)。说明:任何字段如果为非负数,必须是 unsigned。正例:表达逻辑

2021-12-31 13:30:18 667

原创 thinkphp中html用if判断接值

<if condition="empty($value) neq true"><if condition="$value eq ''"><notempty name="name">name不为空</notempty><empty name="name">name为空<else /> name不为空</empty>

2021-12-30 18:55:34 388

原创 mysql集群保证数据一致性

mysql集群配置在网站负载均衡中是必不可少的;首先说下我个人准备的负载均衡方式;  1、通过nginx方向代理来将服务器压力分散到各个服务器上;  2、每个服务器中代码逻辑一样;  3、通过使用redis缓存来保存内存中数据,使用redis同步功能来同步不同服务器内存中的数据;  4、在通过mysql的集群配置来实现数据库数据同步;这里我整理了几种数据同步方式;一:主从服务器同步;  顾名思义:主服务器负责数据的增删改查,从服务器负责同步数据;  主服务器建立二进制

2021-12-30 11:17:35 2909

原创 MySQL集群之五大常见的MySQL高可用方案

1. 概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机时间,保证业务不会因为数据库的故障而中断。 用作备份、只读副本等功能的非主节点的数据应该和主节点的数据实时或者最终保持一致。 当业务发生数据库切换时,切换前后的数据库内容应当一致,不会因为数据缺失或者数据不一致而影响业务。关于对高可用的分级在这里我们不做详细的讨论,这里只讨论常用高可用方案的优缺点以及高可用方案的选型。2. 高可用方案

2021-12-30 10:42:38 5756

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除