10 Wang-Junchao

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 650

Go源码阅读——mstats.go

【博文目录>>>】 【项目地址>>>】Go内存统计Go提供了运行进内存统计的方法,其实现在runtime/mstats.go文件中。go内存统计的作用有:Go内存实时监控内存dump时,统计内存相关信息Go GC时,统计GC相关的信息应用调试时分析内存分配等Go中的内存统计信息结构有两个,分别是mstats和MemStats,详细信息如下:...

2020-04-27 08:36:21

Go源码阅读——map.go

【博文目录>>>】 【项目地址>>>】Go Map实现map.go文件包含Go的映射类型的实现。映射只是一个哈希表。数据被安排在一系列存储桶中。每个存储桶最多包含8个键/元素对。哈希的低位用于选择存储桶。每个存储桶包含每个哈希的一些高阶位,以区分单个存储桶中的条目。如果有8个以上的键散列到存储桶中,则我们会链接到其他存储桶。当散列表增加时,我们将分配...

2020-04-23 08:26:49

go源码阅读——malloc.go

【博文目录>>>】 【项目地址>>>】内存分配器golang内存分配最初是基于tcmalloc的,但是有很大的不同。tcmalloc文章:参见:http://goog-perftools.sourceforge.net/doc/tcmalloc.html翻译:https://blog.csdn.net/DERRANTCM/article/details...

2020-04-13 08:07:32

TCMalloc:线程缓存Malloc

TCMalloc:线程缓存Malloc本文翻译了TCMalloc : Thread-Caching Malloc最重要的部分,TCMalloc是go语言内存分配的基石,go内存分配置就是从TCMalloc演化而来。其余部分内容可参见原文。动机内存分配速度快。TCMalloc比我测试过的glibc 2.3 malloc(可称为ptmalloc2的独立库)和其他malloc更快。ptmalloc...

2020-04-06 13:57:51

go源码阅读——chan.go

