自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hcinfo_18的博客

基于华为云服务的一些个人实践,以及生活感悟。

  • 博客(38)
  • 收藏
  • 关注

原创 分布式消息队列RocketMQ与Kafka架构上的巨大差异

分布式消息服务 Kafka 是一个高吞吐、高可用的消息中间件服务,适用于构建实时数据管道、流式数据处理、第三方解耦、流量削峰去谷等场景,具有大规模、高可靠、高并发访问、可扩展且完全托管的特点,是分布式应用上云必不可少的重要组件。NameSrv是无状态的,你可以随意的部署多台,其代码也非常简单,非常轻量。那不禁要问了:ZooKeeper是业界用来管理集群的一个非常常用的中间件,比如Kafka...

2019-04-16 17:02:33 1339

原创 这七个关于分布式消息服务的常见问题,你知道吗?

分布式消息服务(Distributed Message Service,简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息。使用DMS,您可以创建消息队列,将消息队列作为一个传输消息的中转站,存储应用程序不同组件间传递的消息,从而做到在应用程序的不同组件之间传输消息时,不要求各个组件同时处于可用状态。那么我们在使用分布式消息...

2019-04-08 15:51:03 292

原创 详细介绍redis的集群功能,带你了解真正意义上的分布式

Redis 集群是一个分布式(distributed)、容错(fault-tolerant)的 Redis 实现, 集群可以使用的功能是普通单机 Redis 所能使用的功能的一个子集(subset)。Redis 集群中不存在中心(central)节点或者代理(proxy)节点, 集群的其中一个主要设计目标是达到线性可扩展性(linear scalability)。Redis 集群为了保证一...

2019-04-02 17:15:26 305

原创 教你简单理解分布式与传统单体架构的区别

分布式是一种系统架构方式,而在分布式系统中一般基于中间件进行开发,消息中间件是分布式系统中比较核心的中间件之一。这三样东西随便拿出一个来都可能要说上半天,而且个人水平有限,所以这里我也只能按照个人的理解简单说一下。分布式是区别于传统的传统的单体架构而言的。下面以小作坊和大工厂为例简单说一下。小作坊就相当于是传统的单体架构。一般来说,小作坊人手比较少,甚至只有一个人,那么其中所有的工...

2019-04-01 15:43:25 1028

原创 华为云分布式缓存服务DCS与开源服务差异对比

分布式缓存服务DCS提供单机、主备、集群等丰富的实例类型,满足用户高读写性能及快速数据访问的业务诉求。支持丰富的实例管理操作,帮助用户省去运维烦恼。用户可以聚焦于业务逻辑本身,而无需过多考虑部署、监控、扩容、安全、故障恢复等方面的问题。DCS基于开源Redis、Memcached向用户提供一定程度定制化的缓存服务,因此,除了拥有开源服务缓存数据库的优秀特性,DCS提供更多实用功能。一、与开...

2019-03-25 17:33:15 791

原创 做程序开发的你如果经常用Redis,这些问题肯定会遇到

分布式缓存Redis是一种支持Key-Value等多种数据结构的存储系统。可用于缓存、事件发布或订阅、高速队列等多种场景。Redis使用ANSI C语言编写,提供字符串(String)、哈希(Hash)、列表(List)、集合结构(Set、Sorted Set)、流(Stream)等数据类型的直接存取。数据读写基于内存,同时可持久化到磁盘。在我们做开发的过程中经常会用到Redis,小编在这里就...

2019-03-22 16:41:09 172

原创 Redis的数据类型以及每种数据类型的使用场景

人就是很奇怪的动物,很简单的问题往往大家都容易忽略,当我们在使用分布式缓存Redis的时候,一个最简单的问题Redis的数据类型以及每种数据类型的使用场景是什么?是不是觉得这个问题很基础?我也这么觉得。然而根据调查经验发现,至少百分之八十的人答不上这个问题。基本上,一个合格的程序员,五种类型都会用到。1.String这个没啥好说的,最常规的 set/get 操作,Value 可以是...

2019-03-21 15:57:54 1092

转载 这三点你须知:当你在开发中准备使用Redis时!

当我们在开发过程中需要用到分布式缓存Redis的时候,我们首先要明白缓存在系统中用来做什么?1. 少量数据存储,高速读写访问。通过数据全部in-momery 的方式来保证高速访问,同时提供数据落地的功能,实际这正是Redis最主要的适用场景。2. 海量数据存储,分布式系统支持,数据一致性保证,方便的集群节点添加/删除。Redis3.0以后开始支持集群,实现了半自动化的数据分片,不过需要sm...

2019-03-20 17:43:24 347

转载 Key-Value数据库:Redis与Memcached之间如何选择

华为云分布式缓存Redis5.0和Memcached都是华为云DCS的核心产品,那么在不同的使用场景之下,如何选择Redis5.0和Memcached呢?就由小编为大家进行详细的数据对比分析吧Redis和Memcached都是非常受欢迎的开源内存数据库,相对关系型数据库,Redis和Memcached使用都简单,且具备高性能。同为Key-Value数据库,我们该如何选择?...

2019-03-15 17:34:57 483

转载 Redis5.0:这些场景下使用,高效率还降低成本!

很多大型电商网站、视频直播和游戏应用等,存在大规模数据访问,对数据查询效率要求高,且数据结构简单,不涉及太多关联查询。这种场景使用Redis,在速度上对传统磁盘数据库有很大优势,能够有效减少数据库磁盘IO,提高数据查询效率,减轻管理维护工作量,降低数据库存储成本。华为云分布式缓存Redis5.0对传统磁盘数据库是一个重要的补充,成为了互联网应用,尤其是支持高并发访问的互联网应用必不可少的基础服...

2019-03-13 17:58:31 739

原创 Redis5.0:现公测全免费,点击就送,注册账号,即开即用

华为云分布式缓存服务Redis,是华为云服务的一款核心产品。分布式缓存Redis是一款内存数据库服务,基于双机热备的高可用架构,提供单机、主从、集群等丰富类型的缓存类型。现推出最新版本Redis5.0,公测阶段,全程免费使用,点击分布式缓存服务Redis就送,在华为云服务官网注册账号,即开即用。接下来,小编教大家如何获得这个免费公测。1.注册华为云服务账号首先登陆华为...

2019-03-11 17:15:08 388

原创 基于OAS设计可扩展OpenAPI

文章来源:华为云 API产品团队 黄泽艺,转载请声明版权。前言随着互联网行业的兴起,开发模式已逐步转换为微服务自治:小团队开发微服务,然后通过Restful接口相互调用。开发者们越来越渴望能够使用一种“官话”进行流畅的沟通,甚至实现多种编程语言系统的自动化交互。开放API战略(Open API Initiativev)于2017年1月发表声明,2月发布实现草案,经过反复讨论, 标准...

2018-09-25 20:33:20 911

原创 C#客户端(StackExchange.Redis) 连接Redis

最近因为需要,为小白客户提供各种语言的Redis连接示例。其中包括了C#(StackExchange.Redis)。废话不多说,以华为云分布式缓存服务(for Redis)为例,分享一下Redis的C#客户端连接配置过程。1. 首先我在华为云上买了一个Redis缓存实例。同时也买了一台ECS服务器,选了Windows Server 2012。2. 在ECS上安装VS 2017社区版,因...

2018-08-04 18:14:50 6297 2

原创 使用C语言客户端(hiredis)连接Redis

关键词:hiredis, cRedis, redis clients, redis客户端, C客户端, 华为云分布式缓存服务hiredis是一个非常全面的C语言版redis接口库,支持所有命令、管道与脚本。华为云分布式缓存服务Redis版支持hiredis客户端连接。使用C语言客户端(hiredis)连接Redis,需要先安装编译环境以及hiredis,以CentOS为例,介绍C客户端环境...

2018-07-07 16:44:56 1881 2

转载 详解Jedis连接池报错处理

声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(Redis)的用户指南。在使用Jedis连接池模式下,比较常见的报错如下:redis.clients.jedis.exceptions.JedisConnectionException:Could not get a resource from the pool首先确认实例是正常运行中状态,然后按以下步骤进行排查。网络1.        核对...

2018-06-14 21:13:18 587

原创 关于“程序员996”,互联网大神发话了,能顶用吗?

前段时间关于“程序员996”的话题热度一直不减,这不pathon创始人Guido,也站出来发表自己的心声。看到这个新闻,我第一个感想就是——还是程序员心疼程序员!这是一个老程序员跨越国界对另一个世界程序员的关怀,可比当年的白求恩,但是,作为一个熟悉程序员江湖的老兵,我也很清楚,他并帮不上什么忙。果然,现在Guido已经申请关闭那个讨论了。我翻译一下:我会请管理员关闭这个讨论,...

2019-04-23 18:10:03 346

转载 Kafka科普系列 | Kafka中的事务是什么样子的?

事务,对于大家来说可能并不陌生,比如数据库事务、分布式事务,那么Kafka中的事务是什么样子的呢?在说Kafka的事务之前,先要说一下Kafka中幂等的实现。幂等和事务是Kafka 0.11.0.0版本引入的两个特性,以此来实现EOS(exactly once semantics,精确一次处理语义)。幂等,简单地说就是对接口的多次调用所产生的结果和调用一次是一致的。生产者在进行重试的时候有...

2019-04-12 16:36:58 261

原创 RabbitMQ和Kafka,更加便捷高效的消息队列使用方式,请放心食用

一、RabbitMQ实例介绍RabbitMQ实例由华为云分布式消息服务(DMS)团队打造,实例采用物理隔离的方式部署,租户独占RabbitMQ实例。一键式部署,完全兼容开源RabbitMQ的使用方式,真正做到服务零改动快速迁移,大大节省维护和使用成本。产品特点一键式部署用户只需要在实例管理界面点击申请按钮,提交订单。后台将自动创建部署完成一整套RabbitMQ实例。即时可用...

2019-04-11 16:48:48 314

转载 艰涩难懂,不存在的,消息队列其实很简单

分布式消息服务(Distributed Message Service,简称DMS)是一项基于高可用分布式集群技术的消息中间件服务,提供了可靠且可扩展的托管消息队列,用于收发消息和存储消息。使用DMS,您可以创建消息队列,将消息队列作为一个传输消息的中转站,存储应用程序不同组件间传递的消息,从而做到在应用程序的不同组件之间传输消息时,不要求各个组件同时处于可用状态。一、什么是消息队列我...

2019-04-10 16:57:02 342

原创 别再犯低级错误,带你了解更新缓存的四种Desigh Pattern

在我们使用分布式缓存Redis或者Memcached编写更新缓存数据代码时,我们总是会犯一个逻辑错误。先删除缓存,然后再更新数据库,而后续的操作会把数据再装载的缓存中。试想,两个并发操作,一个是更新操作,另一个是查询操作,更新操作删除缓存后,查询操作没有命中缓存,先把老数据读出来后放到缓存中,然后更新操作更新了数据库。于是,在缓存中的数据还是老的数据,导致缓存中的数据是脏的,而且还一直这样脏下去了...

2019-04-04 16:13:58 280

原创 新手向干货:从不同的角度来详细分析Redis

最近对华为云分布式缓存产品redis做了一些研究,于是整理了一些基本的知识拿出来与大家分享,首先跟大家分享的是,如何从不同的角度来详细使用Redis。小编将从以下9个角度来进行详细分析,希望可以帮到大家。一、网络模型:Redis使用单线程的IO复用模型,自己封装了一个简单的AeEvent事件处理框架,主要实现了epoll、kqueue和select,对于单纯只有IO操作来说,单线程可以...

2019-03-28 16:24:04 134

原创 培训班出来的程序员全是垃圾,没有例外?

小编最近逛论坛,发帖子,看到一个网友的回帖很气愤。他的帖子是这么说的:“培训班出来的程序猿全是垃圾,没有例外。一个优秀的程序员首先是兴趣和热爱这个行业,其次是思维方式和学习能力。短短几个月的培训班只会毁了你,让你变成面试机器而不是塑造你。”你说气不气,我反正是很气,虽然他的留言稍微偏激,但其实也能代表了行业内很少一部分人的观点,甚至有时候一些公司招聘的时候,也会特别注意从某个培训机构出来的...

2019-03-27 15:58:43 7068 7

转载 如何使用phpredis链接Redis的方法

本文跟大家介绍使用同一VPC内弹性云服务器ECS上的phpredis连接Redis的方法。更多的客户端的使用方法,请参考https://redis.io/clients前提条件已成功申请Redis实例,且状态为“运行中”。 已创建弹性云服务器,创建弹性云服务器的方法,请参见《弹性云服务器用户指南》。 如果弹性云服务器为Linux系统,该弹性云服务器必须已经安装gcc编译环境。...

2019-03-19 17:45:17 565

原创 如何在DCS管理控制台将两个Redis主备实例建立全球灾备

华为云分布式缓存服务DCS,具有强大的功能,现在小编教大家如何在DCS管理控制台将两个Redis主备实例建立全球灾备。建立全球灾备,会对主实例和备实例进行升级,实例进程会重启,连接会中断。同时备实例会从主实例同步数据,原有的数据会被覆盖,需要谨慎操作。创建了全球灾备后,不同区域的实例可以相互同步数据。当前,该功能只在华北、华东、华南三个区域支持,请以控制台实际情况为准。1 前提条件已...

2019-03-18 16:27:47 192

转载 干货:Redis5.0支持的新功能说明

Redis5.0支持的新特性说明华为云DCS的Redis5.x版本继承了4.x版本的所有功能增强以及新的命令,同时还兼容开源Redis5.x版本的新增特性。Stream数据结构Stream是Redis 5.0引入的一种新数据类型,它是一个全新的支持多播的可持久化消息队列。点击下方链接,可以了解更多详情。https://www.huaweicloud.com/product/dc...

2019-03-11 09:22:47 5021

转载 Redis4.0支持的新功能说明

本文以华为云DCS for Redis版本为例,介绍Redis4.0的新功能。文章转载自华为云帮助中心。与Redis3.x版本相比,DCS的Redis4.x以上版本,除了开源Redis增加的特性之外,还有如下大特性增强。l创建耗时缩短实例由虚机方式改成了物理机容器化部署,创建实例只需要8~10秒时间完成。l性能提升高性能版Redis4.x,操作系统使用华为自研的轻量...

2019-03-08 09:43:17 225

原创 Python客户端(redis-py)连接Redis

使用Python连接Redis,需要先安装Python以及redis-py,以CentOS为例,介绍redis-py的客户端环境搭建。第0步:准备工作华为云上购买1台弹性云服务器ECS(我选了CentOS 6.3),一个分布式缓存实例(DCS for Redis),我选了个单机实例。注意ECS和缓存实例配置相同的VPC和安全组,确保网络互通。第1步:安装python和redis-py如果系统没有自...

2018-07-07 11:36:44 3110

原创 如何配置php客户端(phpredis)并连接Redis

使用php连接Redis、Memcache等都需要进行扩展,以CentOS为例,介绍phpredis的客户端环境搭建。第0步:准备工作华为云上购买1台弹性云服务器ECS(我选了CentOS 6.3),一个分布式缓存实例(DCS for Redis),我选了个单机实例。注意ECS和缓存实例配置相同的VPC和安全组,确保网络互通。 第一步:安装gcc-c++及make等编译组件...

2018-07-07 09:53:45 3063

转载 如何提高队列的消息处理效率

关键词: 消息队列   处理效率 消费确认 消息幂等传递 批量消费消息  Kafka RabbitMQ声明:本文并非原创,转自华为云帮助中心的分布式消息服务(DMS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。消息发送和消费的可靠性必须由DMS服务和生产者以及消费者协同工作才能保证。同时开发者需要尽量合理使用DMS消息队列,以提高消息发送和消息消费的效率与准确性。对使用DMS服务的生产者...

2018-05-31 10:27:11 2269

转载 消息队列的四大典型使用场景

关键词: 消息队列   使用场景 Kafka RabbitMQ声明:本文并非原创,转自华为云帮助中心的分布式消息服务(DMS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。分布式消息服务可应用在多个领域,包括异步通信解耦、企业解决方案、金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等。分布式消息服务可以应用但不局限于以下业务场景:业务解耦将业务中依...

2018-05-31 10:07:12 1077

转载 Memcache的客户端连接系列(四) PHP

关键词: Memcached   PHP 客户端声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(DCS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。PHP客户端RedHat系列:以CentOS7为例介绍PHP版本客户端的安装。Redhat、Fedora等系统也适用。安装gcc-c++及make等编译组件。yum install gcc-c++ make安装sasl相关包。yum ...

2018-05-29 17:25:46 452

转载 Memcache的客户端连接系列(三) C++

关键词: Memcached   C++ 客户端声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(DCS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。C++客户端示例用户的弹性云服务器已安装好GCC,建议为4.8.4或更高版本。已获取libmemcached-x.y.z.tar.gz依赖包。 说明:其中x.y.z为依赖包的版本号,建议获取最新版本。获取缓存实例的IP地址/域名和端口...

2018-05-29 11:51:21 663

转载 Memcache的客户端连接系列(二) Python

关键词: Memcached   Python 客户端声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(DCS)的用户指南。客户端连接方法通用,故摘抄过来分享给大家。Python客户端示例用户的弹性云服务器已安装好Python,建议为2.7.6或更高版本。已获取python-binary-memcached-x.y.z.zip依赖包。 说明:其中x.y.z为依赖包的版本号,建议获取最新版本。...

2018-05-29 10:08:31 467

转载 Memcache的客户端连接系列(一) Java

声明:本文并非原创,转自华为云帮助中心的分布式缓存服务(DCS)的用户指南。关键词: Memcached  客户端 Java Java连接池Java客户端示例用户的弹性云服务器已安装好Java JDK和常用的IDE(如Eclipse)。已获取spymemcached-x.y.z.jar依赖包。 说明:其中x.y.z为依赖包的版本号,建议获取最新版本。获取缓存实例的IP和端口。登录管理控制台。在管理...

2018-05-28 20:15:34 782

转载 分布式数据库中间件的实现原理介绍四:平滑扩容

声明:本文并非原创,转自华为云帮助中心的分布式数据库中间件(DDM)服务的产品介绍。    随着业务增长,逻辑库存储空间不足,并发压力较大,此时可对DDM实例逻辑库进行平滑扩容,通过增加RDS实例来提高数据存储能力与并发支持能力。    平滑扩容是一种水平扩容方式,通过增加RDS实例的数量来提升总体数据存储容量,把分库平滑扩容到新增加的RDS实例上,保证所有的数据都是均衡分布在每个分库上,降单个R...

2018-05-28 19:15:45 587

转载 分布式数据库中间件的实现原理介绍三:读写分离

声明:本文并非原创,转自华为云帮助中心的分布式数据库中间件(DDM)服务的产品介绍。    数据库中对计算和缓存资源消耗较多的往往是密集或复杂的SQL查询。当系统资源被查询语句消耗,反过来会影响数据写入操作,进而导致数据库整体性能下降,响应缓慢。因此,当数据库CPU和内存资源占用居高不下,且读写比例较高时,可以为数据库添加只读实例。    添加只读实例的作用有以下:将查询非事务性查询SQL路由到只...

2018-05-28 18:54:58 1028

转载 分布式数据库中间件的实现原理介绍二:路由分发

声明:本文并非原创,转自华为云帮助中心的分布式数据库中间件(DDM)服务的产品介绍。    路由分发与水平分片同为DDM的基础功能。    在分布式数据库中,路由的作用即将SQL语句进行解析,并转发到正确的分片上,保证SQL执行后得到正确的结果,并且节约QPS资源。    例如:订单支付系统包含了shard0、shard1、shard2三个分片,订单号2017010112345678的订单数据存储...

2018-05-28 17:11:52 1083

转载 分布式数据库中间件的实现原理介绍一:分库分表【转】

声明:本文并非原创,转自华为云帮助中心的分布式数据库中间件(DDM)服务的产品介绍。分片是解决数据库存储容量限制的直接途径。分片包括垂直分片与水平分片两种方式。垂直分片垂直分片又叫纵向分割,即以逻辑表为单位,把原有数据库切分成多个数据库。切分后不同的表存储在不同的数据库上。垂直分片与业务架构设计有密切的联系。比如从业务领域对系统进行架构优化,分成多个子业务系统,各个子业务系统耦合度较低。子业务系统...

2018-05-28 16:15:47 558

空空如也

空空如也

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

TA关注的人

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