- 博客(61)
- 收藏
- 关注
原创 CAP理论的自我理解
在我们分布式系统中,一般都是集群部署,一个机器挂了,其他机器要正常提供服务,所以说这个p分区容错性是一定要满足的,那么就要在C一致性跟A可用性之间去做取舍了,刚说我们集群部署肯定涉及到数据之前的同步,如果你在集群之前数据同步的时候加锁强制保证他们数据强一致的话,那么就有可能因为加锁失败保证不了服务的可用性,如果你不加锁保证了可用性,那么就有可能出现数据不一致的情况。Nacos: 可以在这俩中模式下切换,一般配置中心是cp,注册中心是AP。Eureka:是通过牺牲一致性来保证AP。
2026-09-03 08:49:58
166
原创 秒杀系统设计思路
6.通过预热的操作把库存提前写入redis,扣减库存的操作全部都用redis操作,这里用redis+lua脚本。7.在redis成功扣减完库存之后,然后通过MQ的方式再次进行削峰扣减库存。2.活动开始后点击一次后禁用按钮。5.配置好服务端的限流跟熔断。3.滑动验证码,人机识别。1.互动前禁用按钮。
2026-08-26 13:47:10
162
原创 Redis的自我学习
比如说做秒杀库存的扣减,120w的库存如果都在一个机器上去进行秒杀库存的扣减的话,很可能会把redis干爆,所以我们可以把库存给它分片,放到不同的redis服务器上,可以对库存对用户id/订单号取模操作,使其尽量分散。现实开发中我们还要结合限流,熔断,降级这一系列操作去做。
2026-08-21 17:41:22
182
原创 linux-awk 命令
cat 11.txt | grep 日志输出begin | awk -F 'applyNo=' '{print $2}'| awk -F ',' '{print $1}' | sort -u。从日志里快速检索某一些关键字,并输出去重。
2025-09-26 11:44:16
106
原创 Spring自我理解
生命周期1.实例化 Instantiation2.属性赋值 Populate3.初始化 Initialization3.1 aop4.销毁 DestructionInitializingBean接口里面的这个方法@Override public void afterPropertiesSet() throws Exception { //在为属性设置完值之后会去调用这个方法 }...
2021-09-09 17:12:53
268
原创 python
Demo1创建一个text.txt 往里面写入数据fp=open("D://text.txt","a+")print('hello,word',file=fp)fp.close()类型转换str(123) 讲int类型转为str类型int("123") 讲str类型转为int类型Demo2 获取键盘输入food = input("您想要吃什么?")print(food)Demo3 特殊运算符11//2 整除 结果5不是5.52**3 整除 2的3次方 2
2021-04-28 10:44:05
196
原创 Linux配置无密登录
1.ssh localhost 生成.ssh文件2.ssh-keygen -t rsa 生成公钥 私钥3.ssh-copy-id hadoop103
2021-03-26 16:57:48
232
1
原创 面试的内容
SpringMVC的工作流程首先我们的用户请求到前段控制器,前段控制器收到请求之后根据url找到处理器也就是我们的后端处理器,后端处理器也就是controller对应的requestMapping那个方法,执行完业务逻辑之后会返回一个ModelView到我们的前端控制器dispatcherServlet,再去调用视图解析器去解析,然后返回一个视图给前端控制器,前端控制器再渲染给用户的浏览器类加载机制JVM...
2021-02-26 21:15:02
373
1
原创 JSR303参数校验
@Datapublic class UserRegistVo { @NotEmpty(message = "用户名必须提交") @Length(min = 6,max = 18,message = "用户名必须是6~18位字符") private String userName; @NotEmpty(message = "密码必须填写") @Length(min = 6,max = 18,message = "密码必须是6~18位字符") private
2021-01-16 12:50:11
183
原创 对于一些直接跳转的页面我们可以不写controller
package com.gulimall.gulimallauth.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigur
2021-01-14 23:33:08
306
原创 mysql的自我总结
分组链接我们在查询的时候按照某个字段分组,那么我们查询的字段只能是我们分组字段或者是聚合函数,这时我们可以用分组连接函数把其他的字段全部连接起来。
2021-01-12 18:46:48
234
原创 前端笔记
location.href 可以直接跳转网页$(".sort_a") .开头 class选择器th:attr="pn=${result.pageNum +1} 可以自定义属性 pn${param.keyword} 可以用param直接去路径中参数前段判断是否为空 ${(!#strings.isEmpty§ #strings.endsWith(p,‘desc’) 以什么结束...
2021-01-10 22:50:30
137
原创 SpringCache自我学习
cacheable 把查询出来的数据放到缓存cacheevict 更新 – >删除模式cacheput 更新 --> 双写模式Cacheable() ->value是分区名 key是缓存名配置类@Configuration@EnableCaching //开启缓存@EnableConfigurationProperties(CacheProperties.class) //使用redis的容器里面的配置public class MyCacheConfig {
2021-01-04 22:42:51
294
原创 JUC并发编程
Semaphore ->也可以用于分布式限流这里调用acquire是占不到一直等待可以调用tryAcquire占不到 就返回falseCountDownLatch只有当设置的数量没有了 我们才解锁
2021-01-03 23:38:36
277
原创 Redis的自我总结
1.缓存穿透2.缓存雪崩3.缓存击穿redis实现分布式锁为了防止我们在执行业务的时候出现异常 或者是服务器宕机的意外 没有删除锁 导致我们出现死锁的现象 那么我们要在执行业务之前加一个过期时间。而这个加锁和我们的的加过期时间不能分开执行 要保证他是原子性的。这里删除的锁可能不是自己的锁 所以我们在加锁的时候 要放一个uuid 保证是自己的锁 那么我们取出来 在判断是自己的锁 这俩步操作又不是原子的了 所以我们要用lua脚本删锁利用Redisson实现分布式锁他可以使我们之
2021-01-03 23:19:29
195
原创 docker部署elastic
docker pull elasticsearch:7.4.2docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node"\ -e ES_JAVA_OPTS="-Xms64m -Xmx128m"\ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsea
2020-12-26 13:52:32
143
原创 springCloud-config配置中心
引入config依赖创建一个bootstrap.porperties 在里面配置当前应用的名字以及服务地址给nacos配置中心添加一个当前应用名.properties为默认规则给上边那个规则里面 添加我们想要的配置的东西动态获取我们配置的东西 不需要重新启动服务器@RefreshScope()+@Value如果配置中心和当前项目的配置文件都有 那么优先使用配置中心里面的东西。...
2020-12-10 21:39:51
148
原创 Springboot 项目打包为docker镜像
dockerfile先打包 然后把FROM java:8COPY *.jar /app.jarCMD ["--server--9123"]EXPOSE 9123ENTRYPOINT ["java", "-jar","/app.jar"]
2020-08-18 23:26:32
241
原创 部署Docker-Redis集群
模型1.创建我们自己的redis网络docker network create --subnet 172.38.0.0/162.通过脚本创建6个我们redis的配置文件for port in $(seq 1 6);\do \mkdir -p /mydata/redis/node-${port}/conftouch /mydata/redis/node-${port}/conf/redis.confcat << EOF > /mydata/redis/node-${por
2020-08-18 00:17:02
241
原创 发布Docker到hub或者阿里云
首先我们想把我们的镜像加我们自己的Tag然后直接pushdocker push xiyuehua/centos:1.0
2020-08-16 20:31:39
183
原创 Docker部署mysql
docker search mysqldocker pull mysql:5.7docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7-v 挂载卷轴 -e配置密码docker run -d -p 3306:3306 -v 主机路径:容器路径
2020-08-15 13:46:27
205
原创 Docker部署es+kabana
启动elasticSearch官网给出的docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag但是es十分的耗费我们的内存,平时在我们的阿里云1核2G根本就顶不住 所以我们这里要限制他使用的内存就想JVM一样docker run -d --name elasticsearch -p 9200:920
2020-08-15 12:06:58
464
1
原创 Docker
安装可以直接跟着官网的操作去做https://docs.docker.com/engine/install/centos/仓库的话可以使用我们国内的阿里云阿里云镜像仓库yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm卸载yum remove docker-ce docker-ce-cl
2020-08-14 00:18:33
152
原创 springboot集成kafka
首先启动kafka。注意要修改配置文件 打开远程控制1.创建springboot工程并引入kafka依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>2.在主配置文件里进行kafka的配置#======
2020-05-29 09:58:04
260
原创 Kafka常用命令 以及zookeeper is not a recognized option解决方法
基本命令创建topic./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic codesheep查看已有的topic./bin/kafka-topics.sh --list --bootstrap-server localhost:9092创建生产者./bin/kafka-console-producer.sh --bootst
2020-05-29 00:42:32
12394
1
原创 SpringCloud
说起springCloud就不得不说一下我们的微服务开发:什么是微服务?我们的传统架构,所有的模块都在同一个项目当中。多个模块之间相互调用,耦合度很高,对于一些功能简单,单一的应用我们的传统响应很快也很方便,但是随着互联网的发展,我们的传统项目已经不能满足我们的需求了。这是我们就把传统项目的模块单独拆分出来组成一个个的服务,然后各个服务之间单独部署,相互调用。降低了我们系统的耦合度,也便于我们维护,但是也给我们开发带来了许多的困难。springCloud作为我们spring家族微服务的一把利器,受到
2020-05-17 21:56:49
214
原创 分布式事务与分布式锁
CAP我们的CAP理论最多只能同时满足俩个我们的Dubbo满足了cp没有满足a!!比如我们Zookeeper是一个由多个server组成的集群一个Leader多个follower,假如我们的leader挂掉了,这是我们保证了分区容错性,会迅速从follower里选择出来一个leader(选举的过程中不对外提供服务)。但这是如果有请求进来就会出错(所以没有保证可用性)。dubbo进行数据修改时需要将主节点和从节点数据同时进行修改。我们的Springcloud满足了ap没有满足cspringclou
2020-05-09 17:02:05
770
原创 Linux下查看cup 内存 io使用情况 以CPU占用过高解决思路 主要分析我们实际环境中项目运行变慢
Top执行top命令 查看整机的系统性能 主要是cpu和内存等的执行情况。右上角load average(系统的负载均衡) 如果三个值相加除以100大于60%说明系统的压力大。uptimevmstat -n 2 3查看cup的执行状态 每俩秒查看一次 采样3次查看所有cpu核信息: mpstart -P ALL 2 (每俩s采样一次)查看单个进程使用cup的用量分解信息:...
2020-05-06 22:48:58
507
原创 创建多线程的四种方式 (线程池 重点)
1.集成Thread2.实现Rubbable接口3.实现Callable接口 配合FuturTaskclass myThread implements Callable<Integer>{ @Override public Integer call() throws Exception { System.out.println("come in"...
2020-05-05 18:52:36
835
原创 手写java死锁及排查
class Resource implements Runnable{ private String lockA; private String lockB; public Resource(String lockA, String lockB) { this.lockA = lockA; this.lockB = lockB; }...
2020-05-05 18:47:20
257
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