自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一、深入理解java虚拟机——java内存区域与内存溢出异常

1 运行时数据区域1.1 程序计数器1.2 java虚拟机2 Hotspot虚拟机对象探秘3 OOM问题

2022-03-18 22:19:01 180

原创 五、架构师-高并发与多线程-ThreadLocal java的四种引用类型 强软弱虚

从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。java的引用有强软弱虚四种类型,其中弱引用类型和ThreadLocal密切相关。ThreadLocal:线程本地变变量。以下会对这几个概念原理和使用场景进行分析。强引用强引用类型是普通的引用,是最常用的。比如:Object o = new Object()中引用o就是强引用类型。当一个对象具有强引用的时候,GC是不会对其回收的,就算内存不够用,宁可抛出OutOfMemoryError错误也不会回收它。只有这个这

2021-01-21 18:17:02 183

原创 四、架构师-高并发与多线程-volatile关键字

https://blog.csdn.net/u012723673/article/details/80682208?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522161037932016780269883855%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fall.%252522%25257D&request_id

2021-01-13 23:58:20 194 1

原创 三、架构师-高并发与多线程-synchronized、各种锁

synchronized应用synchronized有三种方式来加锁,分别是:方法锁,对象锁synchronized(this),类锁synchronized(Demo.Class)。其中在方法锁层面可以有如下3种方式:修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。synchronized括号后面的对象:synchronized扩号

2021-01-11 23:10:19 168

原创 二、架构师-高并发与多线程-java对象内存布局

首先以一个问题引出这次的内容:Object o = new Obeject()在内存中占了多少个字节?要回答这个问题就要首先清楚对象在内存中的内存布局。对象内存布局根据java虚拟机规范里面的描述:java对象分为三部分:对象头(Object Header) = mark word + class point(对象的引用),实例数据(instance data,成员变量),对齐填充(padding)。如图:数组与对象类似,只是对象头部分多了数组长度Length的存储长度为4字节。测试代码:工

2021-01-10 21:50:04 212 5

原创 一、架构师-高并发与多线程-CAS和Unsafe

CAS

2021-01-08 00:08:36 117

原创 Linux基础

这里写目录标题第一章 Linux安装与配置第二章 Linux常用命令第一节 文件处理命令第一讲 命令格式与目录处理命令ls第二讲 目录处理命令在Shell脚本中,#开头的行代表注释。Author:yangyang (E-mail: 1771566679@qq.com)第一章 Linux安装与配置在Linux远程登录管理配置IP时,需要的一些简单命令:ifconfig 查询当前网卡信息ifconfig eth0 配置网卡 ifconfig eth0 后+ VmNAT8的网络IP df

2020-12-29 15:38:01 712

原创 6. Docker Compose & Docker Swarm

06 Docker Compose首先安装docker-compose官网:https://docs.docker.com/compose/6.1 业务背景6.2 Docker传统方式实现6.2.1 写Python代码&build image(1)创建文件夹mkdir -p /tmp/composetestcd /tmp/composetest(2)创建app.py文件,写业务内容import timeimport redisfrom flask import

2020-10-20 17:39:55 356

原创 4. docker 持久化和单机集群实战

docker数据持久化volume创建mysql数据库的containerdocker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD=jack123 mysql查看volumedocker volume ls具体查看该volumedocker volume inspect 48507d0e7936f94eb984adf8177ec50fc6a7ecd8745ea0bc165ef485371589e8 名字不好看,name太长,

2020-10-13 23:08:48 153 1

原创 Mysql高可用集群PXC简介

一、PXC 介绍1.1 PXC 简介PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步。而且节点与节点之间,他们相互的关系是对等的。PXC 最关注的是数据的一致性,对待事物的行为时,要么在所有节点上执行,要么都不执行,它的实现机制决定了它对待一致性的行为非常严格,这也能非常完美的保证 MySQL 集群的数据一致性;1.2 PXC特性和优点完全兼容 MySQL。同步复制,事务要么在所

2020-10-12 00:30:17 635

原创 3.docker的网络通信机制

linux中的网卡网卡[网络接口]查看网卡三种方式:ip link showls /sys/class/netip aip a解读状态:UP/DOWN/UNKOWN等link/ether:MAC地址inet:绑定的IP地址配置文件在Linux中网卡对应的其实就是文件,所以找到对应的网卡文件即可比如:cat /etc/sysconfig/network-scripts/ifcfg-eth0给网卡添加ip地址当然,这块可以直接修改ifcfg-*文件,但是我们通过命令添加试试

