自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 资源 (13)
  • 收藏
  • 关注

原创 垃圾收集器ParNew&CMS与底层三色标记算法

一、垃圾收集算法的基础:分代收集理论。1、标记-复制算法2、标记-清除算法两个明显的问题(1)效率问题(如果需要标记的对象太多,效率不高)(2)空间问题(标记清除后会产生大量不连续的碎片)3、标记-整理算法二、垃圾收集器1、Serial收集器(-XX:+UseSerialGC -XX:+UseSerialOldGC)Serial(串行),单线程收集器,在进行垃圾收集的时候必须暂停其它所有的工作线程(“Stop The World”),直到它收集结束。新生代

2022-04-21 17:05:09 478

原创 JVM对象创建与内存分配机制深度剖析

一、对象的创建1、类加载检查2、分配内存(1)划分内存的方法:1)指针碰撞(默认)2)空闲列表(2)解决并发问题的方法:1)CAS(compare and swap)2)本地线程分配缓冲3、初始化零值4、设置对象头对象在内存中存点布局可以分为3块领域:对象头、实例数据和对齐填充。5、执行<init>方法(程序员赋值、执行构造方法)二、对象大小与指针压缩1、什么是java对象的指针压缩从jdk1.6 update14开始,在64bit

2022-04-18 17:37:36 451

原创 java虚拟机整体结构及内存模型

操作数栈:我们操作数在程序运行过程中,它要做操作的一块临时的一块中转存放的内存空间。动态链接:在程序运转过程中把符号引用转变为直接引用(方法区的直接地址)。方法出口:方法执行完,该回到哪一行的地址。...

2022-04-15 14:01:46 351

原创 JDK源码级别类加载机制

1、java类加载运行全过程其中loadClass有以下几个步骤:(1)加载:在硬盘上查找并通过IO读取到字节码文件,加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口(2)验证:校验字节码文件的正确性(3)准备:给类的静态变量分配内存,并赋予默认值(4)解析:将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main方法替换为指向数据所存内存的指针或句柄等(直接引用)),这是所谓的静态链接过程(类加载期间完成),

2022-04-14 14:05:36 266

原创 zookeeper典型使用场景实战

1、zookeeper非公平锁、公平锁、共享锁惊群效应 在并发问题比较严重的情况下,性能会下降的比较厉害,主要原因是所有的连接都在对同一个节点进行监听,当服务器检测到删除事件时,要通知所有的连接,所有的连接同时接收到事件再次并发竞争,这就是羊群效应,这种枷锁方式是非公平锁的具体实现。如上借助于临时顺序节点,可以避免同时多个节点的并发竞争锁,缓解了服务端压力,这种实现方式所有枷锁请求都进行排队加锁,是公平锁的具体实现2、leader选举在分布式场景中的应用curator l...

2022-03-01 16:33:30 2004

原创 zookeeper客户端

zookeeper java客户端(原生的)Apache curator开源客户端(封装好的工具)zookeeper集群&不停机动态扩容、缩容集群:角色1)leader:负责处理写数据,读数据2)follower:负责读数据,如果leader失效,follower可以参与选举,有可能成为新的leader3)observer:负责读数据,减轻服务端写数据压力zookeeper3.5新特性:集群动态配置zookeeper经典应用场景...

2022-02-28 21:13:24 2001

原创 初识zookeeper

1、什么是zookeeper?它是一个分布式协调框架,是apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题。如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等2、核心概念zookeeper是一个用于存储少量数据的基于内存的数据库,主要有两个核心的概念:文件系统数据结构+监听通知机制。(1)文件系统数据结构(层次结构)A、持久化节点、临时节点-- 一旦创建,永久存在临时节点----session超时,会被服务器删除持久

2022-02-28 15:39:13 1304

原创 磁盘I/O流程

FIFO (Read) > FIFO (Write) > CFQ 从编程角度而已,一般磁盘I/O的场景有以下四种:(1)用户调用标准C库进行I/O操作,数据流为:应用程序buffer->C库标准IObuffer->文件系统页缓存->通过具体文件系统到磁盘(2)用户调用文件I/O,数据流问:应用程序buffer->文件系统页缓存->通过具体文件系统到磁盘(3)用户打开文件时使用O_DIRECT,绕开页缓存直接读写磁盘(4)用户使用类似dd工具,并使..

