![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 90
长白山西红柿
这个作者很懒,什么都没留下…
展开
-
缓存一致性协议和volatile
在阅读LongAdder源码的过程中,碰到了@sun.misc.Contended的使用,在百度了一下后了解到该注解是为了解决伪共享问题。 什么是伪共享? 要想彻底了解伪共享,首先要对缓存行(也可称为缓存段),和缓存一致性协议有所了解。个人在网上找了许多资料认为:缓存一致性(Cache Coherency)入门,这篇简绍的比较好,建议大家阅读一下。 以及了解缓存一致性协议(MESI)的具体流程这里我推荐:缓存一致性协议的工作方式(但是里面在脏段被修改后,其它CPU依然可以...原创 2021-04-18 16:36:30 · 1038 阅读 · 1 评论 -
学习Git
一、安装git客户端https://www.cnblogs.com/ximiaomiao/p/7140456.html二、创建Github的repositoryhttps://blog.csdn.net/qq_38723394/article/details/80305245遇到一个小问题:当完成这两步时会报错,说无法找到远程连接,这让我莫名其妙,基本步骤都是按上面来的。...原创 2020-04-23 12:16:53 · 171 阅读 · 0 评论 -
dubbo学习笔记
配置文件优先级关系:1.JVM -D参数,当你部署或者启动应用时,它可以轻易地重写配置,比如,改变dubbo协议端口;2.外部化配置,指将配置集中起来放在注册中心服务器上或其它。3. ServiceConfig、ReferenceConfig等编程接口采集的配置4.XML, XML中的当前配置会重写dubbo.properties中的;5..Properties,默认配置,仅...原创 2020-03-30 17:33:05 · 183 阅读 · 0 评论 -
框架演变过程以及分布式基础RPC原理
1.2)、发展演变单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。适用于小型网站,小型管理系统,将所有功能都部署到一个功能里,简单易用。缺点: 1、性能扩展比较难:如果要对应用里的某个功能扩展,所有应用必须重新部署 2、协同开发问题:大家一起修改可能会使项目...原创 2020-03-22 09:11:38 · 243 阅读 · 0 评论 -
SpringBoot整合dubbo以及遇到的坑
学习网站:https://blog.csdn.net/belonghuang157405/article/details/84070689说说遇到的坑:1.依然要加log4j的配置文件(log4j.properties):# Global logging configuration 开发时候建议使用 debuglog4j.rootLogger=DEBUG, stdout# Con...原创 2020-03-19 10:22:35 · 694 阅读 · 0 评论 -
初学dubbo+zookeeper以及遇到的问题
通过Dubbo:从入门到实战在初步了解dubbo以后,我决定先安装配置zookeeper:ZooKeeper的下载安装遇到两个坑(windows系统):1.从2.6版本以后官网下载将源码和打包好的分开了,如果只下载源码是没办法运行的,需要将那个可以运行的zookeeper根目录下的lib目录复制过来,否则启动zkServer会报无法加载主类的错误,之后闪退。2在启动zkSer...原创 2020-03-15 12:55:08 · 370 阅读 · 1 评论 -
后端缓存系统设计要点
选择合适的缓存的分类:1.本地缓存:本地调用,不支持分布式,调用较快。适合一些静态数据,比如配置数据、游戏商店道具等。2.分布式缓存:远程调用,支持分布式,调用较慢。适合一些全局数据,比如排行榜,世界消息等。缓存同步方式:Cache Aside:读取数据先检查缓存中是否有该数据,若有则返回数据,若没有则去访问数据库,返回时添加到缓存中。更新数据同步更新数据库和缓存中的数据,或只更新...原创 2020-03-12 10:07:01 · 457 阅读 · 0 评论 -
如何搭建一个高性能高可用MySQL数据库
首先关系型数据库和非关系型数据库对比:怎么搭建一个高性能、高可用和能存储海量数据的关系型数据库(比如MySOL):主从同步:从数据库对主数据库进行数据备份,并且通过数据冗余(比如将数据多复制一份,那么我们就可以将访问流量分成两半同时访问)来提升效率。读写分离:一般情况下,对数据库的读操作远远多于写操作,我们可以将写请求分配给主服务器,将读请求分配给从数据库,这样我们就只需要对主数据...原创 2020-03-07 14:50:12 · 864 阅读 · 0 评论 -
怎么使用软引用和弱引用提升内存性能
软引用的作用是当GC时在内存足够的情况下不会回收,弱引用只要发生GC就会回收。软引用可以用来做缓存,这样既不影响内存整体使用,又不需要单独编写清理缓存程序,因为GC更懂的合理适时回收。弱引用可以用来替换手动清理的过程,比如当一个用户下线时,我们可能在不同的地方保存了对这个用户的信息,如果使用弱引用保存信息,当这个用户的强引用消失时,下一次GC会自动回收。...原创 2020-03-06 17:28:05 · 183 阅读 · 0 评论 -
关于Java中的fianl、finally、finalize的看法
fianl:是一个关键字可以用来修饰变量、方法和类 1、修饰变量:如果修饰的是一个基本类型的变量(包括静态的和非静态的),那么表示这个变量的值被初始化之后将无法被更改,如果修饰的是一个对象,那么表示这个变量所指向的引用是不会变得,而这个对象里的内容是可以被修改的(类似于C语言中的指针,指针的指向无法被修改而指向的变量的值是可以被修改的)。 注:被fin...原创 2020-03-06 17:24:20 · 295 阅读 · 0 评论 -
JAVA学习笔记之GC
引用文章有: JVM内存区域解析 JAVA内存模型及垃圾回收自我总结 JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代Java GC(绝对干货)GC(gabage collection)垃圾收集器。为什么java要有GC。 我们编程人员在编程中用到的内存空间主要有两部分:堆栈和堆。一般变量的空间都占用的是堆栈空间,不过我们编程人员可...原创 2020-03-06 17:23:45 · 200 阅读 · 0 评论