cassandra

最终,我们放弃了GO,迁移至Rust,特性使然

耗尽温柔 提交于 2020-03-24 08:36:33
3 月,跳不动了?>>> 云栖号: https://yqh.aliyun.com 第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 在各个领域,Rust 都已经成为一流的语言。在 Discord,我们看到了 Rust 在客户端和服务端的成功。举例来说,我们在客户端使用它实现了 Go Live 的视频编码管道,在服务端,它则被用于 Elixir NIFs。最近,我们通过将服务的实现从 Go 切换到 Rust,极大地提升了该服务的性能。本文阐述了重新实现服务为何是有价值的、该过程是如何实现的以及由此带来的性能提升。 Read States 服务 Discord 是一家以产品为中心的公司,所以我们先介绍一下产品的背景信息。我们从 Go 切换到 Rust 的服务叫做“Read States”服务。它的唯一目的是跟踪用户阅读了哪些频道和信息。每当用户连接 Discord 的时候,每当消息发送的时候,每当消息被读取的时候,都会访问 Read States。简而言之,Read States 处于最关键的位置。我们希望能够保证 Discord 始终让人感觉快捷无比,所以必须要确保 Read States 是非常快速的。 在 Go 的实现中,Read States 无法支持产品的需求。在大多数情况下,它都是很快速的

求职期间,我们遇到的大数据开发和大数据平台开发有什么区别?

你。 提交于 2020-03-23 16:22:33
3 月,跳不动了?>>> 求职期间,我们遇到的大数据开发和大数据平台开发有什么区别? 不少人问过我一个问题,大数据开发和大数据平台开发,有什么不一样?今天就这个话题说几句。先给大家上两张boss上的图: 首先,大数据开发通常指的是基于大数据产业链的一系列开发任务,涉及到大数据平台开发、大数据应用开发、大数据分析等,另外还包括数据采集产品的开发、数据整理产品的开发等等,如果向上延伸的话,部分大数据开发任务与人工智能开发任务也具有密切的联系。 大数据平台开发通常有两层含义,一层是进行大数据平台自身的开发,这属于研发级开发任务,比如大数据平台Hadoop就是采用Java语言开发的。整个大数据平台还涉及到一系列产品,包括HBase、Hive、Avro、Zookeeper、Pig、Mahout、Cassandra等,开发这些产品也需要一个庞大的团队。进行大数据平台研发的程序员往往需要具备丰富的开发经验,同时具备较强的研发能力,能够搭建出一个稳定的分布式计算体系。 另一层含义是在大数据平台下进行应用开发,比如在Hadoop、Spark平台下进行具体的大数据应用开发等,这部分开发通常属于应用级开发,难度要相对小一些,但是往往需要与具体的场景进行紧密的联系,需要开发者具备一定的行业背景知识。 目前大数据应用开发主要的任务有两个,其一是进行已有软件产品的大数据改造

API gateway 之 kong0.12.3 安装

谁都会走 提交于 2020-03-23 01:06:15
kong安装: https://getkong.org/install/centos/ 下载指定版本rpm: wget https://bintray.com/kong/kong-community-edition-rpm/download_file?file_path=centos/7/kong-community-edition-0.12.3.el7.noarch.rpm yum install epel-release yum install xxx.rpm kong数据库安装: kong支持2种数据库存储(postgreSQL 和 Cassandra ) postgreSQL官网: https://www.postgresql.org/download/ Cassandra官网: http://cassandra.apache.org/download/ 安装postgreSQL: yum install https://download.postgresql.org/pub/repos/yum/9.4/redhat/rhel-7-x86_64/pgdg-centos94-9.4-3.noarch.rpm yum install postgresql94 yum install postgresql94-server /usr/pgsql-9.4/bin

有状态Stateful,富含数据的CI/CD怎么做?

