卑微的小白
码龄8年
关注
提问 私信
  • 博客:28,487
    28,487
    总访问量
  • 24
    原创
  • 2,235,593
    排名
  • 5
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2017-07-05
博客简介:

卑微的小白

博客描述:
博主不懒,却什么都没有留下
查看详细资料
个人成就
  • 获得14次点赞
  • 内容获得3次评论
  • 获得62次收藏
  • 代码片获得208次分享
创作历程
  • 16篇
    2020年
  • 9篇
    2019年
成就勋章
TA的专栏
  • 并发
    1篇
  • RabbitMQ
    3篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 服务器
    linux
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java并发编程(JUC)(一)

今天深度学习了一下java并发编程的相关知识,在这里给大家做一个分享,可能理解不对的地方请大家评论指导,谢谢大家!首先,由于进程我线程是两个基本的执行单元,在了解并发编程之前我们需要了解一些关于进程和线程的知识(这里只是做大概描述,需要深度了解进程和线程的可查看网上其他教程以及相关书籍)。什么是进程和线程?进程通俗一点讲,进程就是系统中正在运行的程序。线程是操作系统能够进行运算调度的独立单位。进程和线程之间的关系进程是系统进行资源分配和调度的一个独立单位。而线程是进程的一个实体,是CPU
原创
发布博客 2020.11.24 ·
216 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringCloud Ribbon(负载均衡)

1、SpringCloud Ribbon 是一个客户端的负载均衡组件,主要提供负载均衡算法。2、Ribbon中负载均衡算法实现:AbstractLoadBalancerRule:负载均衡策略的抽象类,在该抽象类中定义了负载均衡器ILoadBalancer对象,该对象能够在具体实现选择服务策略时,获取到一些负载均衡器中维护的信息来作为分配依据,并以此设计一些算法来实现针对特定场景的高效策略。RandomRule:随机策略,从服务实例清单中随机选择一个服务实例。获得可用实例列表upList和所有实例列.
原创
发布博客 2020.11.09 ·
519 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Springcloud 注册中心Eureka(注册中心)

Eureka是Netflix的五大组件之一,用于服务注册与发现。SpringCloud将其集成在spring-cloud-netflix中。Eureka包含两个组件:Eureka Server 和Eureka Client。Eureka Server提供服务注册,各个服务启动之后会中Eureka Server进行服务注册,这样Eureka Server中的服务列表会存储所有可用的服务信息,服务节点可以通过管理界面直观看到。Eureka Client是基于服务提供者的一个客户端,服务提供者将其服务信息注
原创
发布博客 2020.11.09 ·
314 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Mysql索引

索引的概念索引实际上是一种特殊的文件,在InnoDB中,索引是数据表空间的一部分。它里面存放着表中记录的指针,通俗点讲索引好比一本书的目录,方便快速查询。索引分为聚簇索引和非聚簇索引,聚簇索引是按照数据存放位置为顺序,非聚簇索引则不然。聚簇索引可以提高多行检索的效率,非聚簇索引对于单行检索效率较高。注意:索引以实际文件存在,如果索引创建过多,对于数据的更新影响较大,维护成本较高。对于需要进场插入和删除的数据表就没有必要创建索引,对于较小的表,也没必要创建索引。索引的分类1、普通索引索引的创建:
原创
发布博客 2020.11.06 ·
132 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis缓存穿透与雪崩

缓存穿透概念缓存穿透的概念其实很简单,就是用户想要查询一个数据,当缓存里面没有这个数据的时候,就会去数据库中查询,如果数据库也没有就查询失败。在高并发的情况下,大量请求到缓存中查询,没有查到数据,就会去数据库中查询,导致服务器压力非常大,这就相当于出现了缓存穿透。解决方案1、布隆过滤器布隆过滤器是是一种数据结构,将所有可能查询的key放入布隆过滤器中,在用户请求到达缓存之前,用户请求查询的key在布隆滤器中进行筛选,如果不存在则直接丢弃。2、缓存空对象用户请求查询的数据在缓存以及数据库中都不
原创
发布博客 2020.11.03 ·
99 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis持久化

