14案例:如何在Go-kit和ServiceMeh中进行服务注册与发现?

今天我和你分享的是如何在 Go-kit 和 Service Mesh 中进行服务注册与发现的案例。

在上一课时中,我们基于搭建好的 Consul 集群,通过 Consul 中提供的 HTTP API 实现了 register 的服务注册与发现功能。我们采用手动构造 HTTP 请求的方式,在服务启动时发送服务实例数据到 Consul 中完成服务注册,在服务关闭时向 Consul 请求服务注销,并通过 Consul 提供的服务发现接口根据服务名获取可用的服务实例信息列表。

14案例分析:乐观锁和无锁


title: “14案例分析:乐观锁和无锁” draft: false date: 2024-06-14 keywords: [Java 性能优化实战21讲, 极客时间, 14案例分析:乐观锁和无锁] categories: [Java 性能优化实战21讲] tags: [极客时间] comment: true toc: true autoCollapseToc: true

上一课时,我们提到了 concurrent 下面的 Lock,了解到它可以在 API 级别,对共享资源进行更细粒度的控制。Lock 是基于 AQS(AbstractQueuedSynchronizer)实现的,AQS 是用来构建 Lock 或其他同步组件的基础,它使用了一个 int 成员变量来表示state(同步状态),通过内置的 FIFO 队列,来完成资源获取线程的排队。

14错误侦测:如何保证分布式系统稳定?

经过上一讲的学习,相信你已经了解了分布式数据库领域中,分布式系统部分所重点解决的问题,即围绕失败模型来设计算法、解决各种稳定性问题。

解决问题的前提是发现问题,所以这一讲我们来说说如何发现系统内的错误,这是之后要介绍的算法们所依赖的前置条件。比如上一讲提到的共识算法,如果没有失败侦测手段,我们是无法解决拜占庭将军问题的,也就是会陷入 FLP 假说所描述的境地中,从而无法实现一个可用的共识算法。这里同时要指明,失败不仅仅是节点崩溃,而主要从其他节点看,该节点无法响应、延迟增大,从而降低系统整体的可用性。

14分布式主键:ShardingSphere中有哪些分布式主键实现方式?

本课时我将为你讲解 ShardingSphere 中的分布式主键实现方式。

在传统数据库软件开发过程中,主键自动生成技术是基本需求。各个数据库对该需求也提供了相应的支持,比如 MySQL 的自增键,Oracle 的自增序列等。而在分片场景下,问题就变得有点复杂,我们不能依靠单个实例上的自增键来实现不同数据节点之间的全局唯一主键,这时分布式主键的需求就应运而生。ShardingSphere 作为一款优秀的分库分表开源软件,同样提供了分布式主键的实现机制,今天,我们就对这一机制的基本原理和实现方式展开讨论。

14丨UDP也可以是“已连接”?

你好,我是盛延敏,这里是网络编程实战的第 14 讲,欢迎回来。

在前面的基础篇中,我们已经接触到了 UDP 数据报协议相关的知识,在我们的脑海里,已经深深印上了“UDP 等于无连接协议”的特性。那么看到这一讲的题目,你是不是觉得有点困惑?没关系,和我一起进入”已连接“的 UDP 的世界,回头再看这个标题,相信你就会恍然大悟。

14互通有无:如何设计跨语言的APM交互协议?

开源的 APM 产品的跨语言交互协议,以 2010 年 Google 发布 Dapper 论文的时间为节点,切分为两个阶段。

论文发布前,大多数跨语言交互协议的设计能简单解决上下游两个应用无法串联的问题即可;

14解析Webpack源码,实现自己的构建工具

前端工程化和基础建设这个话题,自然少不了分析构建工具。作为前端工程中最常见、最经典的构建工具,Webpack 必须要有一个独立小节进行精讲。可是,关于 Webpack 什么样的内容才更有意义呢?当前社区,Webpack 插件编写、loader 编写相关内容已经非常多了,甚至 Tapable 机制也已经有了涉猎。

14举一反三:Netty高性能内存管理设计(下)

在上一节课,我们学习了 Netty 的内存规格分类以及内存管理的核心组件,今天这节课我们继续介绍 Netty 内存分配与回收的实现原理。有了上节课的基础,相信接下来的学习过程会事半功倍。

14买住宅不得不考虑的因素

