mengxiang.com
- 浏览: 75395 次
- 性别:
- 来自: 青岛
-
社区版块
- ( 0)
- ( 0)
- ( 0)
存档分类
- ( 5)
- ( 2)
- ( 1)
最新评论
文章列表
- 博客分类:
redis是一个高性能的key-value数据库,支持消息提送功能,可以当做一个轻量级的队列服务器使用。
redis只是提供一个高性能的、原子操作内存键值队,具有高速访问能力,虽然可以做消息队列的存储,但不具备消息队列的任何功能和逻辑。
redis2.0开始支持发布/订阅指令,发布者调用redis的pushlish方法往特定的channel发送消息,订阅者在初始化的时候订阅该channel,有消息就会立即接收。
redis消息推送多用于实时性较高的消息推送,并不保证可靠。mq保证可靠但有一些延迟。
redis发布订阅除了表示不同的topic外,并不支持分组。mq发布消息,多个订阅者可 ...
- 2021-03-25 17:52
- 浏览 1741
- 分类:编程语言
- 博客分类:
1.使用hashtable
map hashtable=new hashtable<>();
hashtable底层是数组和链表的形式,方法都是用synchronized修饰的,因此是线程安全的,但执行效率比较低。
2.使用java.util.concurrent.concurrenthashmap
map concurrenthashmap=new concurrenthashmap<>();
concurrenthashmap结构图:
concurrentha ...
- 2021-03-25 14:59
- 浏览 389
- 分类:编程语言
- 博客分类:
1.继承thread类
public class demo extends thread {
public void run() {
try {
system.out.println("thread");
} catch(exception e) {
e.printstacktrace();
}
}
}
public static void main(string[] a ...
- 2021-03-25 10:23
- 浏览 146
- 分类:编程语言
- 博客分类:
动态代理指为一个目标对象提供一个代理对象,并由代理对象控制对目标对象的引用。使用代理对象,是为了在不修改目标对象的基础上,增强目标对象的业务逻辑。通过动态代理可以无侵入的为代码进行增强。
动态代理应用非常广泛,比如spring中的aop使用动态代理增加,动态代理主要有jdk和cglib两种。
jdk实现动态代理由两个重要部分组成,分别是proxy、invocationhandler。
proxy是所有动态代理的父类,提供了静态方法来创建动态代理的class对象和实例。
invocationhandler,每个动态代理实例都有一个关联的invocationhandler,在代理实例上调 ...
- 2021-03-24 16:48
- 浏览 86
- 分类:编程语言
- 博客分类:
线程池的有点1.降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。2.提高响应速度,任务可以不需要等线程创建就能立即执行。3.提高线程可管理性,防止无限制创建导致的消耗系统资源、降低系统稳定性。使用线程池可以进行统一的分配、调优和监控。4.使用线程池可以有效控制最大并发线程数,提高资源利用率,避免过多资源竞争,避免阻塞。5.线程池可以提供定时执行、单线程执行、并发控制等,操作线程方便。6.new thread不能重复使用,new 相当于在内存中单独开辟一个内存让线程运行,需要释放线程和新建线程,性能差。使用线程池,可以减少对象的创建、消亡的开销。
线程池简介
jav ...
- 2021-03-22 14:51
- 浏览 138
- 分类:编程语言
- 博客分类:
设置:
${test.resolve(execution,"张三,李四")}
需要提供java方法:
@component
public class test {
/**
* 会签时,动态获取审批人
* @param execution
* @return
*/
public list resolve(delegateexecution execution, string value) {
system.out.println(val ...
- 2021-01-08 17:26
- 浏览 201
- 分类:开源软件
- 博客分类:
现象:delete子查询非常慢,但select非常快,如下:
select * from test1 where uid in (select uid from test2)-- 非常快
delete from test1 where uid in (select uid from test2)--非常慢
改成join表就很快了
delete t1 from test1 t1 inner join test2 t2 on t1.uid=t2.uid
- 2021-01-08 16:45
- 浏览 404
- 分类:数据库
- 博客分类:
超时,默认1秒;
修改请求超时时长:
application.yml:
hystrix: command: default: execution: isolation: thread: timeoutinmilliseconds: 3000
- 2020-12-29 17:22
- 浏览 1422
- 分类:编程语言
- 博客分类:
1.集群定义:集群是指用一组服务器运行一到多个应用程序。
集群可以简单到只有两台服务器,在他们之间配置故障切换,如果一台服务器失效,由另一台服务器接管应用程序的处理。集群也可以用来运行复杂的分布式系统:应用程序将数据分割成多个可管理的部分,每个部分都可以独立进行处理。如果一台服务器失效,其他服务器不会受影响,失效节点的进程被重新分配到集群中的其他节点。
2.集群的分类
故障切换集群、分布式数据库系统故障切换集群又可以分为两类:(主动/被动集群、主动/主动集群)
主动/被动集群:任何时候都只有一台服务器拥有负载,辅助服务器以被动模式运行,时刻等待着主动服务器停机进而接管主服务器,它 ...
- 2020-09-15 17:42
- 浏览 247
- 分类:数据库
- 博客分类:
java数据流分为两种:字节流(byte)和字符流(character)。
字节流:以8位为单位对二进制数据进行操作,这些类都是inputstream和outputstream的子类。
inputstream 所有字节输入流的父类,定义了基础的读取方法。
outputstream 所有字节 ...
- 2020-09-15 17:17
- 浏览 161
- 分类:编程语言
- 博客分类:
业务场景:项目拆分微服务,恰巧鄙人负责几个基础的服务,各种对接其他服务。到后期运维,接各种锅:我调用你接口了,你那数据不对。我传递是这个参数,你那处理的有问题......。只好加上日志记录,业务场景就是:防止背锅!
1.定义注解
package com.haier.hwork.qwrgqk.business.annotation;
import java.lang.annotation.*;
@target(elementtype.method)
@retention(retentionpolicy.runtime)
@documented
public @int ...
- 2020-09-09 17:23
- 浏览 954
- 分类:编程语言
- 博客分类:
mq
1.消息队列可以简单理解为:把要传输的数据放在队列中。用来降低web服务器因发送消息而导致的负载和延时问题。
2.为什么用mq(mq优点):解耦、异步、削峰/限流、高可用、防数据丢失。
1)解耦举例:订单系统下单,需要� ...
- 2020-09-01 17:56
- 浏览 102
- 分类:开源软件
- 博客分类:
pom:
org.springframework.boot
spring-boot-starter-amqp
yml:
spring:
rabbitmq:
host: ip
port: 5672
virtual-host: /
username: 账号
password: 密码
...
- 2020-09-01 15:48
- 浏览 170
- 分类:编程语言
- 博客分类:
error starting applicationcontext. to display the conditions report re-run your application with 'debug' enabled.
2020-08-27 11:37:10.017 error 22436 --- [ restartedmain] o.s.boot.springapplication : application run failed
org.springframework.context.applicationcontextexceptio ...
- 2020-08-27 14:27
- 浏览 521
- 分类:开源软件
- 博客分类:
springboot项目,上传文件,报错:the temporary upload location [/tmp/tomcat.4519862041770988807.8082/work/tomcat/localhost/root] is not valid
原因:springboot上传文件,或默认创建/tmp/tomcat.*文件夹,上传要先转换成临时文件写入这个文件夹下,这个文件夹如果长时间没有访问会被系统自动删除,大概10天。
如果长时间没有上传文件,那超过10天上传,可能会找不到这个文件夹。
解决:
1.重启项目,会重新创建文件夹。
2.yml中添加配置,指定路径,serv ...
- 2020-08-26 18:15
- 浏览 224
- 分类:编程语言
« 上一页 1 …