2020-10-08 22:46:25 199

原创 2. docker hub使用

镜像仓库docker hub地址:hub.docker.com我的用户名:gugudocker在docker机器上登录docker login 输入用户名和密码推送注意镜像名必须 “注册用户名/镜像名:tag”格式, tag命令修改为规范的镜像。docker tag imageName newImageName// docker push 注册用户名/镜像名:tagdocker push gugudocker/tomcat:4阿里云docker hub

2020-10-06 23:16:23 97

原创 1. Docker基础知识笔记

docker基础知识docker简介是什么能干什么去哪里学docker安装docker的基本组成镜像容器仓库总结安装步骤1. CentOs6.8安装Docker2. CentOS7安装DockerHelloWeord底层原理docker常用命令Docker镜像Docker容器数据卷DockerFile解析Docker常用安装本地镜像发布到阿里云docker简介解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。是什么问什么会出现docker一款产品从开发到上线,从

2020-09-17 10:30:02 197

原创 把spring-boot项目配置为Linux systemd服务

把spring-boot项目配置为Linux systemd服务之后,可以方便地使用下面几个命令:systemctl start myservcie.servicesystemctl stop myservcie.servicesystemctl restart myservcie.servicesystemctl status myservcie.service或这些:service myservice statusservice myservice startservice myserv

2020-08-31 16:00:10 767 1

转载 妥~阿里程序员常用的 15 款开发者工具

来源:jianshu.com/p/58ec32eef2d4一、Java 线上诊断工具 Arthas二、IDE 插件 Cloud Toolkit三、混沌实验注入工具 ChaosBlade四、Java 代码规约扫描插件五、应用实时监控工具 ARMS六、静态开源站点搭建工具 Docsite七、Android 平台上的秒级编译方案 Freeline八、性能测试工具 PTS九、云效开发者工具 KT十、架构可视化工具 AHAS十一、数据处理工具 EasyExcel十二、iOS 类工具 Han.

2020-06-22 14:08:55 204

原创 五、工厂模式

