自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

谋莽台的博客

想做的事就要放手去做啊!

  • 博客(23)
  • 收藏
  • 关注

原创 微软云Azure

微软云Azure云计算云计算简单来讲就是租用别的公司的服务器来提供计算能力。优势在于:经济,可伸缩,弹性(需要多少用多少,需要的时候随时可以扩展)始终保持最新状态(无需自己管理,维护的工作交给服务商)安全可靠(分布式和冗余)全球性(世界范围的数据中心)劣势在于:支出不可控,可能会超过自己的预期提供的服务计算服务网络服务存储服务数据库服务其他核心服务安全中心访问与授权架构IaaS 架构即服务架构即服务是一个即使计算架构,通过网络来检查和托管。

2022-04-03 20:38:23 252

原创 前后端项目的centos服务器部署

前提条件:服务器centos操作系统,宝塔1. 后端代码打包得到jar包,上传服务器某个文件夹下: scp 本地jar地址 root@ip:远程存放地址2. 远程连接服务器: ssh root@ip3. 进入指定文件夹后,后台执行jar包: java -jar demo-0.0.1-SNAPSHOT.jar nohup > output.txt // nohup表示后台运行,> 指定输出日志4. 如果端口被占用: netstat -lnp|grep 端口, kill -9 pid5

2022-04-03 15:35:31 1917

原创 System Design Note

Determine what is your system you need to design.Determine the requirements and goals of the system, such as functional requirements, non-functional requirements, and extended requirements.Estimate the traffic, storage, bandwidth, and memory.Definite s.

2022-04-03 11:08:49 490

原创 并发编程基础知识

并发笔记(类加载)将类的字节码加载到java虚拟机中(方法区中)虚拟机执行main方法,在栈内分配栈帧守护线程thread.setDaemon(true)设置为守护线程。当其他非守护线程都运行完毕,不管守护线程是否执行完毕都会结束。垃圾回收器线程就是一种守护线程。线程状态五状态(操作系统层面)初始状态:只是语言层面创建了线程对象,还没有和操作系统线程关联。就绪状态:线程已经和操作系统线程关联,可以由cpu调度。(将运行所需要的资源除了cpu都拿到了)运行状态:获得时间片堵塞

2022-04-02 19:55:42 515

原创 NIO基础

网络编程非阻塞,阻塞和多路复用阻塞:线程没有监听到指定的操作执行时,就会停止运行。如ServerSocketChannel.accept()和channel.read(buffer)都是阻塞方法。在单线程的情况下,服务端只能执行一轮accpet一个线程并且read客户端传来的数据,但是会阻塞在下一次的accept。所以阻塞方法只能适用在多线程的情况下。但是在多线程的情况下也会有线程太多,频繁上下文切换导致性能降低.非阻塞:各个操作之间没有影响,可以监听多个线程的多个操作。问题在于一直循环cpu占用率

2022-04-02 19:52:03 113

原创 微软上海C+AI(OC)

微软上海C+AI一面自我介绍问了有哪些集合ArrayList和LinkedListHashMap的底层数据结构redis的一致性哈希,缓存一致性无序数组,从中选取两个数,求差值最大时的两个下标。(考虑测试用例和边界条件)二面自我介绍介绍一下公司的项目,主要负责什么restful规范put和post的区别java内存中堆和栈的区别redis持久化,redis在项目中用来干嘛,有什么优势,和mysql有什么区别提到的rpc远程调用是怎么实现的反射的原理aop讲一下项目中有没

2022-04-02 19:51:13 2364 1

原创 nginx配置

user www www;worker_processes auto;error_log /www/wwwlogs/nginx_error.log crit;pid /www/server/nginx/logs/nginx.pid;worker_rlimit_nofile 51200;events { use epoll; worker_connections 51200; multi_accept on; }

2022-04-02 19:48:23 109

原创 NIO概念和多线程优化

