用consul做grpc的服务发现与健康检查 consul 服务发现与负载均衡 当server端是集群部署时,client调用server就需要用到服务发现与负载均衡。通常有两总方式: 一种方式是在client与server之间加代理,由代理来做负载均衡 一种方式是将服务注册到一个数据中心,client通过数据中心查询到所有服务的节点信息,然后自己选择负载均衡的策略。 第一种方式常见的就是用nginx给http服务做负载均衡,client端不直接与server交互,而是把请求并给nginx,ng...
-
用consul做grpc的服务发现
-
大型互联网必备架构技术:高性能+分布式+开源框架+微服务
Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。在这里分享5个专题来提高大家的编程能力:开源框架解析-高性能架构-微服务架构-工程化-大型电商项目实战。开源框架解析专题阅读、分析源码是程序员最基本的码代码能力也是码农的根本所在,学习经典源码中所用到的经典设计思想及常用设计模式,能够帮你了解大牛是如何写代码的,从而吸收大牛的代码功力。在阿里面试中,MyBatis,Spring等框架的底层原理是经常会被问到的高性能架构专题阿里巴巴有很多大团...
-
Go日志框架zap与lumberjack简单配置封装
简介 zap zap是uber开源的Go高性能日志库 https://github.com/uber-go/zap lumberjack Lumberjack用于将日志写入滚动文件。zap 不支持文件归档,如果要支持文件按大小或者时间归档,需要使用lumberjack,lumberjack也是zap官方推荐的。 https://github.com/natefinch/lumberjack 简单使用 工程结构 项目结构.png 核心代码 LogCore /** * 获取日志 * filePath...
-
golang 并发安全Map以及分段锁的实现
涉及概念 并发安全Map 分段锁 sync.Map CAS ( Compare And Swap ) 双检查 分断锁 type SimpleCache struct { mu sync.RWMutex items map[interface{}]*simpleItem } 在日常开发中, 上述这种数据结构肯定不少见,因为golang的原生map是非并发安全的,所以为了保证map的并发安全,最简单的方式就是给map加锁。 之前使用过两个本地内存缓存的开源库, gcache, cach...
-
扣丁学堂解析golang并发安全Map以及分段锁的实现方法
今天扣丁学堂区块链培训老师给大家介绍一篇关于golang 并发安全Map以及分段锁的实现方法详解,首先涉及概念:并发安全Map、分段锁、sync.Map、CAS(CompareAndSwap)、双检查等下内容,下面我们一起来看一下吧。 分断锁type SimpleCache struct { mu sync.RWMutex items map[interface{}]*simpleItem}在日常开发中,上述这种数据结构肯定不少见,因为golang的原生map是非并发安全的,所以为了保证map的...
-
使用drone和gogs搭建自己的CI/CD系统
drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。 首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。 需要的东西有:linux,docker,docker-compose,drone,gogs,git等。 安装gogs和drone 配合荣锋亮大哥的yml文件和docker-compose我们可以很容易安装他们: version...
-
golang的sync.mutex
文章计划分为以下几部分: 1.什么是锁,锁的粒度,一般锁的实现,常见锁的类型 并发下的同步和互斥 原子操作、信号量、互斥量、读写信号量、自旋锁 2.golang锁的设计思想与演进 3.golang锁设计的底层基础简介 4.golang锁的代码实现与一些流程图 5.吐槽~ 参考资料: 设计演进http://www.cnblogs.com/niniwzw/archive/2013/06/24/3153955.html 一、什么是并发锁 高并发下,如何保证并行的多线程同时访问一片共享内存时不出现问题,...
-
百亿互金平台技术栈大起底
技术栈(technology stack)就是一个公司的透视镜,从某些程度上可以展示出公司的技术实力。从技术桟也可以看出整个平台的技术要素,平台大小规模等,今天来给大家分享我司的技术全家桶。 总览 闲来无事就想着还可以总结总结什么,平台架构、事故解决方案等以前都写过了,这次就主要写写我们都用过那些技术吧。我分了五块内容来介绍我们的技术栈:前端、后端、中间件、运维和工具。画了一个思维导图方便大家整体预览。 点击这里看大图 接下来就展开来说 前端 我司的前端比较简单主要分为了三大块:PC前端、移动端...