2022-02-24 14:59:41 1075

原创 kafka的安装与调试

(1)JDK安装(2)zookeeper安装(3)kafka的安装这里补充点:server.properties中zookeeper.connect=localhost:2181,最好修改为:zookeeper.connect=localhost:2181/kafka。明确指明该chroot路径下的节点是为kafka所有的,可以实现多个kafka集群复用一天zookeeper集群,可以节省更多硬件资源。(4)常用命令创建Topic:kafka-topics.bat --create -

2022-02-22 15:10:12 836

原创 初识kafka

定义:kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。角色扮演:(1)消息系统:kafka和传统的消息系统都具备系统解耦、冗余存储、流量削峰、缓存、异步通信、扩展性、可恢复性等功能。与此同时,kafka还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。(2)存储系统:kafka把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于kafka的消息持久化功能和多副本机制,我们可

2022-02-22 14:46:17 142

原创 RabbitMQ进阶

一、消息何去何从mandatory和immediate是channel.basicPublish 方法中的两个参数,它们都有 当消息传递过程中不可达目的地时将消息返回给生产者的功能。 RabbitMQ 提供的备份交换器 (Alternate Exchange )可以将未能被交换器路由的消息(没有绑定队列或者没有匹配的绑定〉存 储起来,而不用返回给客户端。mandatory参数:当mandatory 参数设为 true 时,交换器无法根据自身的类型和路由键找到一个符合条件 ..

2022-02-16 14:04:54 602

原创 RabbitMQ-客户端开发向导

(1)连接RabbitMQConnectionFactory factory = new ConnectionFactory(); factory.setUsername(USERNAME); factory.setPassword(PASSWORD); factory.setVirtualHost(virtualHost); factory.setHost(IP ADDRESS); factory.setPort(PORT); Connection conn= factory.newCo

2022-02-16 10:56:02 601

原创 RabbitMQ入门(二)

AMQP协议介绍:RabbitMQ就是AMQP协议的Erlang的实现(当然RabbitMQ还支持STOMP、MQTT等协议)。AMQP协议本身包括三层。Module Layer:位于协议最高层,主要定义了一些供客户端调用的命令,客户端可以利 用这些命令实现自己的业务逻辑。例如 客户端可以使用 Queue Declare 命令声明一个队列或者使用 Basic Consume 订阅消费一个队列中的消息。Session Layer:位于中间层,主要负责将客户端的命令发送给服务

2022-02-15 16:45:03 495

原创 RabbitMQ入门(一)

疑问:RabbitMQ的模型架构是什么?AMQP协议又是什么?这两者之间又有何种紧密的关系?消息从生产者发出到消费者消费这一过程要经历一些什么?RabbitMQ的整体模型架构图:生产者和消费者一、Producer:生产者,就是投递消息的一方。生产者创建消息,然后发布到RabbitMQ中。消息一般可以包含2个部分:消息提和标签(Label)。消息体也可以称之为payload,在实际应用中,消息体一般是一个带有业务逻辑结构的数据,比如:一个JSON字符串。当然可以进一步对这个消息体进行序

2022-02-15 16:06:18 425

原创 RabbitMQ简介

RabbitMQ,一款消息中间件。拥有:高可靠、易扩展、高可用及丰富的功能特性。消息队列中间件,也可以称为消息队列或者消息中间件。它一般有两种传递模式:点对点 ( P2P, Point-to-Point )模式和发布/订阅( Pub/Sub )模式。点对点模式:是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。发布订阅模式:定义了 如何向一个内容节点发布和订阅消息,这个内容节点称为主题( topic ),主 题可以认为是消息传递

2022-02-15 14:10:02 466

原创 RabbitMQ使用

一、rabbitMQ安装,参考文章,安装即可。二、访问控制台由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq(该功能是在3.3.0版本引入的)。三、RabbitMQ用户管理四、生产者package com.example.test.demo;import com.rabbitmq.client.Channel;import com.

2022-02-15 13:51:13 557

原创 nacos源码本地调试-通过代码获取获取nacos配置内容

1、首先在nacos-example中新建一个test.javapackage com.alibaba.nacos.example;import com.alibaba.nacos.api.NacosFactory;import com.alibaba.nacos.api.PropertyKeyConst;import com.alibaba.nacos.api.config.ConfigService;import java.util.Properties;public class

2022-01-28 16:07:25 2121

原创 nacos源码模块功能分析

一、包结构:1、nacos-address(地址服务器)2、nacos-api3、nacos-auth4、nacos-client5、nacos-cmdb(元数据管理)6、nacos-common7、nacos-config(配置管理)8、nacos-consistency9、nacos-console(nacos-server)10、nacos-core(内核)11、nacos-distribution12、nacos-example13、nacos-istio14、naco

2022-01-27 17:53:50 944

转载 什么是nacos?

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。Nacos 的关键特性包括: 服务发现和服务健康监测 Nacos 支持基于 DNS 和基于 RPC 的服务发现。服务提供者使用原生SDK、OpenAPI、或一个独立的Agent T.

2022-01-27 16:57:13 1056

原创 nacos源码本地调试

本次调试的nacos版本是:2.0.41、下载代码首先是下载代码路径为:https://github.com/alibaba/nacos/releases,下载选择的版本是:https://github.com/alibaba/nacos/releases/tag/2.0.42、先解压,然后编译:mvn compile(这一步很重要),这一步,会将com.alibaba.nacos.consistency.entity包编译到target目录。3、导入idea,as ..

2022-01-26 17:37:30 992

转载 Nacos部署环境(转载)

文章转载自:Nacos支持三种部署模式Nacos部署环境Nacos定义为一个IDC内部应用组件,并非面向公网环境的产品,建议在内部隔离网络环境中部署,强烈不建议部署在公共网络环境。以下文档中提及的VIP,网卡等所有网络相关概念均处于内部网络环境。Nacos支持三种部署模式单机模式 - 用于测试和单机试用。 集群模式 - 用于生产环境,确保高可用。 多集群模式 - 用于多数据中心场景。单机模式下运行NacosLinux/Unix/MacStandalone means it

2022-01-24 15:50:11 449

原创 nacos下载安装-windows

1、下载:目前最新版本是2.0.4,下载地址:Release 2.0.4 (Jan 18, 2022) · alibaba/nacos · GitHub2、解压、运行下载这个zip包,然后解压。打开cmd控制台,startup.cmd -m standalone运行3、打开网站:http://localhost:8848/nacos/#/login使用默认用户/密码登陆nacos/nacos,...

2022-01-24 15:20:35 2430

原创 初识nacos

一、什么是nacos?一个更易于构 建云原生应用的动态服务发现、配置管理和服务管理平台。二、nacos的优势是什么?易用、稳定、实时、规模(1)数据说明:数据变更毫秒级推送生效;1w 级,SLA 承诺 1w 实例上下线 1s,99.9% 推送完成;10w 级,SLA 承诺 1w 实例上下线 3s,99.9% 推送完成;100w 级别,SLA 承诺 1w 实例上下线 9s 99.9% 推送完成。(2)规模:十万级服务/配置,百万级连接,具备强大扩展性。三、nacos生态Naco

2022-01-24 14:45:27 636

原创 安装docker与使用中遇到的问题

说明:本文章是个人学习总结的内容,文章中会引用第三方链接,如有侵犯,请联系删除,谢谢。参考地址:记录Linux CentOS 7系统完整部署Docker容器环境教程Docker 创建镜像、修改、上传镜像1、可下载指定版本的centos镜像:docker pullcentos:7.2.15112、创建docker镜像的方式有两种:(1)docker commit模式(2)docker build模式,dockerfile文件3、当遇到执行某些安装命令不成功时,可以更新相关.

2021-07-21 16:43:55 265

原创 VirtualBox虚拟机安装CentOS

说明:本文章是个人学习总结的内容,文章中可能会引用其它链接,如有侵犯,请联系删除,谢谢。参考地址:VirtualBox虚拟机安装CentOS,安装jdk说明:1、虚拟机的内存可以设置大一点,如果内存足够的话;比如:8G2、虚拟机的硬盘可以设置大一点,如果硬盘足够的话;比如:100G3、可以安装带可视化界面的桌面+桌面增强模式4、设置网络:(1)nat网络模式(访问);图5让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网(2)仅主

2021-07-21 16:25:45 214

原创 springboot连接nacos的各种情况

(1)第一次启动的时候,必须能连接上配置中心;(2)如果重新启动或已经连接上配置中心,项目使用过程中,连接不上nacos,会使用之前已经连接上的配置(本地配置文件);如果一直连接不上,后台线程会定时去连接配置中心(3)如果想验证是否有连接上nacos,可以在配置中心加任意配置,看项目日志com.alibaba.nacos.client.Worker.longPollingfixed-10.10.*.*_80-f9cc48c0-c850-4e8d-9a9a-4f44e71dd79e] o.s.c.e

