自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 c语言中变量的再度理解

最近看了一篇知乎,解答了我内心的疑问 question: 比如 int a = 5 我知道有一块内存,存了这个值5,a代表了这块内存。就好像给一个盒子起名叫a,这个盒子里装了5,现实中这个名字,也就是a只是存在人脑里的,不是实话的。 另外a,b等字符在计算机里用很小的整数储存,也就是a和65对应。 我的问题是 a = 5 的时候,有一块内存存了5,也就是这块内存是00000101,但计算机怎么知道这块内存叫a?这个名字a是在哪里储存的? 我的理解是否有一块专门存储变量名的内存,比如根据顺序第x块存了65,这

2021-01-10 18:13:46 332

转载 zookeeper的zab协议工作原理

原子广播 说zab协议之前必须提一下 paxos 协议 paxos协议主要就是如何保证在分布式环网络环境下,各个服务器如何达成一致最终保证数据的一致性问题 ZAB协议,基于paxos协议的一个改进。 zab协议为分布式协调服务zookeeper专门设计的一种支持崩溃恢复的原子广播协议 zookeeper并没有完全采用paxos算法, 而是采用zab Zookeeper atomic broadca...

2020-04-19 16:17:43 662 1

转载 Seata AT 模式分布式事务源码分析

什么是 Seata AT 模式 AT 模式是 Seata 主推的分布式事务解决方案,最早来源于阿里中间件团队发布的 TXC 服务,后来成功上云改名 GTS。Seata 官方文档中有关于 AT 模式的详细介绍 —— AT Mode,它使得应用代码可以像使用本地事务一样使用分布式事务,完全屏蔽了底层细节,它和笔者之前介绍过的 Seata TCC 模式的区别有以下几点: 使用上,TCC 依赖于用户自行实...

2020-04-18 23:56:28 690

原创 rpc服务发现篇(九)

本篇针对hystrix进行粗略的讲解 上篇对hystrix留了三个疑问 1、如何做到对不同的command对象使用相同的semaphore和断路器呢? 2、semaphore和断路器是作用于什么维度上的呢?是command key还是group key?也就是对每个方法进行限流和断路还是每个service呢? 3、每次都传入hystrix command properties,会修改之前的配置吗?...

2020-04-03 11:46:53 435

原创 读netty源码有感

netty的核心组件有:BootStrap、EventLoop、EventLoopGroup、ChannelPipeLine、HandlerContext、Handler、ByteBuf 接下来按流程来叙述 首先通过BootStrap启动类来启动一个netty server或者client,启动分为三步,对于server而言,第一步,首先是通过反射创建一个NioServerSocketChanne...

2020-03-31 14:05:19 377

原创 为什么要使用自定义 tcp 协议的 rpc 做后端进程通信?

从知乎上看了一篇文章,深有感触,这里贴一下原文章地址 https://www.zhihu.com/question/41609070?sort=created 问题:既然有 HTTP 请求,为什么还要用 RPC 调用? 首先 RPC 框架配置复杂,如果走 HTTP 请求同样也能做到相同功能,而且配置可以几乎为零配置。项目也不用引用太多的包。虽然如果单纯用 RPC,可以不用类似于 Servlet 的...

2020-01-28 11:50:21 893 1

原创 传输层、应用层协议简述

传输层协议 传输层协议有tcp和udp,UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境;TCP因为要经过三次“对话”,传输可靠,适用于传输大文件,速度比UDP慢。 socket分别实现了这两种协议,在java中,class Socket实现了tcp协议,class DatagramSocket实现了udp协议,当调用了socket或者datagramSocket的send方法时,底层会...

2020-01-21 14:46:23 705

转载 Redis事件机制

分别转自: https://segmentfault.com/a/1190000020014518?utm_source=tag-newest https://cloud.tencent.com/developer/article/1054016 Redis 采用事件驱动机制来处理大量的网络IO。它并没有使用 libevent 或者 libev 这样的成熟开源方案,而是自己实现一个非常简洁的事件驱...

2019-11-01 10:48:48 234

