最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。原代码 <insert id="insertArticle" parameterType="Article">insert into article(title,create_date,content,name)values(#{articleTitle},#{articleCreateDate},#{articleConten
普通HTML标签写法<a class="link" href="https://github.com/facebook/react">React<a>在js中手动生成相同dom的写法var a = document.createElement('a')a.setAttribute('class', 'link')a.setAttribute('href', 'https://github.com/facebook/react')a.appendChild(documen
9 TTL机制9.1 什么是TTLTTL(Time To Live),即生存时间RabbitMQ支持消息的过期时间,在消息发送时可以进行指定RabbitMQ支持为每个队列设置消息的超时时间,从消息入队列开始计算,只要超过了队列的超时时间配置,那么消息会被自动清除9.2 管控台演示新增一个Q新增一个交换机绑定Q中也显示了相关的绑定信息发送消息10s后,消息被清除为0...
10 死信队列机制10.1 什么是死信队列DLX - 死信队列(dead-letter-exchange)利用DLX,当消息在一个队列中变成死信 (dead message) 之后,它能被重新publish到另一个Exchange中,这个Exchange就是DLX.10.2 死信队列的产生场景消息被拒绝(basic.reject / basic.nack),并且requeue = false消息因TTL过期队列达到最大长度10.3 死信的处理过程DLX亦为一个普通的Exchange
每一个整合spring框架的项目中,总是不可避免地要在web.xml中加入这样一段配置。<!-- Spring配置文件开始 --><context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-config.xml </param-value></co.
完全同步的AbstractRefreshableApplicationContext.getBeanFactory,可能导致大量线程阻塞:在运行具有大量CPU 核的Tomcat的大型服务器上,由于同步块,在getBeanFactory()中看到大量线程阻塞。这是因为我们使用XmlWebApplicationContext,并且在Web请求期间每次查找bean时都需要bean工厂。在Web应用程序之外,我们还使用GenericXmlApplicationContext拥有另一个上下文,而这个上下文没.
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的 Circle 对象。介绍意图:运用共享技术有效地支持大量细粒度的对象。主要解决:在有大量对象时,有可能会
1 定义将抽象部分与它的实现部分分离,使之任意删减,而无需受其它约束2 结构Abstraction: 定义抽象类的接口,维护一个指向Implementor类型对象的指针,将Client的请求转发给它的Implementor.RefinedAbstraction扩充由Abstraction定义的接口.定义了基于基本操作的较高层次的操作RefinedAbstraction: 扩充由Abstraction定义的接口而得的 抽象类Implementor: 定义实现类的接口.仅提供基本操作Concr
某个资源的唯一地址通过获取java.net.URL实例获取协议名、资源名路径等信息
使用git时,push到远端后发现commit了多余的文件,或者希望能够回退到以前的版本。先在本地回退到相应的版本:git reset --hard <版本号>使用 --hard 参数会抛弃当前工作区的修改使用 --soft 参数的话会回退到之前的版本,但是保留当前工作区的修改,可以重新提交如果此时使用命令:git push origin <分支名>会提示本地的版本落后于远端的版本;为了覆盖掉远端的版本信息,使远端的仓库也回退到相应的版本,需要加上参数–force
Mock 是单元测试中常见的一种技术,模拟在应用中不容易构造或复杂的对象,从而把测试与测试边界以外的对象隔离。编写自定义的 Mock 对象需要额外编码工作,同时也可能引入错误。EasyMock 提供了根据指定接口动态构建 Mock 对象的方法,避免了手工编写 Mock 对象。本文将展示如何使用 EasyMock 进行单元测试,并对其原理进行分析。Mock 对象与 EasyMock 简介单元测试与 Mock 方法单元测试是对应用中的某一个模块的功能进行验证。在单元测试中,我们常遇到的问题是应用
背景ssh连接至云服务器时,提示以下错误:原因是第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中。可使用以下指令查看:ssh-keygen -l -f ~/.ssh/known_hosts由于服务器重新安装系统了,所以会出现以上错误。解决方案ssh-keygen -R 服务器端的ip地址重新连线,出现以下提示:输入yes确认即可连线成功。...
最近想使用云服务器来部署自己的web应用。利用yum install nginx安装了nginx后,用命令service nginx start 启动时,出现错误如下找到nginx的配置文件:vim /etc/nginx/conf.d/default.conf## The default server#server { listen 80 default_server; listen [::]:80 default_server; ser
#目录#安装(CentOS6.8)下载、解压并编译cd redis-2.8.0make##编译好的二进制文件在src目录里。运行Rediscd src启动占用窗口启动在后台,不占用窗口##你可以使用内置的客户端与Redis互动:$ src/redis-cliredis> set foo barOKredis> get foo"bar"Redis单实例配置redis.conf配置文件单实例服务端启动redis-serverredis-serv
sendfile on;sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件对普通应用,必须设为on如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptimetcp_nopush on;数据包累积到一定大小后再发送。允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用。keepalive_timeout 60;客户端连接服务器的超时时间。.
下载安装yum install nginx安装成功后默认的网站目录为: /usr/share/nginx/html默认的配置文件为:/etc/nginx/nginx.conf自定义配置文件目录为: /etc/nginx/conf.d/启动 nginx验证启动成功输入云服务器的公网 ip 即可看到欢迎页,80 端口默认的不需要显式添加是什么是一款轻量级Web服务器,也是一款反向代理服务器能干什么可直接支持 rails和php程序可作为http反向代理服务器
现在互联网应用(网站/App)的整体流程,可概括如图用户请求从界面(浏览器/App)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。如图1所示,缓存的使用可以出现在1~4的各个环节中,每个环节的缓存方案与使用各有特点。1 缓存特征缓存是一个数据模型对象,有它的一些特征1.1 命中率命中率=返回正确结果数/请求缓存次数命中率问题是缓存中的一个非常重要的问题,它是衡量缓存有效性的重要指标。命中率越高,表明缓存的使用率越高。1.2 最大元素(或最大空间)缓存中可以存放
有时想编写只有静态方法和静态字段的类。这种类很不好,因为有些人滥用在OOP 语言编写面向过程的程序,但确有用途。可用 java.lang.Math 或 java.util.Arrays 这种类,把基本类型的值或数组类型的方法组织起来。还可以用于对以 java.util.Collections 的方式,把实现特定接口的对象上的静态方法组织起来。( Java 8,可以将这些方法放入接口中,假设是你自己编写的可以修改)。最后,这些类还可把 final 类上的方法组织,因为不能将它们放在子类。这样的工具类不是
(1)方法1:git fetch origin(2)方法2(代码还需要):git push origin(3)方法3 (代码不需要):git reset --hard origin/$branch参考:https://blog.csdn.net/Thousa_Ho/article/details/73350703https://stackoverflow.com/questions/16288176/your-branch-is-ahead-of-origin-master-by-3-commit
见名知义,消息队列主要就是用来发送和接收处理消息,但它的作用可不仅解决应用间通信问题。1 消息队列的现实由来在工厂我们随处可见各种传送带,很多道工序都替代了人工一次次极大耗费劳动力的往返运动,而把一套业务分成若干部分,各流程之间传输所需材料即可。用编程思想,我们可以认为是传送带的发明解决了上下游工序间的“通信”问题。传送带的使用着实提高社会必要劳动生产时间,让人类工业社会效率显著提升。但就真的百利无一害了吗?我们会发现每道工序生产速度并不相同。有时上游的材料刚传送过来,工人可能正在处理上批材料,没
保证消息的百分百投递成功2.1 Producer 的可靠性投递2.1.1 要求保证消息的成功发出保证MQ节点的成功接收发送端收到MQ节点(Broker) 确认应答完善的消息补偿机制在实际生产中,很难保障前三点的完全可靠,比如在极端的环境中,生产者发送消息失败了,发送端在接受确认应答时突然发生网络闪断等等情况,很难保障可靠性投递,所以就需要有第四点完善的消息补偿机制。2.1.2 解决方案2.1.2.1 方案一:消息信心落库,对消息状态进行打标(常见方案)将消息持久化到DB并设置状.
MQ都得有消息模型,就会产生比如队列(Queue)、主题(Topic)、分区(Partition)这些名词,但是概念上却不尽相同。因为没有标准。曾经,也有一些国际组织尝试制定消息的标准,比如JMS和AMQP。但标准制定跟不上MQ演进速度,这些标准名存实亡。队列模型好的架构不是设计出来的,而是演进出来的。现代MQ的表现,也是经过十几年演进而来。最初的消息队列,就是个严格意义的队列。队列作为一种数据结构,先进先出,即消息入队出队过程,需要保证这些消息严格有序,按什么顺序写进队列,必须按照同样的.
1 MQ事务的意义“发消息”过程,往往是为通知另外一个系统更新数据,MQ的“事务”,主要解决消息生产者和消息消费者的数据一致性问题。用户在电商APP上购物时先把商品加到购物车然后几件商品一起下单最后支付完成购物流程,就可以愉快地等待收货这过程中有一个需要用到MQ步骤,订单系统创建订单后,发消息给购物车系统,将已下单的商品从购物车中删除。因为从购物车删除已下单商品这个步骤,并不是用户下单支付这个主要流程中必需的步骤,使用消息队列来异步清理购物车是更加合理的设计。对于订单系统来说,它创建订单
MQ最烦的问题就是丢消息。丢消息意味着数据丢失了,这对大部分业务是无法接受的。主流MQ都提供了完善的消息可靠性保证机制,可实现在消息传递过程中,即使网络中断或硬件故障,也能确保消息可靠传递,不会丢失。一般丢消息的原因开发者不熟悉消息队列,没有正确使用和配置消息队列。虽然不同MQ API不一样,配置也不同,但在保证消息可靠传递,实现原理是一样的。无论使用任何一种MQ,再简单看一下它的API和相关配置项,就能很快知道该如何配置消息队列,写出可靠的代码,避免消息丢失。检测消息丢失的方法用MQ最尴
示例流程网关发送消息之后,如何接收后端服务的秒杀结果,又如何给APP返回响应呢?网关接收后端服务秒杀结果,实现方式不只一种,这里给个简单方案。public class RequestHandler { // ID生成器 @Inject private IdGenerator idGenerator; // 消息队列生产者 @Inject private Producer producer; // 保存秒杀结果的Map @Inject private Map&l
能进入BAT 等一线大厂工作,是很多开发者们的目标与梦想,为帮助开发者们提升面试技能、高效通关一线互联网公司的面试,提炼总结了这份面试真题,一次整体放出送给大家。看看自己能答对多少本篇建议大家收藏、备用~【BAT 等一线互联网面试真题集锦】涵盖:开源、Java集合、JVM、NIO、Dubbo、秒杀系统、高并发、分布式、锁、redis、MySQL、Linux、hashMap、中间件等...
博客搬家牛客网啦
sudo - i 进入root模式删除网络配置文件查看ip,并复制ens33的地址根据自己的网络环境,配置网卡相关信息ping成功,可联网使用本机终端连接虚拟机...
1 下载压缩文件wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz2 解压tar -zxvf apache-maven-3.3.9-bin.tar.gz 3 配置环境变量vim ~/.bash_profile在文...
或许大家体验过抢红包,但如何对现实世界的业务场景进行抽象,形成软件系统的需求,进行建模与技术选型,这是有一套“方法论”的。因此,本章分四点:红包系统业务知识;选用的技术框架;业务建模与数据库建模;红包算法&库存超卖问题。…1 红包业务和业务模型概述1.1 红包业务场景通过移动互联网应用发红包成为了普遍娱乐现象!1.1.1 发红包场景表白、祝福等庆祝、营销、装逼、曝光、知识付费...
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号