2021-03-10 15:33:12 3787

原创 SSL证书安装指引

最近接触到更新证书的相关内容。接收到新证书,是如下图格式:有Apache、IIS、Nginx、Tomcat。具体安装方法:阿里云和腾讯云官网都有说明:例如:腾讯云:https://cloud.tencent.com/document/product/400/35243...

2020-05-21 19:42:11 143

原创 idea提示包、类找不到,没及时更新类、包路径

最近使用idea工具,经常出现找不到包、类。具体原因是:因为:类移动到别的包里,idea的自动记录了原有的包、类路径,导致找不到了。解决办法:1、删除idea、impl跟代码不相关的文件后,重启idea;2、不直接删除类,先把类改成别名。在目标路径,新建类,改完之后,再删除已经改成别名的类。...

2020-05-21 19:32:04 1962

原创 JMeter Windows下载安装使用

背景:最近开发人员需要更加了解接口性能,所以需要自行压力测试接口:下载:打开http://jmeter.apache.org/download_jmeter.cgi,点击下图的,Browse download area,下载完成后,在JDK安装成功的基础上安装:新建系统变量:JMETER_HOME,将JMeter变量添加到系统中去:测试是否安装成功:...

2019-12-09 15:02:47 172

转载 JDK内置工具(已补上JDK8的内置工具说明)