转载 NIO的write事件及connect事件

NIO Server端多路复用开发的一般步骤是: //打开选择器 Selector selector = Selector.open(); //打开通到 ServerSocketChannel socketChannel = ServerSocketChannel.open(); //配置非阻塞模型 socketChannel.configureBlocking(false); //绑定端口 so...

2019-10-30 13:57:50 957

转载 分析Zookeeper的一致性原理

转自:https://blog.51cto.com/welcomeweb/2103292?utm_source=oschina-app zookeeper(简称zk),顾名思义,为动物园管理员的意思,动物对应服务节点,zk是这些节点的管理者。在分布式场景中,zk的应用非常广泛,如:数据发布/订阅、命名服务、配置中心、分布式锁、集群管理、选主与服务发现等等。这不仅得益于zk类文件系统的数据...

2019-10-14 09:41:12 238 1

转载 关于mysql事务与锁

最近学习了几篇博客, 对以前事务与锁的理解有所更改,做一下记录。 参考的博客: https://blog.youkuaiyun.com/wwd0501/article/details/85322142 https://blog.youkuaiyun.com/c466254931/article/details/53463596 锁的释放机制如下: 补充一下select for update也会加select的排他锁,在...

2019-02-19 11:54:04 241

原创 Tomcat启动session创建机制

session只有在调用request.getSession()或request.getSession(true)时才会创建。注意jsp由于默认指令:<%@ page session=“true”%>,导致在访问jsp时也会创建session,置为false可关闭。 如: 启动一个项目,浏览器中输入localhost:8088来访问该项目,进入到欢迎页面,第一次时请求和相应如下: 由...

2019-02-10 11:26:06 1647

原创 linux ll命令各字段意义及chmod和chown、chgrp

linux ll命令各字段意义 参考https://www.cnblogs.com/xiaoyangyi/p/6305952.html 文件属性 文件数 拥有者 所属的group 文件大小 建档日期 文件名   drwx------ 2 Guest users 1024 Nov 21 21:05 Mail   -rwx–x--x 1 root root 89080 Nov 7 22:41 tar*...

2019-02-02 19:52:47 511

原创 mysql及mybatis批量更新数据update

mysql批量更新update 使用case when语句,数据表如下: case 1 其中age为非空字段。sql如下 update test1 set age=case when id=2 then 1 when id =3 then 2 end where id in (2,3,4) 对id为2,3,4的设置age字段,id为2的设置为1,3的设置为2,结果为: Column ‘age...

2019-01-27 15:50:53 35490 6

原创 @RequestParam和request.getParamter和request.getParamterMap的用法及区别

@RequestParam 该注解是用于获取在get 方式中queryString的值,和Content-Type为application/x-www-form-urlencoded的post方式中 body data的值。 request.getParamter(String s) 该方法和上面的注解功能相同,也是用来获取get或post方式传递的参数值,输出结果为String类型 reques...

2019-01-25 11:03:17 2016

原创 tomcat多线程处理及ThreadLocal使用注意

tomcat多线程处理及ThreadLocal使用注意 tomcat默认使用线程池来管理线程,即当收到一个请求时,如果线程池存在空闲线程,则会从中取出一个空闲线程来处理该请求。当一个线程在处理请求时,其他请求就不会被分配至该线程。 例如有a,b,c三个空闲线程: 1、当request1到来时,分配a线程来处理 2、同时有request2到来,此时a线程在处理中,因此只有bc两个空闲线程,则会从中选...

2019-01-24 14:14:13 4661 1

原创 如何将项目部署到远程linux服务器并进行远程调试

如何将项目部署到远程linux服务器并进行远程调试一、将项目部署到远程服务器二、内网穿透三、nginx反向代理四、远程debug 一、将项目部署到远程服务器 1、将本地web项目打包成war包,如maven项目可双击package进行打包,默认输出路径在target路径下。 2、通过命令将本地的war包传输到远程服务器的tomcat下的webapps: scp /…/target/XXX.war...

2019-01-23 14:48:34 1574

空空如也

空空如也

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

TA关注的人

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