网络编程IO模型同步阻塞IO:客户端发送请求,当服务端在等待某个操作的时候,客户端就会被阻塞,直到服务端完成请求。同步非阻塞IO:客户端发送请求,当服务端在等待某个操作时,不会阻塞,此时客户端不断轮询去发送请求,直到服务端能够接受然后去执行。但是在执行过程中客户端依旧是阻塞的。并且循环请求消耗很多的资源。(也是同步)多路复用:客户端在服务端未准备好执行事件的时候先阻塞,当服务端准备好后,才去发送请求。无事件阻塞,有事件执行。客户端在服务端准备期间和执行期间都是堵塞的。同步:线程自己去获取结果(一

2022-04-02 19:47:09 829

原创 基于Netty实现简化的RPC

一些理论当你的项目太大,业务越来越多的时候,需要将服务拆分,RPC就可以用于服务于服务之间的调用问题。系统中的内部服务之间的调用用RPC。RPC的架构主要包括三个部分:Register注册中心:将本地服务发布成远程服务,管理远程服务,提供给服务消费者使用。Server服务提供者:提供服务接口的定义和实现类。Client服务消费者:通过远程代理对象调用远程服务。RPC就是将以下这些步骤封装起来,使得客户端能够像调用本地服务一样调用远程的服务。接收调用将方法参数等封装成能够

2022-04-02 19:45:16 532

转载 数据库事务隔离机制

数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但

2021-06-05 18:36:49 276

原创 MySql索引

MySql索引文章目录MySql索引概述分类InnoDB引擎MyISAM引擎底层数据结构的发展B+树聚簇和非聚簇聚簇索引非聚簇索引为什么非聚簇索引叶子节点存储的是Key值而不是地址查询过程聚簇索引的优势聚簇索引的注意为什么主键通常使用自增id什么时候不能用索引概述索引是一种数据结构大大加快数据查询速度需要消耗资源:数据库和磁盘空间增删时需要维护成本分类innodb支持事务,外键,行级锁,聚簇索引。InnoDB引擎主键索引:设定主键后会自动建立索引,innodb为聚簇索引,不允许有

2021-06-05 17:11:05 171

原创 IoC学习(Inverse of control)

文章目录当需求发生变更的时候,可能需要频繁修改 Java 代码,效率很低,如何解决?上述的方式并不能解决我们的问题,需求发生改变的时候,仍然需要修改代码,怎么做到不改 Java 代码,就可以实现实现类的切换呢?Spring Ioc的使用Ioc基于注解的执行原理手写代码的思路Inverse of Control 创建对象的权限,Java 程序中需要用到的对象不再由程序员自己创建,而是交给 IoC 容器来创建。当需求发生变更的时候,可能需要频繁修改 Java 代码,效率很低,如何解决?使用静态工厂来创建特

2021-05-30 16:28:38 212

原创 分布式秒杀系统四

分布式秒杀系统四文章目录分布式秒杀系统四请求下单数据一致性的问题(性能?安全/?)如果在同步数据库之前redis崩了怎么办秒杀下单的lua脚本MQ有可能引起重复发送请求下单数据一致性的问题(性能?安全/?)商品服务中商品减少的数量一定要等于订单服务中订单增加的数量。库存不能为负数即不能超卖单机测试的结果:库存10000件,请求方式1秒1w5个请求直接下单的普通业务:发生了超卖,前后差距8秒添加synchronized关键字:没有发生超卖,前后耗时15秒问题一:只是本地加锁

2021-05-14 10:08:32 215

原创 分布式秒杀系统三

分布式秒杀系统三文章目录分布式秒杀系统三秒杀请求限流根据什么来限流限流的实现方案redis + Lua脚本实现令牌桶算法Lua脚本语法令牌桶的实现如何添加令牌(令牌的生成方式)令牌的预支设置脚本代码初始化Lua脚本令牌桶的领取GateWay过滤器问题秒杀请求限流当单位时间内请求量很大的时候,拒绝一部分请求的手段。是解决高并发的重要手段之一。在什么地方限流?-路由网关根据什么来限流如果根据请求数量来限流,因为请求是经过路由网关,那么秒杀服务会影响其他微服务。根据ip地址来限流(单位时间每个ip

2021-05-12 18:58:58 246

原创 分布式秒杀系统二

分布式秒杀系统二文章目录分布式秒杀系统二秒杀场次的获取对秒杀场次进行缓存添加依赖配置redis添加注解倒计时的实现第一版问题第二版切换页面时定时器累加问题父子组件父组件子组件抢购功能实现如何防止提前下单如何防止重复提交秒杀场次的获取public static String getSecKillTime(int i){ //根据当前时间 计算第一场的时间 Calendar calendar = Calendar.getInstance(); //获得当前的

2021-05-11 19:13:29 241

原创 分布式秒杀系统一

分布式秒杀系统一文章目录分布式秒杀系统一分布式秒杀系统的难点架构图路由网关的作用(Zuul/GateWay)如果路由网关崩了怎么办那为什么还要nginx如果LVS也崩了主机和备机IP地址不同,如何在主机崩了情况下访问备机ip,并且备机如何知道主机崩了注册中心的作用(Eureka,Zookeeper,Nacos)A服务如何调用B服务为什么不直接调用数据库设计工程结构为什么要单独创建一个微服务工程继承于父工程配置环境多环境部署分布式秒杀系统的难点并发量大线程安全的问题(防止库存超卖):如果单纯加锁会导

2021-05-10 13:35:52 416

原创 考研复试设计模式

文章目录单例建造者模式(生成器模式)原型模式简单工厂工厂模式抽象工厂模式适配器模式桥接模式过滤器模式(标准模式)装饰器模式观察者模式外观模式 门面状态模式策略模式状态和策略的不同代理模式责任链模式模板方法模式享元模式命令模式 ?解释器模式备忘录模式迭代器模式组合模式中介者模式访问者模式单例确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例控制实例的数目,节省系统资源时序列号生成器,计数器,创建对象消耗很多资源饿汉式 :在类加载时就实例化 不用加锁,执行效率高,但是浪费内存懒汉

2021-05-09 21:54:50 248

原创 考研复试英语

复试英语文章目录复试英语1.什么是软件工程(如果按照书上的概念背诵,他就会问你什么又是systematic,disciplined,比较纠结 对软件开发有什么用处?2.喜欢读哪些书,介绍其中一本书的内容 (Which books do you like to read, and introduce the content of one of them) 13.为什么选择南大 (why choose nanjing university?)14.为什么要考研(Why do you want to tak

2021-05-09 21:53:15 682

原创 秒杀系统学习笔记

秒杀什么是秒杀秒杀的目的是为了引流对于商家来说,按照商家的规模,秒杀分为三种形式:1、平台要求准时准点做秒杀,类似于天猫双11,11月11日0点开始抢购,或者京东的整点抢购,都由平台发起。2、商家对于自己的店铺做秒杀,一般是厂家的旗舰店,在平台首页占据有利广告位,进入店铺做秒杀。3、微信公众号链接网页做秒杀,由公众号运营的商家发起。按照商家的促销活动内容,秒杀分为三种方式:1、限价秒杀:最常见的秒杀形式,秒杀价格绝对低到令人无法相信也无法抗拒而不去参与,此种秒杀一般在开始之后

2021-05-09 20:25:10 437

原创 Spring Cloud学习笔记

Spring Cloud学习笔记单体应用存在的问题 随着业务的发展,开发变得越来越复杂。 修改、新增某个功能,需要对整个系统进行测试、重新部署。 一个模块出现问题,很可能导致整个系统崩溃。 多个开发团队同时对数据进行管理,容易产生安全漏洞。 各个模块使用同一种技术进行开发,各个模块很难根据实际情况选择更合适的技术框架,局限性很大。 模块内容过于复杂,如果员工离职,可能需要很长时间才能完成工作交接。 分布式、集群集群:一台..

2021-05-05 20:09:17 203 1

原创 HDU 1045 Fire Net

题目传送门:https://vjudge.net/problem/HDU-1045题意:在一个n*n(n<=4)的区域内建造炮塔,炮塔与炮塔不能在同一行和同一列除非中间有城墙阻隔,要你求出最多能建造多少个炮塔。思路:因为n最大只有4,可以利用dfs全面检索。#include <iostream>#include <cstring>using namespace s...

2018-04-04 17:10:59 165

原创 ZOJ 2058 The Archaeologist's Trouble II

题目传送门:https://vjudge.net/problem/ZOJ-2058思路来自:https://blog.youkuaiyun.com/Ferko/article/details/79810380最大值:尽量多的往'?'中填充'@'并且要保证'@'和'*'号间隔出现,最终'@'的个数就是最大值;最小值:尽量多的往'?'中填充'*'并且要保证'@'和'*'号间隔出现,最终'@'的个数就是最大值;#i...

2018-04-03 22:41:21 298

原创 HDU 1009 FatMouse' Trade

题目传送门:https://vjudge.net/problem/HDU-1009贪心法 #include <iostream>#include <algorithm>#include <cstdio>#include <iomanip>#include <cstring>using namespace std;struct ...

2018-04-03 22:30:41 148

空空如也

空空如也

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

TA关注的人

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