限于喜欢 提交于 2020-03-21 22:17:12
3 月,跳不动了?>>> CI/CD with Data: 通过AWS Developer Tools、 Kubernetes和Portworx来实现软件交付Pipeline的数据迁移能力 数据是应用最重要的部分。容器技术让应用打包和部署变得更快更容易。对于软件的可靠交付来说,测试环节变得更加重要。由于所有的应用都包含数据,开发团队需要办法来可靠的控制、迁移、和测试真实的应用数据。 对于一些团队来说,通过CI/CD pipeline来移动应用数据,为了保持合规性和兼容其他一些问题,一直是通过手动方式来完成的,无法有效扩展。通常只能适用于一小部分应用,而且无法在不同环境中迁移。 目标应该是运行和测试有状态容器,如同无状态容器一样简单(有状态容器 – 例如数据库或者消息总线,其中运行是被追踪的;无状态容器 – 例如网页前端) 为什么测试场景中“状态-State”十分重要?一个原因是许多bug只会在真实数据的环境下才会产生。例如,你需要测试一个数据库的schema的升级,而一个小的数据集并不能完全代表包含复杂商业逻辑的关键应用。如果你需要进行端到端的完整测试,我们需要能够容易的管理我们的数据和State。 在本篇文章中,我们定义CI/CD Pipeline的参考架构,从而能够达到应用间的自动数据迁移。我们也展示如何配置CI/CD pipeline的步骤。 有状态Pipelines:

Cassandra batch query vs single insert performance

做~自己de王妃 提交于 2020-03-13 07:46:48
问题 I use Cassandra java driver . I receive 150k requests per second, which I insert to 8 tables having different partition keys. My question is which is a better way: batch inserting to these tables inserting one by one . I am asking this question because , considering my request size (150k), batch sounds like the better option but because all the tables have different partition keys, batch appears expensive. 回答1: Please check my answer from below link: Cassandra batch query performance on

【微服务】部署Api网关Kong

只谈情不闲聊 提交于 2020-03-06 16:13:59
Kong 是在客户端和(微)服务间转发 API 通信的 API 网关,通过插件扩展功能。持久化支持Postgresql和Cassandra。鉴于做测试,使用搭建简便的Postgresql作为DB存储。 IP分配 192.168.0.181:CentOS7 部署Kong服务; 192.168.0.184:CentOS7 部署postgresql 10; 部署postgresql 首先在192.168.0.184上部署postgresql,命令如下: yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm yum install postgresql10 yum install postgresql10-server /usr/pgsql-10/bin/postgresql-10-setup initdb systemctl enable postgresql-10 systemctl start postgresql-10 安装完毕后进入db创建用户; #首先进入postgres用户 su postgres #进入sql命令行 /usr/pgsql-10/bin/psql #创建用户和库 CREATE USER

How i can process my payload to insert bulk data in multiple tables with atomicity/consistency in cassandra?

早过忘川 提交于 2020-03-05 05:05:08
问题 I have to design the database for customers having prices for millions of materials they acquire through multiple suppliers for the next 24 months. So the database will store prices on a daily basis for every material supplied by a specific supplier for the next 24 months. Now I have multiple use cases to solve so I created multiple tables to solve each use case in the best possible way. Now the insertion of data into these tables will happen on a regular basis in a big chunk (let's say for

How i can process my payload to insert bulk data in multiple tables with atomicity/consistency in cassandra?

别等时光非礼了梦想. 提交于 2020-03-05 05:03:06
问题 I have to design the database for customers having prices for millions of materials they acquire through multiple suppliers for the next 24 months. So the database will store prices on a daily basis for every material supplied by a specific supplier for the next 24 months. Now I have multiple use cases to solve so I created multiple tables to solve each use case in the best possible way. Now the insertion of data into these tables will happen on a regular basis in a big chunk (let's say for

Using a cassandra database query as the source for a Flink program

馋奶兔 提交于 2020-03-05 04:56:10
问题 I have a Cassandra database that have to receive its data in my Flink program from socket like steam for Streamprocessing. So, I wrote a simple client program that read data from Cassandra and sent the data to the socket;also,I wrote the Flink program in server base.In fact, my client program is simple and does not use any Flink instructions;it just send a Cassandra row in string format to socket and Server must receive the row. First, I run the Flink program to listen to the client and then

Using a cassandra database query as the source for a Flink program

不打扰是莪最后的温柔 提交于 2020-03-05 04:55:38
问题 I have a Cassandra database that have to receive its data in my Flink program from socket like steam for Streamprocessing. So, I wrote a simple client program that read data from Cassandra and sent the data to the socket;also,I wrote the Flink program in server base.In fact, my client program is simple and does not use any Flink instructions;it just send a Cassandra row in string format to socket and Server must receive the row. First, I run the Flink program to listen to the client and then