摘要:
$.extend($.fn.validatebox.defaults.rules, { //手机品牌验证 NameRex:{ validator:function(value){ var rex=/^[a-zA-Z0-9\u4e00-\u9fa5\s]+$/;//输入中文、数字、字母或空格 if(r 阅读全文
摘要:
1、修改本地代码仓库的远端git仓库地址: 右击项目名称->git -> manage remotes,进入路径修改 2、在控制台terminal输入:git push -U origin --all,将本地所有分支推送到远端git仓库 阅读全文
摘要:
select st_asgeojson(geom) geom, st_asgeojson(st_centriod(geom)) "centerJson" from xxxtable where geom is not null and st_intersects(geom,ST_geomFromTe 阅读全文
摘要:
select *, row_number() over(PARTITION by 某某字段 order by 排序字段) as rn from table 例子: select * from ( select *, row_number() over(PARTITION by 某某字段 order 阅读全文
摘要:
select t.table_name, obj_description(c.oid) as table_comment from information_schema.tables t left join pg_class c on t.table_name::text = c.relname w 阅读全文
摘要:
1、依赖: 2、参考博文: https://blog.csdn.net/qq_31970227/article/details/113246795 https://www.cnblogs.com/pengdai/p/16537534.html#template%E6%A8%A1%E6%9D%BF 3 阅读全文
摘要:
项目代码突然就报红了,如下: 查看本地依赖库里是有这个jar包的; 解决办法就是换一个低版本的: 换到 阅读全文
摘要:
1、swagger上接口参数紊乱,原因之一是@apiModel的值重复了,加载到了同名entity 阅读全文
摘要:
SELECT st_srid(geom) FROM qysjsx_qyjcxx where uni_scid = '91440300MA5ER4GH88';--查询坐标系,结果样式:4326 // 按经纬度设置坐标update temp_gaoxin_qiye_address_location se 阅读全文
摘要:
1、新建序列化类xxxSerializer,继承JsonSerializer<T>,T依据要序列化的字段类型而定,可以是String,可以是Date: @Configuration public class xxxSerializer extends JsonSerializer<String>{ 阅读全文
摘要:
前提:IDEA开发本地是spring boot项目,用的自带的tomcat 问题描述:项目在开发本地启动正常,发包到测试环境,界面调接口也正常,postman调用本地接口也正常。gradle打包并发到虚拟机上,项目启动是正常的,但是界面调接口后报错java.lang.IllegalArgumentE 阅读全文
摘要:
结论:limit offset,size比limit size要慢,且offset值越大,sql的执行速度越慢。 当offset过大,会引发深度分页的问题,目前不管锁mysql还是elasticsearch都没有很好的方法去解决这个问题,只能通过限制查询数量或 分批获取的方式进行规避。 大部分时候是 阅读全文
摘要:
1、性能优化的杀手锏--》filesystem cache os cache 操作系统缓存 往es里写数据,实际都写到磁盘文件里面去了,磁盘文件里的数据操作系统会自动将里面的数据缓存到os cache里面去 Es的搜索引擎严重依赖于底层的filesystem cache,如果给filesystem 阅读全文
摘要:
一、ES写数据的大致步骤: 1、客户端发送请求过来一条数据(document) 随机选择集群中的一个节点Node2(此时Node2就是协调节点),对数据hash一下,来决定数据要写到哪个shard上去 2、协调节点将数据路由到对应的primary shard上去 3、primary shard写完数 阅读全文
摘要:
1、倒排索引:Lucene检索库 2、基于Lucerne 的分布式搜索引擎elasticSearch 核心思想就是在多台机器上启动多个es进程实例,组成一个es集群。 (1)搞一个索引(索引是es存储数据的基本单位,创建索引的时候可以设置分片的数量),将索引拆分成多个shard分片,每个shard存 阅读全文
摘要:
一、Java虚拟机内存区域 Java虚拟机运行时数据区包括几部分内存:方法区、Java堆、虚拟机栈、本地方法栈、程序计数器 1、程序计数器:线程私有的内存区域 字节码解释器工作时就是通过改变程序计数器的值来选取下一条需要执行的字节码指令。 多线程就是通过线程轮流切换并分配处理器执行时间的方式来实现的 阅读全文
摘要:
Eureka服务注册中心 Config服务配置中心 Ribbon客户端负载均衡 Zuul 服务网关 Hytrix 容错处理,保护系统,控制故障范围 阅读全文
摘要:
1、配置 Web.xml配置url的匹配规则,及spring主配置文件的加载路径,配置注解@controller @service @AutoWired @RequestMapping 2、初始化 加载并解析配置信息、IOC容器、DI操作,HandlerMappingde初始化 Web容器调用dis 阅读全文
摘要:
第一范式1NF:无重复的域(原子性) 第二范式2NF:在1NF基础上,表中每个记录必须可以被唯一区分(主键的概念)2NF要求实体的属性完全依赖于主关键字 第三范式3NF:3NF是2NF的一个子集,任何非主属性不得传递依赖于主属性。 阅读全文
摘要:
一、分布式锁 1、分布式锁应该是怎样的: (1)互斥性:分布式部署的应用集群中,一个方法只能被一台机器上 的一个线程执行 (2)这把锁要是可重入的,避免死锁 (3)有高可用的获取锁和释放锁功能,性能要好 2、分布式锁的三种方式: (1)基于数据库实现分布式锁 悲观锁:实现方式是独占数据,其他线程等待 阅读全文
摘要:
1、批量插入数据到Oracle,使用preparedStatement执行实现 2、JDBC实现批量插入数据 3、在hibernate中实现批量插入数据 4、在mybatis中<insert>标签内对插入的值采用foreach循环 阅读全文
摘要:
1、CountDownLatch 等待多线程完成 它的构造函数接收一个int参数作为计数器,想等待N个点,就传入N。 当调用CountDownLatch的countDown()方法时,N就会减1,直至减为0。 使用await()方法等待,当N的值变为0时,执行await的线程继续执行 2、Cycli 阅读全文
摘要:
Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化 Bean实例化后对将Bean的引入和值注入到Bean的属性中(IOC) 如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法 如果Bean实现了Bea 阅读全文
摘要:
1、要排序的对象类实现Comparable<>接口,重写compareTo()方法 2、使用Comparator匿名内部类实现 1、Class Student implements Comparable<Student >{ //Student 类自己的成员变量(属性),及构造方法 @Overrid 阅读全文
摘要:
线程的生命周期:新建、就绪、运行、阻塞、死亡 1、实现线程是继承Thread类好,还是实现Runnable接口好? 由于类不支持多重继承,如果要继承其他类,最好是实现线程用Runnable 2、Thread类的start()方法和run()方法的区别 start被用来启动新创建的线程,内部调用了ru 阅读全文
摘要:
spring的线程池技术使用的是ThreadPoolTaskExecutor,当我们点进ThreadPoolTaskExecutor这个类的时候,可以看见里面是对于JDK中的ThreadPoolExecutor的封装: 1、为什么要使用线程池? 创建和销毁线程的花销是很大的,处理时间可能比处理业务的 阅读全文
摘要:
一、事务的四大特性:ACID 原子性:强调事务的不可分割 一致性:强调事务的执行前后,数据库完整性保持一致 隔离性:强调事务的并发访问,一个事务的执行不应该受到另一个事务的打扰 持久性:强调事务结束后,数据就永久保存在数据库中 二、事务的隔离级别:四种 1、读未提交Read Uncommited:事 阅读全文
摘要:
业务场景:需要实现一个支持并发的计数功能 1、计数功能的基本实现是: public class Increment{ private int count = 0; public void add(){ count++; } } 2、以上实现在并发环境下是不安全的,故修改方案1是加锁synchroni 阅读全文
摘要:
或者: 消息队列满了以后该怎么处理? 或者: 几百万消息持续积压几小时,怎么解决? 问题本质是消费端出问题了,不消费或者消费慢。 1、消费端出问题了,大量消息积压在kafka里几个小时,怎么办? 正常思路是:修复consumer的问题,让他恢复消费,然后傻等几个小时消费完毕(不可取,用户等不了) 实 阅读全文
摘要:
或者:如何保证从消息队列里拿到的数据按顺序执行? 解决方案的关键是在消费者消费之前,将有相关性的数据按顺序写入同一个队列(queue或者是内存队列) 1、rabbitMQ 中,有个默认是数据1进入一个queue并且只会被一个消费者消费 场景:(1queue对多consumer)三个消息按顺序写进了1 阅读全文
摘要:
丢消息的情况有多种,可能是生产者丢了,可能是MQ丢了,可能是消费者丢了。 1、rabbitMQ 一般是用来承载核心业务的,数据是绝对不能丢的。解决方案的核心是接收消息方给发送消息方返回ack 一句话总结:生产者开启confirm模式 + MQ持久化消息 + 消费者关闭autoAck,手动提交 ack 阅读全文
摘要:
消息重复消费,会造成数据混乱,特别是在涉及消费和财务系统里,此问题的解决显得尤为重要。 以kafka为例 关键字:消费端自动提交offset;写库或者redis时,先去查一下主键、key等是否存在 上图中,最顶上的文本框丢失的文字:并通知kafka当前最大offset; 最右边的文本框丢失的文字:数 阅读全文
摘要:
保证MQ的高可用性,主要是解决MQ的缺点--系统复杂性变高--带来的问题 主要说一下 rabbitMQ 和 kafka 的高可用性 一、rabbitMQ的高可用性 rabbitMQ是基于主从做高可用性的,主要有三种模式:单机模式(不推荐)、普通集群模式(不推荐)、镜像集群模式(推荐) 1、单机模式: 阅读全文
摘要:
1、Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder 2、工厂模式:例如SqlSessionFactory、ObjectFactory、Map 阅读全文
摘要:
注:前提是知道什么是消息队列。不懂的去搜索各种消息队列入门(activeMQ、rabbitMQ、rocketMQ、kafka) 1、为什么要使用MQ?(MQ的好处:解耦、异步、削峰) (1)解耦:主要解决系统间的耦合度 场景是系统A会产生用户ID:userId,要把userId通过调用系统B\C\D 阅读全文
摘要:
springboot启动类写法: @SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, ar 阅读全文
摘要:
springMVC 1、是基于Servlet的一个MVC框架(DispatcherServlet、ModelAndView、ViewResolver),解决web开发问题 缺点是 :配置复杂 要简化使用,才应运而生的springBoot:约定优于配置 springMVC解决的问题是网站应用程序/服务 阅读全文
摘要:
1、IOC 控制反转:由spring来控制对象的生命周期和对象之间的关系 依赖注入 DI :(1)组件之间的依赖关系由容器在运行期决定,动态的将某种依赖关系注入到组件中去 (2)通过反射机制实现 优点是: 降低了组件之间的耦合(例如组件A需要创建组件B,由spring注入到A中去,而不是A自己创建) 阅读全文
摘要:
1、同步代码块 synchronized (锁对象) { xxx } 2、同步方法 public synchronized void method() { xxx } 3、静态同步方法 public synchronized static void method(){ xxx } 阅读全文