JDK内置工具JDK自带工具一览表JDK(JavaDevelopmentKit)是Java程序员最核心的开发工具,没有之一。JDK是一个功能强大的Java开发套装,它不仅仅为我们提供了Java运行环境,还给开发人员提供了许多有用的开发组件(位于bin目录中,如下图所示)。仅仅使用JDK,就能够解决我们在Java开发过程中遇到的许多问题。下面,我们就按照工具文件...

2019-10-11 11:08:33 2193

转载 UTC时间、GMT时间、本地时间、Unix时间戳

GMT和UTCGMT,即格林尼治标准时间,也就是世界时。GMT的正午是指当太阳横穿格林尼治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作...

2019-10-08 14:05:55 711

原创 印象笔记:解决Chrome插件安装时程序包无效:"CRX_HEADER_INVALID"

1、背景安装印象笔记,遇到:"CRX_HEADER_INVALID"2、通过官网下载到crx插件,https://www.yinxiang.com/download/get.php?file=ClipperChromeYXBJevernote-web-clipper-latest.crx3、将其直接改名为后缀,rar或zip格式的压缩文件,4、然后,解压上一步...

2019-06-03 09:23:45 1843

转载 系统分析师报名时间及入口

根据往年广东软考报名时间来看,2019年广东系统分析师报名时间:预计3月底开始。报名入口:考生可登录中国计算机技术职业资格网(http://www.ruankao.org.cn/)进行报名。报考流程1.用户注册。首次登录报名网站的考生请按网站要求进行注册,并签订《考生报考承诺书》。2.电子照片上传、报名信息填报和提交。考生登录报名系统按要求填写个人信息,并在报名页面下载照片验证工具...

2019-02-13 08:26:28 2772 1

原创 DES加解密,windows正常,linux失败

package com.abc.core.utils;import java.io.UnsupportedEncodingException;import java.security.InvalidKeyException;import java.security.Key;import java.security.NoSuchAlgorithmException;import ja...

2019-01-22 11:42:20 792

原创 curl 发送GET\POST 请求,测试线上环境;

背景:生产环境有多台服务器,因为服务器的数量比较大,所以使用的缓存服务器也比较多。运维特意将服务器分成3组,且有3组memcached服务器。问题:一个接口返回不稳定的结果。排查:可能是服务器不同,返回的结果不同,方式:在服务器上测试一下生产环境的接口,排查出返回结果不一致的接口名。结论:memcached的不一致性;导致接口不稳定。curl GET 请求curl命令 + 请求接口的地址。...

2018-10-29 14:45:04 754

原创 java内存区域与内存溢出异常

2.1概述:如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一项异常艰难的工作。 2.2 运行时数据区域java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个不同的数据库区域。这些区域都有各自的用途,以及创建和销毁的世界,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户现场的启动和结束而建立和销毁。程序计数器(线程私有的):当前线程所执行的字节码...

2018-10-11 17:30:29 111

原创 spring的context:property-placeholder的使用与优化

使用&lt;context:property-placeholder&gt;的原因,加载不到某个配置文件,可以不报错。&lt;context:property-placeholder                          location="classpath*:conf/token.properties,                                  cl...

2018-09-28 16:27:19 1051

转载 base64编码

作用:Base64就是用64个Ascii字符来表示任意二进制数据的方法。验证思路:2的6次方=64,即Base64的Base64单元有6位;一个字符最多是3个字节,即24位。UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节。所以三个字节,用4个Base64单元来表示;Base64编码会把3字节的二进制数据编码为4字节的...

2018-09-26 17:36:00 769

原创 Svn ignore-svn插件设置提交忽略文件

Eclipse svn插件设置提交忽略文件。 */.git/*.classpath.deployables.git.project.settings.svn_svntarget

2018-09-25 15:14:05 806

原创 Spring中Responsebody注解的作用

背景:在微信支付,接收微信付款结果通知,一次通知,接收了好多次。这说明:微信支付系统没接收到正确的响应码。&lt;xml&gt;  &lt;return_code&gt;&lt;![CDATA[SUCCESS]]&gt;&lt;/return_code&gt;  &lt;return_msg&gt;&lt;![CDATA[OK]]&gt;&lt;/return_msg&gt;&lt

2018-09-17 11:44:31 589

调试kafka,一个生产者(通过postman调用可生产数据),一个消费者(自动消费)

调试kafka,一个生产者(通过postman调用可生产数据),一个消费者(自动消费)

2022-02-22

rabbitmq-server-3.7.13.exe和erlang-otp_win64_20.3.exe

rabbitmq-server-3.7.13.exe和erlang-otp_win64_20.3.exe

2022-02-15

rabbitmq-server-3.7.13安装,官网下载的,因为官网下载慢,特此上传

rabbitmq-server-3.7.13安装,官网下载的,因为官网下载慢,特此上传

2022-02-15

sizeof 计算出实例的大小

sizeof 计算出实例的大小这个类库基本上就是用反射(reflection)来得到类的内部细节,从而计算出其实例的大小。同样,也是用反射来遍历对象图来计算其deep size。

2018-09-11

api-gateway

对于路由规则的维护,zuul默认会将通过以服务名作为ContextPath的方式来创建路由映射,大部分情况下,这样默认设置已经可以实现我们大部分的路由需求。spring cloud zuul的另外一个核心功能:请求过滤。

2018-07-03

feign-consumer例子

feign例子,创建一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。

2018-06-30

spring cloud hystrix 服务容错保护例子

spring cloud hystrix 服务容错保护例子,加上Eureka server就可以直接运行了。如果出现错误,会调用指定的方法

2018-06-26

基于eureka的消费者提供者

基于spring cloud eureka的消费者提供者,可以直接运行.

2018-06-26

spring cloud eureka-server

spring cloud eureka-server注册中心搭建。下载即能用。

2018-06-24

springboot-hello

spring boot小例子,用于学习和启动,访问。有问题欢迎讨论。

2018-06-22

dubbo_demo

dubbo demo,自己搭建的一个基于maven、dubbo、zookeeper的例子。分为client、server端。可直接运行。

2018-06-22

github for windows安装包

github for windows安装包

2015-06-25

apache-tomcat-7.0.59-windows-x64

windows,64位,apache-tomcat-7.0.59-windows-x64

2015-06-07

空空如也

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

TA关注的人

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