Redis是内存数据库,如果不将数据保存到磁盘,服务器进程一旦结束,所以数据库信息将丢失,所以Redis提供了持久化功能。RDB(Redis DataBase)在指定的时间内将内存中的数据集快照写入磁盘内,它恢复时时直接将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化操作,会先将数据写到一个临时文件中,待持久化过程都结束,再用这个临时文件替换上次持久化好的文件。整个过程中主进程不进行仍和IO操作,确保了极高的性能。如果需要进行大规模的数据恢复,且对于数据恢复的完整性不是
原创
发布博客 2020.11.02 ·
85 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis配置文件详解

单位# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf# Note on units: when memory size is needed, it is possibl.
原创
发布博客 2020.10.30 ·
138 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot整合Redis

1、导入依赖(Redis整合在SpringData中)<!--springboot2.x之后,不在使用Jedis,而是替换成了lettuce Jedis:采用的是直连的方式,多个线程操作的话,存在线程安全问题,可以采用jedis pool连接池来避免线程安全问题 lettuc:采用netty,实例可以在多个线程中共享,不存在线程安全问题--><dependency> <groupId>org.springframework.boot</group
原创
发布博客 2020.10.30 ·
274 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Redis事物

Redis事物本质:一组命令的集合!一个事物中的所有命令会被序列化,在事物的执行过程中,会按照顺序执行。(一次性,顺序性,排他性)Redis支持事物Redis单条命令不支持原子性Redis没有隔离级别的概念正常执行事物127.0.0.1:6379> MULTI //开启事物OK127.0.0.1:6379> set k1 v1QUEUED127.0.0.1:6379> set k2 v2QUEUED127.0.0.1:6379> set k3 v3QU
原创
发布博客 2020.10.29 ·
304 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Redis三种特殊类型

Geospatial(地理位置)朋友的定位、附近的人、打车距离计算?#geoadd地理位置数据加入127.0.0.1:6379> geoadd china:city 116.40 39.90 beijing(integer) 1127.0.0.1:6379> geoadd china:city 104.06 30.65 chengdu(integer) 1127.0.0.1:6379> geoadd china:city 121.47 31.23 shanghai(inte
原创
发布博客 2020.10.29 ·
131 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis基本操作

基础知识redis默认有16个数据库select命令切换数据库dbsize命令查看数据库大小keys * 查看数据库中的所有键flushdb 清空当前数据库flushall 情况所有数据库set 设置key值get 获取对应key的valueexitsts 判断键值是否存在move 移除键值expire 设置键的过期时间ttl 查看键值剩余时间type 查看key值得类型Redis 是单线程的官方表示,redis是基于内存操作的,所以cpu不是redis的性能瓶颈,redi
原创
发布博客 2020.10.29 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RabbitMQ消息确认和renturn机制

1、消息确认机制(confirm)为了确保消息能够准确的发送到Broker中,RabbitMQ提供了消息确认机制。当生产者发送消息之后,如果Borker准确收到消息,则会返回给生产者一个应答。生产者通过接收到的应答判断消息是否成功发送。confirm机制的实现1、通过channel开启confirm机制2、在channel上添加监听器接受broker返回的应答信息//开启confirm机制channel.confirmSelect();//添加一个确认监听 channel.addConf
原创
发布博客 2020.10.27 ·
811 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RabbitMQ延迟消息

RabbitMQ中没有对消息延迟进行实现,但是我们可以通过TTL以及死信路由来实现消息延迟。TTL(Time To Live 消息过期时间)如果消息一直存放在队列中没有被消费并且超过了过期时间则消息将变成死信(Dead Message),后续将无法被消费。消息成为死信的几种情况:1、消息被Consumer拒收,并且reject方法里的参数requeue为false,则消息不会被重新放回队列,不会被其他消费者消费。2、消息以及队列的过期时间到了3、队列的长度满了,排在前面的消息会被丢弃或者扔到死信
原创
发布博客 2020.10.27 ·
1778 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

