自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 用Java实现冒泡排序

所谓的冒泡排序,可以理解为一个有一堆数字,大小不一,然后先让第一个和第二个进行比较,如果第一个比第二个大,则把第一个的位置更改为第二个,然后原先的第二个更改为第一个,然后再让第二个和第三个比较,依次类推。。另外之前已经排序好的就不进行比较了,因为在第一轮的比较中,它实际上已经找到了本次数字中最大的一个。简单说明:第一次冒泡,先让4和5进行比较,此时,5是大于4的,位置不用交换,然后让5和6进行比较,此时6是大于5的,也不用交换位置,再来6和3进行交换,此时6是大于3的,于是将6和3的位置进行互换,也就是第

2021-03-07 18:20:28 174 1

原创 Java实现水仙花数简单代码

//代码如下import java.util.*;public class ShuiXianHua { public static void main(String[] args) { System.out.println("判断水仙花数"); int i, j,k = 0; //i 是个位, j是十位,k是百位 Scanner reader = new Scanner(System.in); S

2021-03-07 18:18:37 5795

转载 ConcurrentHashMap源码分析

CuncurrentHashMap通过分析Hashtable就知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。有些方法需要跨段,比如s

2021-02-28 18:59:22 107

原创 HashMap源码解析

本文先说说HashMap的结构层面HashMap的数据结构是哈希表,我们都知道数组的特点是:寻址容易,插入删除困难。链表的特点是寻址困难,插入删除容易。HashMap的哈希表实现方式,折中了数组以及链表各自的优点。上图就是HashMap的数据结构,数组+链表的形式。由上图为例,上图的数组是一个长度为8的数组,每个元素存储的是链表的头结点。链表部分存储的就是HashMap的元素,一个个元素就是一个个的实体Entry(包括key,value,next)。数组逻辑结构部分:那么HashMap的元素的存入

2021-02-28 18:52:10 92

转载 Dubbo系统中使用熔断仪表盘

1、增加依赖很显然,想使用熔断仪表盘,仍要引入Spring Cloud的相关依赖,尤其是hystrix依赖,具体如下: <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR8</spring-cloud.version> </properties> <!--熔断依赖--

2021-02-21 21:18:39 145

转载 Git版本管理工具实战教程

1、Git特点1)、协同修改多人并行不悖的修改服务器端的同一个文件。2)、数据备份不仅保存目录和文件的当前状态,还能够保存每一个文件提交过的历史记录。3)、版本管理在保存每个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面SVN采用的是增量式管理的方式,而Git采取了文件系统快照的方式。4)、权限控制对团队中参与开发的人员进行权限控制。对团队外开发者贡献的代码进行审核,这个功能是Git 独有。5)、历史记录查看修改人、修改时间、修改内容、日志信息。将本地

2021-02-21 21:12:12 143

原创 log4j连接ekl

log4j插件配置host以及port就能监听localhost上的4560端口的log4j消息。此时,如果你的log4j向本地主机以SocketAppender的方式输出日志消息,Logstash就能捕获到,参考的log4j配置文件如下:<?xml version="1.0" encoding= "UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns

2021-02-07 16:23:10 96

原创 高并发和多线程的关系

什么是高并发?高并发(High Concurrency)是一种系统运行过程中遇到的一种“短时间内遇到大量操作请求”的情况,主要发生在web系统集中大量访问收到大量请求(例如:12306的抢票情况;天猫双十一活动)。该情况的发生会导致系统在这段时间内执行大量操作,例如对资源的请求,数据库的操作等。高并发的处理指标?高并发相关常用的一些指标有:1.响应时间(Response Time)响应时间:系统对请求做出响应的时间。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间2.

2021-02-07 10:35:11 141

原创 logstash简介

简介Elasticsearch是当前主流的分布式大数据存储和搜索引擎,可以为用户提供强大的全文本检索能力,广泛应用于日志检索,全站搜索等领域。Logstash作为Elasicsearch常用的实时数据采集引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源,是Elastic Stack 的重要组成部分。本文从Logstash的工作原理,使用示例,部署方式及性能调优等方面入手,为大家提供一个快速入门Logstash的方式。Logstash工作原理Logstash事件处理管道有三个阶段:

2021-01-31 19:52:55 445

原创 微服务拆分理论