以披萨店为例:可以在PizzaStore下单订pizza;pizza根据客户要求,产生不同口味的pizza。简单工厂和静态工厂简单工厂其实不是一个设计模式,而是一种编程模式;但经常被使用。简单工厂:PizzaStore/** * @author user * @date 2020/6/15 11:55 */public class PizzaStore { SimplePizzaFactory simplePizzaFactory ; public Piz

2020-06-20 14:09:05 162

原创 四、观察者模式

观察者模式 :定义了一系列对象之间的一对多关系;当一个对象改变状态,其他依赖者都会收到通知并自动更新。气象站监测应用的例子,此系统中的三个部分是:气象站:获取实际气象数据的物理装置;(该对象与观察者模式关系不大)。WeatherData对象:追踪来气象站的数据,并更新布告板;属性有温度、湿度、气压。布告板:显示目前天气状况给用户看。有不同的布告板:1、展示天气实时情况,2、气象统计,3、天气预报等等不同布告板。直接编程实现方式关系图WeatherData代码/** * @author

2020-06-14 22:53:47 178

原创 idea使用和配置

常用配置 setting1.Appearance & Behavior1.1 设置主题在http://color-themes.com/?view=index下载主题包目录结构

2020-06-14 00:42:34 250

原创 三、策略模式

开发上不管软件当初设计的多么完美,一段时间之后,总要作出改变;否则这个软件就死亡了。把会变化的部分抽取出并封装起来,不要和那些不需要变化的代码放在一起这是一个重要的设计原则;换句话说如果每次需求出来,都会使某方面的代码发生变化,那么就可以确定,这部分代码需要抽取出来,和其他稳定的代码有所区分。这是每个设计模式都背后精神所在。以经典的鸭子项目为例:各种鸭子,比如北京鸭,野鸭,水鸭,玩具鸭等;鸭子有各种行为,如飞行,叫等;能够显示鸭子的行为信息。用继承实现该需求...

2020-06-11 18:30:06 223

原创 二、单例模式

0 饿汉式0.1 静态常量方式/** * 静态常量方式 * @author gu * @date 2020/6/6 21:54 */public class Singleton1 { // 私有化构造方法 private Singleton1(){} // 静态变量 private final static Singleton1 instance = new Singleton1(); // 对外接口,返回实例 public static

2020-06-07 18:57:22 100

原创 一、设计模式简介

设计模式简介1 软件设计常用的七大原则1.1 单一职责原则设计模式(design pattern)是对 软件设计中普遍存在(反复出现)的各种问题,所提出的 解决方案。目的:使程序呈现高内聚低耦合的特性;使程序有更好的重用性,可读性,可扩展性和可靠性。1 软件设计常用的七大原则1.1 单一职责原则提高内聚。不要存在多于一个导致类变更的原因;通俗的说,即一个类只负责一项职责。(最优是类级别的单一;但是当类中方法逻辑足够简单,只有类中方法数量足够少时,可以退而求其次在方法级别保持单一职责原则。)

2020-06-05 22:40:57 126

原创 (五)多级缓存架构实施 上——ehcache和redis层

接下来要做这个多级缓存架构,从底往上做,先做缓存数据的生产这一块我们画图来简单介绍一下整个缓存数据生产服务的一个工作流程商品详情页缓存数据生产服务的工作流程分析(1)监听多个kafka topic,每个kafka topic对应一个服务(简化一下,监听一个kafka topic)(2)如果一个服务发生了数据变更,那么就发送一个消息到kafka topic中(3)缓存数据生产服务监听到了消息以后,就发送请求到对应的服务中调用接口以及拉取数据,此时是从mysql中查询的(4)缓存数据生产服务拉取到

2020-05-17 18:06:50 529

原创 (四) 商品详情页结构分析、缓存全量更新问题以及缓存维度化解决方案

pom.xmlmaven下载这些依赖的时候,会非常非常的慢,根据不同人的网络环境,也不一样你就在eclipse里面,观察每个依赖的下载的情况如果说觉得下载的很慢,就是卡在一个地方,好长时间不能下载,进度条都不动了那就手动下载maven依赖,mysql connector java maven,进到maven中央依赖库里面,去手动下载对应版本的jar包,可以用迅雷,会比较快速一些你需要手动将jar包拷贝到你本地的maven仓库的对应的目录中去可能对应的目录不存在,那就自己手动创建; 可能对应的.

2020-05-17 12:26:34 663

原创 (三)高并发场景下缓存与数据库双写一致性解决方案

亿级流量商品详情页多级缓存架构上亿流量的商品详情页系统的多级缓存架构该系列文章是基于中华石杉老师的“[大数据架构]-亿级流量电商详情页系统的大型高并发与高可用缓存架构实战”课程整理的课堂笔记。上亿流量的商品详情页系统的多级缓存架构很多人以为,做个缓存,其实就是用一下redis,访问一下,就可以了,简单的缓存。做复杂的缓存,支撑电商复杂的场景下的高并发的缓存,遇到的问题,非常非常之多,绝对不是说简单的访问一下redsi就可以了。采用三级缓存:nginx本地缓存+redis分布式缓存+tomcat堆缓存

2020-05-13 16:11:01 405

原创 (二)redis高阶知识/redis在高并发缓存架构中的地位

redis高阶知识/redis在高并发缓存架构中的地位redisredis安装Redis持久化RDB和AOF两只持久化机制RDBAOF机制RDB持久化配置和数据恢复如何配置RDB持久化机制RDB持久化机制的工作流程基于RDB持久化机制的数据恢复实验AOF持久化配置和数据恢复AOF持久化的配置AOF持久化的数据恢复实验AOF rewriteAOF破损文件的修复AOF和RDB同时工作Redis在项目中的应用企业级的持久化的配置策略企业级的数据备份方案数据恢复方案坑:使用rdb备份进行数据恢复的时候失败:redi

2020-05-10 23:48:52 813

原创 (一)大型电商详情页亿级缓存架构简介

大型电商详情页亿级缓存架构1.1 架构图1.2 集群环境简介1.3 环境准备1.3.1 在虚拟机中安装CentOS1.3.2 在每个CentOS中都安装Java和Perl该系列文章是基于中华石杉老师的“[大数据架构]-亿级流量电商详情页系统的大型高并发与高可用缓存架构实战”课程整理的课堂笔记。1.1 架构图1.2 集群环境简介搭建redis集群,集群部署,主从架构,分布式集群架构。搭建一个storm的集群。整套的系统包括:nginx,tomcat+java web应用,mysql等

2020-05-10 23:31:42 475

空空如也

空空如也

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

TA关注的人

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