RabbitMQ的工作模式

1、简单模式消息生产者将消息方式到队列中,消费者监听队列,如果队列中有消息,则取出消费,在消费者取出消息后队列将自动删除该消息。2、工作模式消息生产者将消息发送到队列中,一个队列有多个消费者监听,则多个消费者之间存在着竞争关系,消息会会被消费者谁先拿到谁先消费。高并发情况下,会产生某条消息会被多个消费者共同使用,这时可以添加一个开关(syncronize与同步锁)保证每个消息只被一个消费者消费。3、发布/订阅模式x表示rabbitmq的内部组件交换机,队列绑定到交换机上,消息发送到交换机中,
原创
发布博客 2020.10.27 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java操作RabbitMQ

1、创建虚拟主机、交换机、队列RabbitMQ提供了自己的管理界面,可以通过管理界面来完成VirtualHost、Exchange、queue的创建。1.1创建VirtualHost1.2创建交换机创建交换机的时候需要指定虚拟主机以及交换机的类型(direct(路由模式)、fanout(广播)、headers、topic)direct:Exchange通过消息携带的路由键来将消息分发到对应的队列中fanout:Exchange将消息分发到所有绑定到交换机的队列中headers:Exchang
原创
发布博客 2020.10.27 ·
19109 阅读 ·
5 点赞 ·
1 评论 ·
40 收藏

消息队列的应用场景

1、解耦(为面向服务的架构(SOA)提供最终一致性)场景说明:用户下单后,订单需要通知库存系统。传统的做法是订单系统直接调用库存系统的接口。传统模式的缺点:1.假如库存系统无法访问,则订单系统访问库存系统失败,从而导致订单失败2.订单系统与库存系统耦合引入消息队列订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户下单成功库存系统:订阅下单的消息,采用拉去/推送的方式获取下单信息。库存系统根据下单信息,进行库存操作假如:在下单时,库存系统不能正常使用,也不影响正常下
转载
发布博客 2020.10.27 ·
205 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java Object类

ObjectObject是所有类的超类,是Java语言中唯一一个没有父类的类。一个类可以不是Object的直接子类,但一定是Object类的子类,因为Java中的没一个类都是继承Object类的。Object类的常用方法equals: 比较两个对象的值是否相等(比较地址)hashCode:该方法返回对象的哈希码值,哈希码是一个代表对象的十六进制整数,不同的对象哈希码不相同toSt...
原创
发布博客 2019.08.25 ·
141 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

简述String、StringBuffer、StringBuilder

StringString是Java中的一种引用数据类型,是不可变字符串,因为在Java中String类是final类型的。在程序任何地方,相同字符串字面常量都是同一个对象。String重写了equals方法,用于比较两个字符串内容是否相等优点:不可改变,线程安全缺点:当字符串需要改变时,会创建新的字符串,会消耗一定的内存空间使用场景:少量的字符串操作StringBuffer可变字...
原创
发布博客 2019.08.25 ·
201 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java 异常

异常什么是异常?程序在运行期间出现的错误称为异常,为不是在编译时出现的错误。异常类的继承关系检查性异常若系统在运行时可能产生该类异常,则必须写出相应的处理代码,否则无法通过编译 非RunTimeException异常非检查性异常若系统运行期间肯可能发生该类异常,则不必在程序中声明对该类异常的声明处理,就可以编译执行。RunTimeException:运行时异常异常处理机...
原创
发布博客 2019.08.24 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

浅谈Java内部类

内部类定义在类中的类称为内部类特点可以是任何的访问修饰符内部内中不能又静态信息内部类也是类,可以继承,重写,重载,this,super都能用外部内可以在自身类中创建内部类对象来访问内部类内部类可以直接使用外部类的任何属性和方法,如果属性和方法发生冲突,外部类.this.属性或方法静态内部类内部可以包含任何信息静态内部类的方法只能访问外部类的static关联的信息创建内部类...
原创
发布博客 2019.08.24 ·
158 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多