上一讲我们讨论了经济学的重要概念是稀缺性。你买房一定要选稀缺。这一讲我想和你谈谈,买住宅需要考虑什么?首先分析我国房价上涨的特点。再来看,你究竟怎么选房。, , 我国房价上涨的特点遵循洼地原则, , 先涨一线特大城市,后涨二线省会城市、现在涨的是三四线城市。从大城市到中等城市,再从中等城市到小城市,房价是一波波地涨起来。就拿一个城市来说吧,城中心的房价先涨,城市郊区的房价后涨。老区的先涨,新区的房子后涨。, , 例如,10 多年前北京最繁华地段是建国门,当时房价已涨到 3 万,而顺义的房价不到 3000 元。两者之间差了 10 倍。我曾经在课上说,从清华坐地铁到建国门是半小时,到顺义也是半小时。如果你的钱不够,就可以到顺义买房子,我认为,未来顺义房子的升值空间大。当时很多人不理解,都认为建国门房子升值空间大。, , 大家猜猜看,10 多年过去了,顺义房价现在多少钱了?5 万!建国门的房价多少钱?10 万!原来差 10 倍,现在只差 1 倍。为什么会出现这样的情况呢?, , 我总结了房价有一个的洼地原则,一个城市像一个大湖,往湖里扔石头,湖中心的浪花最大,波纹慢慢向四外扩散,直至扩散到湖边。这就是城中心的房价先涨,城边上的房价后涨。, , 为什么有洼地原则呢?是由土地的稀缺性决定。城市的人口越来越多,市中心的房子不够住的,人们必须住到外围去,最后买到了城边上。未来城市的边界是以地铁来划界。在大城市,地铁修到哪里,城市的边界就在哪里。你买到城边的房子没关系,因为有地铁很方便。, , 例如,10 多年前深圳市中心的房价是 3 万左右,而宝安区的房价不到 5000 元,差 6 倍。现在市中心房价 8 万,宝安区的房价升到 5 万,相差不到 2 倍。这说明了什么?也是洼地原则。, , 深圳的地铁修通了,从宝安区到市里只需要半个多小时,市中心道路拥挤,出门也需要半小时,这时宝安区的房价就会涨起来。所以,如果你现在还在二线城市或者三四线城市居住,买房时要先从市中心开始,一点点向外买,为什么?, , 比如,北京刚开始买房时大家不考虑这些,在哪里工作选择在哪里买房,随机性很强,当时人们买房只考虑居住,根本没有考虑房子的升值问题,那时房价的差别也不大,后来才发现,城市不同的地段升值的空间完全不同。你买房时,一定要看看这个房子未来有升值空间么?, , 我们的结论是,如果你在大城市,你可以往边上买房;如果你在小城市,应先在市中心买房,当城中心的房价已经涨上去了,你就考虑到城边买房子,考虑它的性价比。, , 下面我们来看看郑州,这个二线城市房价涨的过程。2005 年我到郑州做报告,房地产商在郑州市中心建了房,售价是 3800 元/平米,当时是属于高价房。我在报告中说,郑州是一个省会城市,以后会有很多人进城打工,由于大量人口的流入,未来郑州房价肯定会涨,现在买房合适。我又说到,如果郑州新区建好后,它的价格会比老区的房价贵。, , 我讲完课后,就有人在网上说:别听她的,这房产商的托!后来郑州房价涨起来,网上又有人说,早知道当时不骂她了,早点买房多合适啊!, , 我当时为什么判断郑州未来的房价会涨?因为郑州是河南的省会城市,有近 1 亿人口的腹地。这些年轻人来打工,他们需要住房,郑州的房价不可能只停留在 3000 多元。, , 那我又是如何判断郑州新区房价会超过老区呢?因为政府在新区做了大量投资,修建了地铁,拓宽了道路,建了高楼大厦,更像现代化的大都市。所以新区房价高于老区的房价是有道理的。大家看郑州高铁建好后,郑州东站边上的房价都涨了吧!, , 在 2005 年时,我判断中国未来有四个大一点的省会城市的房价一定会涨,一是郑州、二是合肥、三是武汉,四是长沙。为什么这么判断?, , 当时我看到中国省会房价的数据,只有这四个城市房价还在 3000 元左右(这里不包括中国东北和西北的边远地区)。因为省会城市周围有腹地,当经济发展了,农村人口向城市聚集,我判断,这里的房价一定会涨,但没有想到会涨得这么快。, , 以合肥为例。合肥这个城市原来不大,但它的腹地很大,安徽省农村人进城打工,年轻人买房的需求逐渐加大,合肥的房子供给又不能马上增加,就会造成一个时期房价的猛涨,随着合肥土地供给扩大和新房的增加,房价就会走到一个均衡价格。就是供给和需求平衡价格。, , 买住宅考虑什么?, , 买房时,还有一点你需要考虑的就是,如果政府投入基础设施在哪里,哪里的房价会涨!, , 在 2007 年北京开奥运会之前,奥运村附近的房价,精装修房 1.7 万元。但 2008 年奥运会之后,奥运村房价直线上升到 5 万元一平米。为什么呢?北京为了开奥运会,政府在奥运村周围做了很大大投资,地上地下都修好了,有两条地铁通过,四环和五环交通顺畅,基础设施充足,这里的房子当然值这个价。基础设施多,生活很方便,出行也很方便。, , 当你发现你住的城市,政府准备修一条路、修一条地铁,建一条轻轨或公交线路,或者建一个大的商场,这些地方就值得买房,未来有升值空间。只要政府修了路、建地铁、修高速、高铁之后,像沿线、沿路、高铁口、高速口、地铁口、公共汽车站口等,周边的房价都会涨,因为出行方便了。, , 根据洼地原则,一线城市房价先涨,二线城市房价后涨。但二三线城市房价上涨的幅度和速度都没有一线城市快。为什么呢?也是由土地的稀缺性和人口流出性导致。如果一个城市的土地可以无限向外扩张,这里的房价就不会持续上涨。为什么呢?只要房价一涨,开发商认为有利可图,就会增加房屋的供给,就会加紧盖房,这里的房价就升不上去。而一线城市周边没有了土地,土地供给不足,需求上升,房价涨。所以,考虑一个城市的房价是否上涨,主要看土地供给和人口的持续流入。, , 你买房一定要看:城市外围还有地吗?区域周边还有地吗?如果已经没有地了,你选择买这里的房子就有升值空间。这是由于土地稀缺性导致的。具体到买住宅,需要考虑什么呢?, , 首先,选择区片很重要,买住宅要考虑生活是否方便?家有老人孩子的,老人病了需要医院;孩子需要上幼儿园、小学、初中高中;上班交通是否方便?有地铁吗?有公交车吗?有轻轨吗?有高铁站吗?有机场吗?等。买住宅还要考虑到入学、医院、学校等,你在城市中心选房,交通方便的地段,未来会有升值空间。你在城边上买房,价格便宜,性价比合适,但升值空间相对小。, , 因为要考虑:教育、文化、养老、医疗、交通这几方面问题,符合这些条件的房价就贵。要出行方便、看病方便、就学方便。满足这些条件才是好房源。, , 当然养老院也是需要考虑的问题。城里的养老院是稀缺资源。我认为,下一个大家抢房的重点市场是城中心的高端养老院。, , 如果你选择住宅,未必选在市中心,未来的居住趋势是郊区化。发达国家的城市中心不住人,人们都住在郊区。为了生活质量好,可以呼吸到新鲜空气,城郊是富人居住的地方。现在中国人还都愿意扎堆住在市中心,享受这里的文化生活。未来中国也许不是这个样子。富裕的人愿意搬到乡下居住。郊区化是中国未来居住的发展趋势。, , 总结, , 最后,我们再来总结一下本讲的重点。, , 由于房价存在一个洼地原则,你在买房子时,如果是在大城市买房,手里要是没有这么多的钱,就可以考虑到城边去买,因为交通方便,住在城边上也是个不错的选择。如果你在三四线城市,你可以选在市中心买房,因为市中心的房价会升值快,边上房价会升值慢。, , 买住宅,你该重点考虑的是生活的方便,考虑老人孩子医疗和教育的问题。, , 未来人类居住的趋势,不住在市中心,而是郊区化。, , 了解了如何买住宅后你,你可以思考一下,买商铺和写字楼该考虑什么呢?买一个商铺可以养三代吗?, , -– ### 精选评论

14日志采集:如何在Kubernete中做日志收集与管理?

说到日志,你应该不陌生。日志中不仅记录了代码运行的实时轨迹,往往还包含着一些关键的数据、错误信息,等等。日志方便我们进行分析统计及监控告警,尤其是在后期问题排查的时候,我们通过日志可以很方便地定位问题、现场复现及问题修复。日志也是做可观测性(Observability)必不可少的一部分。