服务拆分的前提说到微服务,服务拆分是绕不过去的话题,但是微服务不是说拆就能拆的,有很多的前提条件,需要完成前面几节所论述的部分。首先要有一个持续集成的平台,使得服务在拆分的过程中,功能的一致性,这种一致性不能通过人的经验来,而需要经过大量的回归测试集,并且持续的拆分,持续的演进,持续的集成,从而保证系统时刻处于可以验证交付的状态,而非闭门拆分一段时间,最终谁也不知道功能最终究竟有没有bug,因而需要另外一个月的时间专门修改bug。其次在接入层,API和UI要动静分离,API由API网关统一的管理,这样

2021-01-31 19:48:53 345 1

原创 Nacos源码分析(二)

服务发现如何做心跳检查方式一tcp创建连接,500ms后看连接是否创建成功public static final int CONNECT_TIMEOUT_MS = 500;@Override public Void call() { long waited = System.currentTimeMillis() - beat.getStartTime(); if (waited > MAX_WAIT_TIME_MILLISEC

2021-01-23 11:07:29 137

原创 nacos源码解析(一)

nacos源码解析服务发现部分:1.nacos自己实现了一个简单的一致性算法(raft),就是说不在依赖于Key-Value存储系统(etcd),也不依赖于mysql或者Redis这种存储的东西,nacos自己就能搞定。2.变化的通知push采用的是udp,不好地方就是sdk要开一个udp端口,感觉其实也还好吧。4.代码的扩展性比较好,健康检查能方便的支持tcp,http和mysql。配置中心部分:1、存储还是mysql,不过判断数据是否有变化是根据updateTime,定时根据updateTi

2021-01-23 10:17:59 860

原创 base64转字符串

import java.io.IOException;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class Base64String{ /**base64字符串与普通字符串之间的转换 * @param args * @throws IOException */ public static void main(String[] args) throws IOException { .

2021-01-17 17:11:04 956

原创 springcloud bus简介(二)

一、原理简介Spring Cloud Bus 使用轻量级的消息代理来连接微服务架构中的各个服务,可以将其用于广播状态更改(例如配置中心配置更改)或其他管理指令通常会使用消息代理来构建一个主题,然后把微服务架构中的所有服务都连接到这个主题上去,当我们向该主题发送消息时,所有订阅该主题的服务都会收到消息并进行消费。使用 Spring Cloud Bus 可以方便地构建起这套机制,所以 Spring Cloud Bus 又被称为消息总线。Spring Cloud Bus 配合 Spring Cloud C

2021-01-17 17:07:12 169

原创 SpringCloud bus简单配置

配置服务端#Copytensquare_config配置依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <dependency> <gro

2021-01-10 17:13:33 98

原创 spring cloud监控配置

pom.xml中添加依赖引入监控相关的jar<!-- 监控 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>actuator内置常规的endpoint(端点),通过springmvc的方式暴露出来

2021-01-10 17:09:38 154

原创 使用Redisson实现分布式锁

1. 可重入锁(Reentrant Lock)Redisson的分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口,同时还支持自动过期解锁。public void testReentrantLock(RedissonClient redisson){ RLock lock = redisson.getLock("anyLock"); try{ // 1. 最常见的使用方法

2021-01-03 20:46:46 121

原创 zookeeper实现分布式锁

1、分布式锁是什么?分布式锁是控制分布式系统之间同步访问共享资源的一种方式。2、为什么需要分布式锁?在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要互斥来防止彼此干扰来保证一致性,在这种情况下,便需要使用到分布式锁。3、乐观锁和悲观锁含义悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它

2021-01-03 20:41:10 64

原创 SpringCloud简介

1、简介微服务架构集大成者,云计算最佳业务实践。Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring Cloud在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在目前五花八门的分布式解决方案中提供了标准化的、全栈式的技术方案,意义可能会堪比当年Servl

2020-12-25 23:13:18 167 4

转载 Mybatis Plus分页及自定义SQL语句

**1、数据库的连接配置首先我们要配置数据的连接等相关信息,因此我们需要在application.properties文件中,增加如下定义:##spring.application.name=server-page-helperserver.port=8000## Mybitsspring.datasource.url=jdbc:mysql://localhost:3306/db_books?autoReconnect=true&useUnicode=true&charact

2020-12-25 23:06:57 1504 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除