【博文目录>>>】 【项目地址>>>】chan.go是go语言通道实现,通道结构的定义,接收和发送的操作都此文件中实现。通道的结构hchan是通道表示的基本结构,其内容表示如下:一些特殊情况当dataqsiz=0时:说明这是一个无缓冲对列当dataqsiz>0时,说明是一个缓冲对列type hchan struct { qcoun...

2020-04-05 17:32:16

go源码阅读——value.go

【博文目录>>>】【项目地址>>>】基本内容value文件主要提供值的一些调用方法,value所需要的值在在type.go文件中定义package reflectimport ( "math" "runtime" "unsafe")const ptrSize = 4 << (^uintptr(0) >> 63) /...

2020-04-01 08:41:03

go源码阅读——type.go

基本结构图reflect包基础类型是Type,其主要实现是rtype,在rtype下会有基于种类型的实现,主要结构图。基本常量数据类型常量type Kind uintconst ( Invalid Kind = iota Bool Int Int8 Int16 Int32 Int64 Uint Uint8 Uint16 Uint32 Uint64 Uintp...

2020-03-26 08:17:30

事件源模式

【博文目录>>>】事件源模式使用仅追加存储来记录描述在域中对数据执行的操作的完整事件序列,而不是仅存储当前状态,以便可以使用该存储来实现域对象。这种模式可以通过避免同步数据模型和业务域的要求,简化复杂领域中的任务;提高性能、可伸缩性和响应性;为事务性数据提供一致性;并维护完整的审计追踪和历史记录,以支持采取补偿措施。背景与问题大多数应用程序使用数据,并且典型的方法是应用...

2020-03-21 10:48:24

命令和查询责任隔离(CQRS)模式

【博文目录>>>】命令和查询责任隔离(CQRS)模式使用单独的接口将读取数据的操作与更新数据的操作隔离开来。这种模式可以最大限度地提高性能、可伸缩性和安全性;通过更高的灵活性支持系统随时间的发展;并防止更新命令在域级别造成合并冲突。背景与问题在传统的数据管理系统中,命令(对数据的更新)和查询(对数据的请求)都针对单个数据存储库中的同一组实体执行。这些实体可以是关系数据库...

2020-03-14 08:33:00

计算资源整合模式

【博文目录>>>】计算资源整合模式将多个任务或操作整合到一个计算单元中。这种模式可以提高计算资源利用率,并减少与在云托管应用程序中执行计算处理相关的成本和管理开销。背景与问题云应用程序经常实现各种操作。在某些解决方案中,最初可能会遵循关注点分离的设计原则,并将这些操作划分为单独托管和部署的离散计算单元(例如,作为Microsoft Azure Cloud Service...

2020-03-08 09:21:18

竞争消费者模式

【博文目录>>>】竞争消费者模式使多个并发使用者能够处理在同一消息通道上接收的消息。这种模式使系统能够同时处理多条消息,以优化吞吐量,提高可伸缩性和可用性,并平衡工作负载。背景与问题运行在云中的应用程序可能会处理大量请求。与其同步处理每个请求,不如让应用程序通过消息系统将它们传递给另一个服务(消费者(服务)异步处理它们的服务。此策略有助于确保在处理请求时应用程序中的业务...

2020-03-07 07:39:32

补偿交易模式

【博文目录>>>】补偿交易模式如果一个或多个步骤失败,则撤消由一系列执行的工作的步骤组成,这些步骤一起定义最终一致的操作。遵循最终一致性模型的操作通常可在实现复杂业务流程和工作流的云托管应用程序中找到。背景与问题运行在云中的应用程序经常修改数据。这些数据可以分布在各种地理位置的各种数据源上。为了在这样的分布式环境中避免争用和提高性能,应用程序不应该试图提供强大的事务一致...

2020-02-29 09:02:09

缓存旁路模式

【博文目录>>>】缓存旁路模式根据需要从数据存储区将数据加载到缓存中。这种模式可以提高性能,并有助于保持缓存中的数据与基础数据存储中的数据之间的一致性。语境与问题应用程序使用缓存优化对数据存储中保存的信息的重复访问。然而,期望缓存的数据始终与数据存储中的数据完全一致是不切实际的。应用程序应该实现一种策略,以帮助确保缓存中的数据尽可能地更新,但也可以检测和处理缓存中的数据...

2020-02-09 09:59:27

云设计模式:云应用程序的规范体系结构指南

本指南包含24种设计模式和10个相关的指导主题,通过展示如何将每一项应用于云应用程序体系结构的全局图来阐明应用模式的好处。它还讨论了每种模式的好处和注意事项。大多数模式代码样例或者显示如何使用MicrosoftAzure的特性实现模式的片段。然而,本指南中描述的大多数主题与各种分布式系统同样相关,无论是在Azure上还是在其他云平台上。设计模式以下设计模式在云托管应用程序中非常有用。每个模式都...

2020-02-08 10:29:12

Java——Retry重试机制详解

Java——Retry重试机制详解@[TOC](Java——Retry重试机制详解)[【博文目录>>>】](http://blog.csdn.net/derrantcm/article/details/73456550)[【项目源码>>>】](https://github.com/Wang-Jun-Chao/spring-all/tree/master/boot...

2019-05-20 16:40:52

深入浅出Event Sourcing和CQRS

深入浅出Event Sourcing和CQRSEvent Sourcing也叫事件溯源,是这些年另一个越来越流行的概念,是大神Martin Fowler提出的一种架构模式。简单来说,它有几个特点:整个系统以事件为驱动,所有业务都由事件驱动来完成。事件是一等公民,系统的数据以事件为基础,事件要保存在某种存储上。业务数据只是一些由事件产生的视图,不一定要保存到数据库中。什么是Event ...

2019-01-18 10:49:14

Java新一代垃圾回收器——ZGC

Java新一代垃圾回收器——ZGC在JDK 11当中,加入了实验性质的ZGC。它的回收耗时平均不到2毫秒。它是一款低停顿高并发的收集器。ZGC几乎在所有地方并发执行的,除了初始标记的是STW的。所以停顿时间几乎就耗费在初始标记上,这部分的实际是非常少的。那么其他阶段是怎么做到可以并发执行的呢?ZGC主要新增了两项技术,一个是着色指针Colored Pointer,另一个是读屏障Load B...

2018-11-20 08:35:10

【31-Redis分布式锁进化史】

【博文总目录>>>】Redis分布式锁进化史近两年来微服务变得越来越热门,越来越多的应用部署在分布式环境中,在分布式环境中,数据一致性是一直以来需要关注并且去解决的问题,分布式锁也就成为了一种广泛使用的技术,常用的分布式实现方式为Redis,Zookeeper,其中基于Redis的分布式锁的使用更加广泛。但是在工作和网络上看到过各个版本的Redis分布式锁实现,每种实现都...

2018-11-19 09:33:09

MAC Pro 装Ubuntu 18 虚拟机字太小的调节方法

macpro 装Ubuntu18 虚拟机 字太小的调节方法用的macpro安装了ubuntu15虚拟机。结果因为分辨率太高,ubuntu里字体图标都很小。最后发现了一个可调节的方法:1.点击ubuntu的setting2.点击弹出窗口的dispalys3.弹出的Displays窗口中,选择分辨率和放大倍数,保存。...

2018-07-21 06:40:34

消息对队的使用和常用消息对列对比

【博文总目录>>>】一、消息队列使用的四种场景介绍消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题 实现高性能,高可用,可伸缩和最终一致性架构 使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。...

2018-03-11 10:29:07

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。