![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
qq_36594703
这个作者很懒,什么都没留下…
展开
-
错误记录-将订单摘要信息保存csv上传jfile文件
生产问题原创 2022-08-26 10:01:11 · 78 阅读 · 0 评论 -
保存csv格式数据到内存
从数据库查出数据保存csv文件格式到内存原创 2022-08-05 16:56:03 · 344 阅读 · 0 评论 -
MySQL递归查询WITH RECURSIVE
WITH RECURSIVE cte_name AS ( initial_query -- anchor member UNION ALL recursive_query -- recursive member that references to the CTE name)SELECT * FROM cte_name;//原文出自【易百教程】,商业转载请联系作者获得授权,非商业请保留原文链接:https://www.yiibai.com/mysql/recursive-ct.原创 2022-01-04 17:53:28 · 1679 阅读 · 1 评论 -
重试神器Retryer
一、使用组件首先在项目中引入maven依赖: <dependency> <groupId>com.github.rholder</groupId> <artifactId>guava-retrying</artifactId> <version>2.0.0</version> </dependency>下面通过一个例子,来看如何使用该组件:// .原创 2021-08-31 16:20:38 · 388 阅读 · 0 评论 -
3中让线程等待和唤醒的方法
3种让线程等待和唤醒的方法1.使用Object中的wait()方法让线程等待,使用Object中的notify方法唤醒线程2.使用JUC包中Condition的await()方法让线程等待,使用signal()方法唤醒线程3.LockSupport类可以阻塞当前线程以及唤醒指定被阻塞的线程Object类中wait( )和notify( )实现线程的等待唤醒1.wait和notify方法必须要在同步块或同步方法里且成对出现使用。 wait和notify方法两个都去掉同步代码块后看运行效果出现异常情况原创 2020-12-20 17:01:50 · 1207 阅读 · 0 评论 -
优秀平滑轮询算法
public class WeightRoundRobin { private static Map<String,Weight> weightMap = new HashMap<>(); public static String getServer(){ int totalWeight = 0; for(Integer weight:WEIGHT_LIST.values()){ totalWei...原创 2020-12-06 17:22:05 · 196 阅读 · 0 评论 -
springcloud stream消息驱动
消息驱动生产者:①pom文件: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> &原创 2020-08-09 17:35:57 · 179 阅读 · 0 评论 -
springcloud config与springcloud bus实现动态刷新配置
1.分布式配置中心可以做什么?①集中管理配置文件②不同环境不同配置动态化的配置更新,分环境部署例如dev/test/release③运行期间动态调整配置,不在需要在每个服务部署的机器上编写配置文件,服务会向配置中心统一拉取配置自己的信息④当配置变动时,服务不在需要重启即可感知到配置的变化,并应用新的配置⑤将配置信息以Rest接口形式暴露。2.什么是总线?在微服务架构的系统中,通常会实用轻量级的消息代理来构建一个公用的消息主题,并让系统中所有微服务实例都连接上来,由于该主题中产生的消息会被所有实例原创 2020-08-09 16:19:40 · 421 阅读 · 0 评论 -
springcloud hystrix服务降级服务熔断
1.熔断机制概述:熔断机制是应对雪崩效应的一种微服务链路保护机制,当扇出链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息,当检测到该节点微服务调用响应正常后,恢复调用链路。 2.在springcloud框架里,熔断机制通过hystix实现,hystrix会监控微服务间的调用情况,当失败的调用达到一定阈值,缺省是5秒内20次调用失败,就会启动熔断机制,熔断机制注解是@HystrixCommond ...原创 2020-08-08 21:26:44 · 184 阅读 · 0 评论 -
springcloud
1.consul是一套开源的分布式服务发现和配置管理系统,用go语言开发,提供了微服务系统中的服务治理、配置中心、控制总线等功能,这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网络,总之consul提供了一种完整的服务网格解决方案.。它具有很多优点,包括:基于raft协议,比较简洁,支持健康检查同时支持http和dns协议,支持跨数据中心的wan集群,提供图形界面跨平台,支持linux,mac,windows。2,consul可以做什么?①服务发现:提供http和dns两原创 2020-08-01 21:28:20 · 159 阅读 · 0 评论 -
java面试一
1.数据库的三范式?①第一范式:数据库表的每个字段都是不可分割的②第二范式:数据库表的非主属性完全依赖于主键③第三范式:不存在非主属性对关键字的传递函数依赖关系。2.mysql表中有多少触发器?6个,before insert,after insert,before update,after update,before delete, after delete3.mysql有关权限的表都有哪几个?mysql服务器通过权限表来控制用户对数据库的访问,权限表存在mysql数据库里,由mysq原创 2020-07-05 17:36:52 · 136 阅读 · 0 评论 -
redis的bitmap,hyperloglog,geo数据结构
1.getbit key offset:获取指定key对应偏移位上的Bit值2.setbit key offset value:设置指定key对应偏移位上的bit值,value只能为0或13.Bitop op(and,or,not,xor) destkey key1[key2...]对指定key按位进行交,并,非,异或操作,并将结果保存到destkey中4.bitcount key [...原创 2020-04-19 20:03:18 · 441 阅读 · 0 评论 -
redis内存淘汰策略之定期删除原理
原创 2020-04-18 20:55:25 · 1632 阅读 · 2 评论 -
redis持久化的AOF重写机制
1.手动通过命令在后台开始重写功能:bgrewriteaof2.AOF自动重写方式自动重写触发条件设置:①auto-aof-rewrite-min-size size②auto-aof-rewrite-percentage percent自动重写触发对比参数(运行指令Info Persistence获取)①aof_current_size②aof_base_size自动重写触发条件...原创 2020-04-18 20:52:04 · 781 阅读 · 0 评论 -
redis五种数据结构应用场景
Hash应用场景1.以电商购物车为例:以用户id为key,商品id为field,商品数量为value添加商品-》hset cart:1001 10088 1增加1088商品数量-》hincrby cart:1001 10088 1获取1088商品数量-》hget cart:1001 10088获取购物车的商品总数-》hlen cart:1001删除1088商品-》hdel ...原创 2020-04-11 20:07:12 · 661 阅读 · 1 评论 -
mybatis相关面试题
1.mybatis加载mappers文件有几种方式?最先加载的是那种方式?(package)标题原创 2020-04-04 21:10:01 · 185 阅读 · 0 评论 -
Tomcat热部署与热加载
https://blog.csdn.net/tengxing007/article/details/83146803转载 2020-03-22 18:36:43 · 150 阅读 · 0 评论 -
java数据库面试题
1.数据库集群的话,如果自动增长id产生重复如何解决?①UUID(不排序,不推荐,但Oracal数据库可以),②设置数据库的步长查询自增的步长:show variables like 'auto inc%'修改自增的步长:set @@auto increment increment = 10修改起始值:set @@auto increment offset = 5假设有两条my...原创 2019-11-16 14:31:06 · 367 阅读 · 0 评论 -
java面试题1
1.策略模式是为了减少if-elses代码使用接口继承实现2.工厂模式多用在使用反射机制初始化Bean3.redis与mysql如何保证数据一致性问题?答:传统的解决方案即当mysql数据库更改时,直接清理redis缓存,清缓存这个过程存在时差,B方案:当数据库进行add,del,update操作时,会记录日志binlog,搭建mq监听到日志记录变化时,把变化的日志记录传递到mq进而转...原创 2019-11-05 20:59:25 · 183 阅读 · 0 评论 -
ActiveMQ
ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.和J2EE1.4规范的JMS Provider实现尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍扮演着特殊的地位。主要特点:1. 多种语言和协议编写客户端。语言: Java, C, C++, C#, Ruby, Perl, Python, PHP。应用协议: O...原创 2018-06-08 20:40:13 · 247 阅读 · 0 评论 -
Mybatis一对一及一对多映射
实体类:public class User implements Serializable{ private Integer id; private String username; private String sex; private Date birthday; private String address; private List<Orders> ordersLi...原创 2018-06-25 21:54:29 · 172 阅读 · 0 评论 -
超详细的纯手写的LinkedList源码
public class ExtLinkedList<E>{ private int size;//实际长度 private Node first;//第一个节点(为了查询开始) private Node last;//最后一个节点(为了添加开始) public void add(E e){ Node node=new Node();//创建一个节点 node.obj...原创 2018-08-01 20:29:34 · 390 阅读 · 0 评论 -
Hibernate 搭建
1.什么是hibernate框架hibernate框架是当今主流的Java持久层框架之一,由于他具有简单易学,灵活性强,扩展性强等特点,能够大大地简化程序的代码量,提高工资效率。因此受到广大开发人员的喜爱。hibernate是一个开放源代码的ORM框架,他对JDBC进行了轻量级的对象封装,使得Java开发人员可以使用面向对象的编程思想来操作数据库2.下载hibernate5http原创 2017-12-17 22:08:36 · 168 阅读 · 0 评论 -
Solr集群搭建即SolrCloud
SolrCloud是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用,solrcloud。当一个系统的索引数据量少的时候不需要,当索引量大时搜索请求并发很高,这时需要。SlorCloud是基于Slor和Zookeeper的分布式搜索方案,它的主要思想是使用zookeeper作为集群的配置信息中心。集中式的配置信息,自动容错,近实时搜索,查询时自动负载均衡 cp -r ...原创 2018-06-08 20:34:21 · 231 阅读 · 0 评论 -
ngnix安装及使用
nginx这是一款高性能的http服务器,反向代理服务器及电子邮件代理服务器,支持5万并发连接,并且cpu,内存等资源消耗非常低,运行非常稳定。1.http服务器,是一个http服务可以独立提供http服务,可以做网页静态服务器2.虚拟主机,可以实现在一台服务器虚拟出多个网站,例如个人网站使用d虚拟主机3.反向代理,负载均衡,当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台...原创 2018-06-01 20:06:03 · 437 阅读 · 0 评论 -
Solr介绍及使用
1.什么是SolrSolr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。 Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field...原创 2018-05-29 17:28:51 · 624 阅读 · 2 评论 -
springmvc知识点
异常处理器:CustomerExceptionResolver.java类:自定义异常类public class CustomerExceptionResolver implements HandlerExceptionResolver{ @Override public ModelAndView resolveException(HttpServletRequest request, Ht...原创 2018-05-24 16:14:52 · 334 阅读 · 0 评论 -
springmvc参数绑定
web.xml中配置解决post提交乱码问题<!-- 处理post提交乱码问题 --> <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharaterEncodingFilter</f...原创 2018-05-24 16:08:37 · 128 阅读 · 0 评论 -
java设计模式--装饰模式
1.什么是装饰模式?动态地给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。装饰模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能,通常给对象添加功能,要么直接修改对象添加相应的功能,要么派生对应的子类来扩展,抑或是使用对象组合的方式。显然,直接修改对应的类这种方式并不可取,在面向对象的设计中,我们应该尽量使用对象组合,而不是对象继承来扩...原创 2018-08-02 16:01:11 · 231 阅读 · 0 评论 -
整理过的java面试题
1. css和div 开发的优势?优点:1)div+css,这个布局中,div承载的是内容,而css承载的是样式。内容和样式的分离。2)搜索引擎亲和力(快速找到需要的数据,而不是像在table中一层层的查找) 重构页面的方便性(换皮肤如blog) 缺点:开发效率低2. 谈谈页面间的参数传递有哪些方式 ?通过请求作用域request,session,通过内部转发携带参数,在j...原创 2018-08-14 20:28:40 · 289 阅读 · 0 评论 -
纯手写ORM框架
1.首先定义一个实体类Bookpublic class Book { private Integer bookId; private String bookName; private String bookAuthor; private BigDecimal bookPrice; private Date bookDate;//省略set/get方法}2.写一个数据库通用工...原创 2018-08-13 20:32:56 · 2180 阅读 · 0 评论 -
lambda表达式
List<Integer> prizeIds = fissionGetLogs.stream() .map(FissionGetLogEntity::getPrizeId) .collect(Collectors.toList()); // 获取奖品中的优惠券id List<String> couponsList = prizeIds.strea...原创 2019-04-16 09:46:52 · 127 阅读 · 0 评论 -
Validator校验器
1.逻辑验证工具构建public class ValidatorBuilderFactory { public ValidatorBinder create() { return create(null); } public ValidatorBinder create(Object target) { return new ValidatorBinder(target);...原创 2019-04-08 13:37:59 · 596 阅读 · 0 评论 -
camel路由
camel路由需要注意的点:外面必须加上<choice>标签,否则不能根据条件选择when还是otherwise<choice> <when> </when> <otherwise> </otherwise></choice><routes xml...原创 2019-04-02 09:47:53 · 440 阅读 · 0 评论 -
DateTime相关方法
1.获取上个月的最后一天public static DateTime getLastDayOfPreviousMonth(DateTime datetime) { DateTime firstDayOfMonth = datetime.withDayOfMonth(1); return minusDays(firstDayOfMonth, 1); }2.获取上个月最后一天 ...原创 2019-03-27 09:38:47 · 703 阅读 · 0 评论 -
springboot读取配置文件中的内容
1.配置文件:wechat.config是前缀wechat.config.bgUrlPrefix=/Users/miaolei/Desktop/wechat.config.headImageUrlPrefix=/Users/miaolei/Desktop/wechat.config.inviteContent=wechat.config.outUrlPrefix=/Users/miao...原创 2019-03-22 09:55:18 · 880 阅读 · 0 评论 -
上传素材到微信服务器获得mediaid通过客服消息发送
1.上传素材拼接的URL,包含token以及类型String url = String.format("%s%s?%s=%s&%s=%s", sdkApiContext.getDomain(), WeChatApiUrlDef.UPLOAD_MEDIA, WeChatApiAuthDef.ACCESS_TOKEN, sdkApiContext.getAccess...原创 2019-03-21 13:33:14 · 1668 阅读 · 0 评论 -
适配器模式
我们有一个 MediaPlayer 接口和一个实现了 MediaPlayer 接口的实体类 AudioPlayer。默认情况下,AudioPlayer 可以播放 mp3 格式的音频文件。我们还有另一个接口 AdvancedMediaPlayer 和实现了 AdvancedMediaPlayer 接口的实体类。该类可以播放 vlc 和 mp4 格式的文件。我们想要让 AudioPlayer ...原创 2018-09-16 21:42:06 · 202 阅读 · 0 评论 -
第一个Eureka程序
服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现。服务注册:在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心登记自己提供的服务,讲主机与端口号、版本号、通信协议等一些附加信息告知注册中,注册中心按服务名分类租住服务清单。服务发现:由于在服务治理框架下运作,服务间的调用不在通过制定具体的实例地址来实现,而是通过向服务名发起请求调用发现...原创 2018-09-09 14:51:53 · 210 阅读 · 0 评论 -
redis集群搭建
架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护...原创 2018-06-03 21:49:51 · 671 阅读 · 0 评论