【导语】:作者在上一篇文章《基于内容的推荐算法》中介绍了基于内容的推荐算法的实现原理。在本篇文章中作者会介绍一个具体的基于内容的推荐算法的实现案例。该案例是作者在2015年基于Erlang语言开发的相似视频推荐系统,从开发完成就一直在公司多个产品线中使用,该算法目前已经使用了四年。
想使用erlang连接mysql数据库,来百度找方法,但大多方法都不能用,在整合了集中方法之后,整理出了以下内容。
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。
地址:https://github.com/dizzyd/erlang-mysql-driver
1.安装Erlang环境(RabbitMQ由Erlang语言开发) 1.1)下载rpm安装包 官方地址:https://packages.erlang-solutions.com/erlang/ wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/esl-erlang_21.1.4-1~centos~6_amd64.rpm 1.2)安装Erlang rpm -ivh esl-erlang_21.1.4-1~centos~6_amd64.rpm 或者 1.1)安装Erlang Solutions仓库到你的系统(目的在于让你可以使用yum安装到最新版本的erlang, 如果不设置, yum安装的erlang版本通常太低) wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm 1.2)yum install -y erlang 因为rabbitmq是使用erlang语言实现, 所以需要安装erlang依赖; 这里提供的RabbitMQ是最新版3.6.9, 所需的erlang版本最低为 R16B-03,否则编译时将失败 1.3)检查Erlang是否安装成功 [root@localhost ~]# erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.1.3 2.安装RabbitMQ 2.1)下载rpm安装包 官方地址:http://www.rabbitmq.com/download.html wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el6.noarch.rpm 2.2)安装RabbitMQ yum -y install epel-release 之后执行yum -y install socat yum install -y rabbitmq-server-3.6.15-1.el6.noarch.rpm 2.3)检查RabbitMQ是否安装成功 rabbitmqctl status 3.关于服务 3.1)启动服务 service rabbitmq-server start 3.2)停止服务 service rabbitmq-server stop 3.3)设置开机启动 chkconfig rabbitmq-server on 4.用户管理 4.1)查看用户列表 [root@localhost ~]# rabbitmqctl list_users Listing users ... guest [administrator] 4.2)添加用户 rabbitmqctl add_user 用户名 密码 [root@localhost ~]# rabbitmqctl add_user admin 123456 Adding user "admin" ... 4.3)删除用户 rabbitmqctl delete_user 用户名 [root@localhost ~]# rabbitmqctl delete_user admin Deleting user "admin" ... 4.4)修改用户密码 rabbitmqctl change_password 用户名 新密码 [root@localhost ~]# rabbitmqctl change_password admin 666666 Changing password for user "admin" ... 5.角色管理 5.1)角色说明 none(普通用户) 没有控制台操作权限。 management(普通管理员) 可以查看当前用户的queues, exchanges和bindings。 可以查看和关闭当前用户的channels和connections。 可以查看当前用户的virtual hosts的统计信息。 policymaker(策略管理员) 具有management权限及查看、创建和删除当前用户的policies和parameters。 monitoring(监控管理员) 具有management权限 查看所有virtual hosts及全局的统计信息 查看所有用户的connections和channels 查看所有节点数据,如clustering和me
HttpRunnerManager项目已停止维护,之前在公司的项目中落地过,而且使用很长时间,虽然有些小BUG,但整体功能已经满足项目组的工作需求(接口自动化测试)。
升级Erlang [root@h102 rabbitmq]# yum update erlang.x86_64 Loaded plugins: dellsysid, fastestmirror, refresh-packagekit, security Setting up Update Process Loading mirror speeds from cached hostfile * base: mirrors.pubyun.com * epel: mirrors.opencas.cn * e
RabbitMQ是用erlang分布式语言开发的,故需先安装erlang 下载erlang的tar包 : erlang下载 下载rabbitmq的包 : rabbitmq下载 下图为erlang下载界面
一、通过yum命令在线安装RabbitMQ yum在线安装,简单、快捷、自动安装相关依赖包。 1.安装Erlang环境(RabbitMQ由Erlang语言开发) 1.1)下载rpm安装包 官方地址
因为 云巴 系统对高并发、低延迟的需求,我们对各个语言、平台做了很多的调研比较工作。这自然就包括致力于开发高并发应用的 Go 和 Erlang。 并发 Go 对高并发的支持通过 goroutine 实现。goroutine 可以理解为轻量级的 线程(thread)。同一个 Go 应用创建的 goroutine 共享地址空间。 Erlang 的高并发通过轻量级 进程(process)实现,每一个进程都有独立的状态记录。 另外,使用 goroutine 要注意,goroutine 运行完毕后,占用的内存放回内存
RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。
网络资料: 用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
间歇性的学了一些Erlang,写了一个直播cdn网关的程序,也算是贡献了代码,完成了第一个项目。结束之际写一个入门路线,记录学习过程。
CouchDB是用Erlang开发的面向文档的数据库系统,最近刚刚发布了0.10版本。CouchDB不是一个传统的关系数据库,而是面向文档的数据库,其数据存储方式有点类似lucene的inde文件格式,CouchDB最大的意义在于它是一个面向web应用的新一代存储系统,事实上,CouchDB的口号就是:下一代的Web应用存储系统,那么让我们来一一分析CouchDB的特点: 一、CouchDB是分布式的数据库,他可以把存储系统分布到n台物理的节点上面,并且很好的协调和同步节点之间的数据读写一致性。这当
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
RabbitMQ安装时与Erlang的版本一定要保持以下的对应关系,否则会引发无法启动的问题
1.关于IDEA的安装与使用具体参考https://github.com/judasn/IntelliJ-IDEA-Tutorial
RabbitMQ 是当今最主流的消息中间件之一。它是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现优异。
redis 是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。
通过前几章的学习,我们顺利完成了应用的开发,仅仅完成框架搭建和功能开发是不够的,我们还需要将应用发布到服务器上供客户端访问。本章中,我们将开始详解应用的发布。
从网游的角度看: 要成功的运营一款网游,很大程度上依赖于玩家自发形成的社区。只有玩家自发形成一个稳定的生态系统,游戏才能持续下去,避免鬼城的出现。而这就需要多次大量导入用户,在同时在线用户量达到某个临界点的时候,才有可能完成。因此,多人同时在线十分有必要。 再来看网游的常见玩法,除了排行榜这类统计和数据汇总的功能外,基本没有需要大量CPU时间的应用。以前的项目里,即时战斗产生的各种伤害计算对CPU的消耗也不大。玩家要完成一次操作,需要通过客户端-服务器端-客户端这样一个来回,为了获得高响应速度,满足玩家体验
下图展示了大型网站使用到的后端编程语言: 📷 1、Google.com 前端:JavaScript 后端:C, C++, Go, Java, Python 数据库:BigTable, MariaDB 2、YouTube.com 前端:JavaScript 后端:C/C++, Python, Java, Go 数据库:BigTable, MariaDB 3、Facebook.com 前端:JavaScript 后端:Hack, PHP (HHVM), Python, C++, Java, Erlang, D,
EMQX是基于Erlang语言实现的开源大规模分布式物联网MQTT消息服务中间件,它支持千万级的设备接入和个位数毫秒的消息分发时延,可以帮助企业快速构建高性能、高可靠、实时数据处理的物联网端云连接平台。目前最新版的EMQX已经更新到5.x版本,理论上单集群可以实现亿级物联网设备的接入。但随着集群接入规模的增加,集群节点间数据同步的成本也越来越高,对服务器资源的需求也越来越大。本文主要围绕亿级规模连接集群的可扩展性问题,讨论在数据存储层面不同架构实现所带来的利与弊。
对 rabbitMQ 我们已经有了初步的了解,现在我们来安装 rabbitMQ 来进行一些操作。因为大部分人的操作系统都是windows 而且作者本人使用的也windows系统。所以这里只介绍在windows上安装rabbitMQ。mac用户自行解决(仇富脸)。
前段时间在golang-China读到这个贴:有木人用(或打算)golang做游戏服务器端? 个人觉得golang十分适合进行网游服务器端开发,写下这篇文章总结一下。 从网游的角度看: 要成功的运营
本篇的灵感来自我超级喜欢的一篇文章:《如果把中国 442 位皇帝都放在一个群里面,他们会聊些什么》。
其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?
AMQP(Advanced Message Queuing Protocol,高级消息队列协议)
一、RabbitMQ简单介绍 在日常工作环境中,你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消息服务让你可以很轻松地解决这些问题。消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,你也可以把它用于系统间服务的相互调用,即适用于云计算集群的远程调用(RPC)。毫无疑问,RabbitMQ就是当前最主流的消息中间件之一。 AMQP(Advanced Message Queuing Protoc
为了节省空间,直接使用Minimal 阿里源下载:http://mirrors.aliyun.com/centos/7/isos/x86_64/ 网盘下载: 链接:https://pan.baidu.com/s/1nPbDW6whaUKGQZLdzNlN8A 提取码:wp88
附上: 喵了个咪的博客:w-blog.cn EMQ官方地址:http://emqtt.com/ EMQ中文文档:http://emqtt.com/docs/v2/guide.html 1.Liunx和
MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ等等。
更多关于Kafka的数据,参考:https://segmentfault.com/a/1190000003985468
为什么使用消息队列?消息队列的优点和缺点?kafka、activemq、rabbitmq、rocketmq都有什么优缺点?
rabbitmq是使用erlang语言编写的,所以需要先安装erlang,其次rabbitmq安装依赖于socat,所以三个安装包都需要下载。另外rabbitmq对于erlang的版本是有要求的,这个可以去官网查看。
在开始今天的内容之前,我们先来回顾一下之前提到过的知识点(具体内容可以回复“架构师一席谈”): 1.在一台电脑上,使用异步编程可以提高cpu的使用效率 2.使用Actor模型,实现同一台电脑上,在并发环境下的串行操作,保证事务执行的正确 3.在多服务器环境下,actor模型配合Zookeeper,可以实现在多服务器环境下的串行操作,保证事务执行正确 4.对应用进行读写分离的设计,做到“写服务”(有状态)执行正确,同时又能方便地(增加服务器)提高“读服务”(无状态)的性能 所以,在服务实现的内部,异步已经无处
RabbitMQ是一款在全球范围内使用非常广泛的开源消息队列中间件。它轻量级、易部署、并支持多种协议。它基于Erlang开发,天生拥有高并发的能力。
满足极高读写性能需求的Key-Value数据库高性能Key-Value数据库的主要特点就是具有极高的数据库
这是我的第 64 篇原创文章 作者 | 悟空聊架构 来源 | 悟空聊架构(ID:PassJava666) 转载请联系授权(微信ID:PassJava) 本篇的灵感来自我超级喜欢的一篇文章:《如果把中国 442 位皇帝都放在一个群里面,他们会聊些什么》。其实我的第一篇文章就是用这种方式写的《悟空聊无事务》,这也是我的公众号名字的来源,叫做:「悟空聊架构」 。 本篇也会以 「群聊、单聊、朋友圈」 的方式来讲解计算机世界中消息队列的一些奇闻趣事。 从事软件开发的同学,一定都听过或用过消息队列,比如 RabbitM
MQ是MessageQueue,消息队列的简称(是流行的开源消息队列系统,利用erlang语言开发)。
为什么使用消息队列? •解耦•异步•削峰 (1) 解耦 现有系统A, B, C, 系统B和C需要系统A的数据, 然后我们就修改系统A的代码, 给系统B, C发送数据. 这时系统D也需要系统A的数据,
Airflow能做什么 Airflow是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。 Airflow独立于我们要运行的任务,只需要把任务的名字和运行方式提供给Airflow作为一个task就可以。 安装和使用 最简单安装 在Linux终端运行如下命令 (需要已安装好python2.x和pip): pip install airflow pip install "airflow[crypto, password]" 安装成功之后,执行下面三步,就可以使用了。默认是使
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。 1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang 。 小编使用的是otp_win64_18.1 ,需要其他版本或者32位系统的,可以去官网下载。 全部点击“下一步”就行。 有的选择其他的安装方式,可能需要添加一下系统环境变量(正常
http://blog.csdn.net/yueguanghaidao/article/details/49638261
配置MariaDB Galera Cluster 1.mariadb第一个节点进行初始化(192.168.182.131)
不久前,大规模分布式物联网 MQTT 消息服务器 EMQX 发布了 5.0 版本。这一最新的里程碑版本采用新的后端存储架构 Mria 数据库,并重构了数据复制逻辑,因此 EMQX 5.0 水平扩展能力得到了指数级提升,能够更可靠地承载更大规模的物联网设备连接量。
领取专属 10元无门槛券
手把手带您无忧上云