Erlang 01收藏

WINCC8.1工业组态软件安装与授权配置指南 SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护 阅读详情
  Erlang 01收藏

新一篇: Erlang 02 | 旧一篇: Erlang 02

 
2006/9/8
分布式、并行计算语言Erlang 学习笔记(第一部分)

Erlang是由爱立信公司开发的一种平台式语言,可以说是一种自带了操作系统平台的编程语言,而且在这个平台上实现了并发机制、进程调度、内存管 理、分布式计算、网络通讯等功能,这些功能都是完全独立于用户的操作系统的,它采用的是类似于Java一样的虚拟机的方式来实现对操作系统的独立性的。

介绍一下Erlang先:

1、并发性:Erlang的轻量级进程可以支持极高的并发性,而且在高并发的情况下内存使用相当的少。Erlang的并发性并不会受到宿主操作系统并发性的限制。

2、分布式:最开始Erlang的设计目标就是实现分布式环境,一个Erlang的虚拟机就是一个Erlang网络上的节点。一个Erlang节点 可以在另一个Erlang节点上创建自己的并发进程,而子进程所在的节点可能是运行其他的操作系统的服务器。不同节点的之间的可以进行极为高效而又精确的 通信,就像它们运行在同一个节点一样。

3、鲁棒形:Erlang内部建设有多种错误检测原语。我们可以通过这些原语来架设高容错性的系统。例如,一个进程可以监视其他进程的状态和活动, 即使那些被监控的进程处于其他节点。在分布式状态下,我们可以把系统配置成具有Fail-over功能的分布式系统。当有其他节点出错的时候,系统会把他 的运行场景自动快速的切换备份节点上。Erlang支持9个9的级别的故障率,一年只有几分钟的故障时间。

4、软实时:Erlang是一个“软”实时系统(Soft Real Time),它可以提供毫秒级别的响应。

一般的情况下,使用Erlang系统可以比其他系统的并发能力(例如Web会话负载)放大20~30倍。

下面我们就从Erlang的基础开始:

第一部分:Sequential Programming 顺序化编程

目录
--------------------------------------------------------------------------------

Numbers. 
    ——Integers 整型
    ——Floats 浮点型
Atoms 字符串
Tuples 复表
Lists 链表
Variables 变量
Complex Data Structures 复杂数据结构
Pattern Matching 匹配赋值
Function Calls 函数调用
The Module Systems 模块系统
Starting the system 启动系统
Built in Functions (BIFs) 内建函数
Function syntax 函数语法
An example of function evaluation 一个例子
    ——Guarded function clauses 条件子句
Examples of Guards 使用条件判断的例子
Traversing Lists 操作链表
Lists and Accumulators 链表和聚集器
Shell commands Shell命令
Special Functions 特殊函数
Special Forms 特殊形式

--------------------------------------------------------------------------------

Numbers
Integers
10
-234
16#AB10F
2#110111010
$A

Floats
17.368
-56.654
12.34E-10.

B#Val is used to store numbers in base < B >.
B#Val:Val是用B进制表示的。
$Char is used for ascii values (example $A instead of 65).
$Char的值为Char代表的ASCII代码值,例如$A等于65。

--------------------------------------------------------------------------------

Atoms
abcef
start_with_a_lower_case_letter
'Blanks can be quoted'
'Anything inside quotes /n/012'

Indefinite length atoms are allowed.
系统允许无限长度的字符串。
Any character code is allowed within an atom.
在字符串中允许加入ASCII码代表的数字,只不过需要转义一下 :)

--------------------------------------------------------------------------------

Tuples
{123, bcd}
{123, def, abc}
{person, 'Joe', 'Armstrong'}
{abc, {def, 123}, jkl}
{}

Used to store a fixed number of items.
可以用来存储定长的项。
Tuples of any size are allowed.
对一个复表来说。可以是任意长度的,只不过定下来长度后不能更改而已。

--------------------------------------------------------------------------------

Lists
[123, xyz]
[123, def, abc]
[{person, 'Joe', 'Armstrong'},
  {person, 'Robert', 'Virding'},
  {person, 'Mike', 'Williams'}
]
"abcdefghi"
        becomes - [97,98,99,100,101,102,103,104,105]
""
        becomes - []

Used to store a variable number of items.
用来存储不定长的项。
Lists are dynamically sized.
允许动态改变链表的长度。
"..." is short for the list of integers representing the ascii character codes of the enclosed within the quotes.
使用""包括起来的字符串将被转换为对应的ASCII码。

--------------------------------------------------------------------------------

Variables
Abc
A_long_variable_name
AnObjectOrientatedVariableName

Start with an Upper Case Letter.
以大写字母开始。
No "funny characters".
不允许一些奇怪的字符出现。
Variables are used to store values of data structures.
变量是用来存储数据结构内容的。
Variables can only be bound once! The value of a variable can never be changed once it has been set (bound).
变量只能被绑定一次,一旦绑定完成后,不允许修改原绑定关系。

--------------------------------------------------------------------------------

Complex Data Structures
[{{person,'Joe', 'Armstrong'},
       {telephoneNumber, [3,5,9,7]},
       {shoeSize, 42},
       {pets, [{cat, tubby},{cat, tiger}]},
       {children,[{thomas, 5},{claire,1}]}},
  {{person,'Mike','Williams'},
       {shoeSize,41},
       {likes,[boats, beer]},
...

Arbitrary complex structures can be created.
可以创建任意复杂的数据结构。
Data structures are created by writing them down (no explicit memory alloca- tion or deallocation is needed etc.).
数据结构的定义很简单,只需要写下来就可以了,不用关心显式的分配和删除内存区域。
Data structures may contain bound variables.
数据的结构中允许使用变量。

--------------------------------------------------------------------------------

Pattern Matching
A = 10
Succeeds - binds A to 10
操作成功,A被绑定为10

{B, C, D} = {10, foo, bar}
Succeeds - binds B to 10, C to foo and D to bar
操作成功,B被绑定为10,C为foo,D为bar

{A, A, B} = {abc, abc, foo}
Succeeds - binds A to abc, B to foo
操作成功,A为abc,B为foo

{A, A, B} = {abc, def, 123}
Fails
操作失败

[A,B,C] = [1,2,3]
Succeeds - binds A to 1, B to 2, C to 3
操作成功,A为1,B为2,C为3

[A,B,C,D] = [1,2,3]
Fails
操作失败

--------------------------------------------------------------------------------

Pattern Matching (Cont)
[A,B|C] = [1,2,3,4,5,6,7]
Succeeds - binds A = 1, B = 2,C = [3,4,5,6,7]
操作成功,A为1,B为2,C为[3,4,5,6,7]

[H|T] = [1,2,3,4]
Succeeds - binds H = 1, T = [2,3,4]
操作成功,H为1,T为[2,3,4]

[H|T] = [abc]
Succeeds - binds H = abc, T = []
操作成功,H为abc,T为[]

[H|T] = []
Fails
操作失败

{A,_, [B|_],{B}} = {abc,23,[22,x],{22}}
Succeeds - binds A = abc, B = 22
操作成功,A为abc,B为22

Note the use of "_", the anonymous (don't care) variable.
注意:"_"为匿名变量

--------------------------------------------------------------------------------

Function Calls
module:func(Arg1, Arg2, ... Argn)
func(Arg1, Arg2, .. Argn)

Arg1 .. Argn are any Erlang data structures.
Arg1到Argn可以是任意的Erlang的合法数据类型。
The function and module names (func and module in the above) must be atoms.
函数名和模块名必须是字符串。
A function can have zero arguments. (e.g. date() - returns the current date).
函数允许不带参数。例如date()返回当前的日期。
Functions are defined within Modules.
函数应在模块内被定义。
Functions must be exported before they can be called from outside the module where they are defined.
在定义该函数的模块外调用该函数之前,必须首先在外声明该函数(export)。

--------------------------------------------------------------------------------

Module System
-module(demo).
-export([double/1]).
double(X) ->
times(X, 2).
times(X, N) ->
X * N.

double can be called from outside the module, times is local to the module.
double函数可以在模块外进行调用,times函数位于该模块内。
double/1 means the function double with one argument (Note that double/1 and double/2 are two different functions).
double/1意味着该函数带有一个参数的形式,如果是double/2,则代表这带有两个参数的double函数原型。

--------------------------------------------------------------------------------

Starting the system
unix> erl
Eshell V2.0
1> c(demo).
double/1 times/2 module_info/0
compilation_succeeded
2> demo:double(25).
50
3> demo:times(4,3).
** undefined function:demo:times[4,3] **
** exited: {undef,{demo,times,[4,3]}} **
4> 10 + 25.
35
5>

c(File) compiles the file File.erl.
c(File)意味着编译文件File.erl
1> , 2> ... are the shell prompts.
1> , 2> ...是提示符而已~~
The shell sits in a read-eval-print loop.
Shell忠实的进行着读取命令->执行->输出结果的循环。

--------------------------------------------------------------------------------

Built In Functions (BIFs)
date()
time()
length([1,2,3,4,5])
size({a,b,c})
atom_to_list(an_atom)
list_to_tuple([1,2,3,4])
integer_to_list(2234)
tuple_to_list({})

Are in the module erlang.
内建函数是默认的Erlang模块中的。
Do what you cannot do (or is difficult to do) in Erlang.
它们负责做哪些我们很难或者不能够在Erlang中做到的事情。
Modify the behaviour of the system.
用于修改系统的行为模式。
Described in the BIFs manual.
可以参考内建函数的手册。

--------------------------------------------------------------------------------

Function Syntax
Is defined as a collection of clauses.
它们由一系列的字句所定义。
func(Pattern1, Pattern2, ...) ->
... ;
func(Pattern1, Pattern2, ...) ->
... ;
...
func(Pattern1, Pattern2, ...) ->
... .

Evaluation Rules
执行规则
Clauses are scanned sequentially until a match is found.
子句被顺序的扫描,直到找到匹配的为止。
When a match is found all variables occurring in the head become bound.
当一个匹配成功时,所有的形式变量就被绑定。
Variables are local to each clause, and are allocated and deallocated automatically.
变量存在于函数的生存周期内,它的内存的分配和销毁都是自动实现的。
The body is evaluated sequentially.
函数体的执行是顺序的。

--------------------------------------------------------------------------------

Functions (cont)
-module(mathStuff).
-export([factorial/1, area/1]).
factorial(0) -> 1;
factorial(N) -> N * factorial(N-1).

area({square, Side}) ->
       Side * Side;
area({circle, Radius}) ->
       % almost :-)
       3 * Radius * Radius;
area({triangle, A, B, C}) ->
       S = (A + B + C)/2,
       math:sqrt(S*(S-A)*(S-B)*(S-C));
area(Other) ->
       {invalid_object, Other}.

--------------------------------------------------------------------------------

Evaluation example
factorial(0) -> 1;
factorial(N) ->
N * factorial(N-1)

> factorial(3)
matches N = 3 in clause 2
== 3 * factorial(3 - 1)
== 3 * factorial(2)
matches N =2 in clause 2
== 3 * 2 * factorial(2 - 1)
== 3 * 2 * factorial(1)
matches N = 1 in clause 2
== 3 * 2 * 1 * factorial(1 - 1)
== 3 * 2 * 1 ? factorial(0)
== 3 * 2 * 1 ? 1 (clause 1)
== 6

Variables are local to each clause.
Variables are allocated and deallocated automatically.
变量存在于函数的生存周期内,它的内存的分配和销毁都是自动实现的。

--------------------------------------------------------------------------------

Guarded Function Clauses
factorial(0) -> 1;
factorial(N) when N > 0 ->
         N * factorial(N - 1).

The reserved word when introduces a guard.
关键字when引入了一个条件。
Fully guarded clauses can be re-ordered.
完善的条件判断可以把代码重排列而不出错。
factorial(N) when N > 0 ->
         N * factorial(N - 1);
factorial(0) -> 1.

This is NOT the same as:
不等同于一下的代码:
factorial(N) ->
      N * factorial(N - 1);
factorial(0) -> 1.

(incorrect!!)
这是不正确的!

--------------------------------------------------------------------------------

Examples of Guards
number(X) - X is a number X是一个实数
integer(X) - X is an integer X是一个整型
float(X) - X is a float X是一个浮点型
atom(X) - X is an atom X是一个字符串
tuple(X) - X is a tuple X是一个复表
list(X) - X is a list X是一个链表
length(X) == 3 - X is a list of length 3 X是一个长度为3的链表
size(X) == 2 - X is a tuple of size 2. X是一个大小为2的复表
X > Y + Z - X is > Y + Z X大于Y+Z
X == Y - X is equal to Y X等于Y
X =:= Y - X is exactly equal to Y X精确的等于Y
(i.e. 1 == 1.0 succeeds but
1 =:= 1.0 fails)
注意:1==1.0是正确的,但是1=:=1.0是不正确的,涉及精度问题。

All variables in a guard must be bound.
所有进行比较的变量必须经过绑定。

--------------------------------------------------------------------------------

Traversing Lists
average(X) -> sum(X) / len(X).
sum([H|T]) -> H + sum(T);
sum([]) -> 0.
len([_|T]) -> 1 + len(T);
len([]) -> 0.

Note the pattern of recursion is the same in both cases. This pattern is very common.
注意递归的写法,这是程序设计中很常见的。
Two other common patterns:
另外两种常见的样式为:
double([H|T]) -> [2*H|double(T)];
double([]) -> [].
member(H, [H|_]) -> true;
member(H, [_|T]) -> member(H, T);
member(_, []) -> false.

--------------------------------------------------------------------------------

Lists and Accumulators
average(X) -> average(X, 0, 0).
average([H|T], Length, Sum) ->
       average(T, Length + 1, Sum + H);
average([], Length, Sum) ->
       Sum / Length.

Only traverses the list ONCE
只需要操作该链表一次
Executes in constant space (tail recursive)
执行是原地进行的(尾部递归)
The variables Length and Sum play the role of accumulators
变量Length和Sum扮演着汇聚的角色
N.B. average([]) is not defined - (you cannot have the average of zero elements) -
evaluating average([]) would cause a run-time error - we discuss what happens when run time errors occur in the section on error handling .
注意:average([])是没有定义的(也就是说我们不能不带参数的调用该函数)——计算average([])将导致一个运行时错误,我们将在异常捕获中谈到。

--------------------------------------------------------------------------------

Shell Commands
h() - history . Print the last 20 commands.打印最后20条命令
b() - bindings. See all variable bindings.查看所有的变量绑定情况
f() - forget. Forget all variable bindings.清除所有的变量的绑定
f(Var) - forget. Forget the binding of variable 清除特定的变量的绑定
X. This can ONLY be used as a command to the shell - NOT in the body of a function!
只能在Shell环境下使用,不能在函数的函数体中使用!
e(n) - evaluate. Evaluate the n:th command in history.执行历史记录中的第n条命令
e(-1) - Evaluate the previous command. 执行上一条命令

Edit the command line as in Emacs
命令行的使用类似于Emacs的使用

--------------------------------------------------------------------------------

Special Functions
apply(Mod, Func, Args)

Apply the function Func in the module Mod to the arguments in the list Args.
将Func函数应用到Mod上,并带有参数Args。
Mod and Func must be atoms (or expressions which evaluate to atoms).
Mod和Func必须是字符串表示的(或者是表达式)
1> apply( lists1,min_max,[[4,1,7,3,9,10]]).
{1, 10}

Any Erlang expression can be used in the arguments to apply.
所有的Erlang表达式都可以用作Arg被使用。

--------------------------------------------------------------------------------

Special Forms
case lists:member(a, X) of
        true ->
                ... ;
        false ->
                ...
        end,
...
if
        integer(X) -> ... ;
        tuple(X) -> ...
end,
...

Not really needed - but useful.
虽然不是必须的,但是很有用就是了~~ 呵呵

 

发表于 @ 2008年01月29日 16:23:00|评论(0)|编辑

新一篇: Erlang 02 | 旧一篇: Erlang 02

从 0 到 1 玩转小智 AI 智能音箱:开发教程 + 实战项目全攻略 如果说 MCP 是工具箱,那 SDK 就是 “技能模板”—— 小智音箱的自定义技能本质是 “意图识别 + 逻辑响应” 的组合,就像给嵌入式设备写驱动程序,只要按规则调用接口,就能实现各种功能。小智 AI 音箱的开发门槛并不高,核心是利用 MCP SDK 封装好的接口,结合嵌入式开发的 “硬件对接 + 逻辑编程” 思维,就能实现各种自定义功能。从环境搭建到技能开发,再到实战项目落地,每一步都是对 “软件控制硬件” 的实践 —— 而这正是嵌入式开发的核心魅力。 阅读详情

相关推荐

68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案

这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。

baidu_25525561的博客 1328

centos 安装 erlang

step 1:  添加Erlang Solutions key 支持  Java代码  收藏代码 rpm --import http://binaries.erlang-solutions.com/debian/erlang_solutions.asc   step 2:  将erlang的repo文件添加到/ete/yum.repos.d/下  Java代码  收藏代码 w

waterCabin的博客 630

【事件相机实战】噪声识别与智能滤波技术解析

本文深入解析了事件相机应用中关键的噪声识别与智能滤波技术。针对背景活动噪声、阈值波动噪声、热点噪声及运动边缘尾迹等核心噪声类型,文章剖析了其成因与特征,并详细介绍了从经典的时空相关性滤波、热点像素滤除到前沿的深度学习(如EDnCNN)等实战滤波方法,旨在帮助开发者在保证低延迟的前提下,有效提升事件流数据质量。

weixin_29169899的博客 439

DeepSeek V4.1 Flash:MoE架构与内存协同的高吞吐推理新范式

MoE(Mixture of Experts)是一种通过稀疏激活提升大模型扩展性的核心架构,其本质是在保持参数量增长的同时控制计算开销;Flash 则代表面向生产部署的低延迟、高密度推理优化范式。二者结合并非简单叠加,而是从路由机制、显存访问、服务编排三个层面重构推理效率——语义感知路由提升专家匹配精度,负载均衡与热缓存设计缓解GPU资源争抢,分层KV压缩与定制Flash Attention 3释放HBM带宽瓶颈。该技术路径显著提升单位显存下的并发请求吞吐量,适用于API服务、实时对话、批量摘要等高并发低延

weixin_34161029的博客 301

WGCNA样本量不够怎么办?5种替代方案帮你解决小样本基因共表达分析难题

本文针对WGCNA样本量不足的问题,提供了5种科学替代方案,包括CEMiTool、参数调整、多组学数据整合、机器学习特征提取和公共数据利用。这些方法帮助研究者在小样本条件下仍能进行可靠的基因共表达分析,特别适用于罕见病和珍贵临床样本研究。

weixin_42554042的博客 303

【顾邦小讲堂】第十九期 RC Snubber吸收电路详解:抑制MOSFET振铃现象与过冲的设计技巧!

通过RC Snubber电路有效抑制MOSFET DS端的过冲及振铃现象,帮助工程师们在设计中提升电路的稳定性和可靠性

GBupupup的博客 3787

haskell,lisp,erlang你们更喜欢哪个?

haskell,lisp,erlang你们更喜欢哪个? haskell,lisp,erlang你们更喜欢哪个?haskell,lisp,erlang你们更喜欢哪个? ...

182

提示deepseek生成完整的json用于对接外部API

通过精准的提示词设计(字段过滤、格式约束)、动态验证机制(自检与修正)和官方模板参考,可有效确保DeepSeek生成的JSON纯净无冗余。

神棍之路 2308

[Erlang 0103] Erlang Resources 资讯小站

好久没有写博客,是懒了吗?不是;前面两个月在紧张地推进一个项目,中间积累了一些RabbitMQ和Erlang的东西;本打算在项目结束之后赶紧总结一下,结果老婆怀孕之后生活节奏大乱:早起做饭,晚上回去做饭,洗刷碗筷,衣服,等忙完了也就精疲力尽了;其实这都无所谓主要是老婆反应有点大,身体很不舒服,看她受罪的样子真恨不能以身相替.这样的情况下,惯例的技...

weixin_33918357的博客 110

数字电路实验避坑指南:如何正确搭建主从JK触发器测试电路(附Proteus仿真)

本文详细解析了主从JK触发器的工作原理及实验搭建指南,重点解决了常见的Catching Problem现象,并提供了Proteus仿真优化方案。通过元器件选型、电路连接步骤和常见错误排查,帮助读者正确搭建测试电路,确保数字电路实验的稳定性和可靠性。

weixin_30790841的博客 469

YOLOv11改进策略【Neck】| GSConv+Slim Neck:混合深度可分离卷积和标准卷积的轻量化网络设计

实时检测器架构的轻量级设计GsConv。

Limiiiing的博客 2311

Linux & Windows 环境下 RabbitMQ 安装与基本配置

Linux & Windows 环境下 RabbitMQ 安装与基本配置 原文:Linux & Windows 环境下 RabbitMQ 安装与基本配置索引: 目录索引 参看代码 GitHub: rabbitmq.txt 一、Linux (DeepinOS) 环境 1 1.安装: 2 sudo apt i...

weixin_30865427的博客 87

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

RabbitMQ下载安装配置

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

知足上进,不负野心。 2012

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于Centos7的RabbitMQ安装

基于Centos7的RabbitMQ安装 本文档主要描述RabbitMQ的基本安装和配置相关内容。 本文档是基于Centos7.x系统。 一、安装rabbitmq的依赖包 使用yum工具安装 yum install -y ncurses ncurses-...

aa942719的博客 134

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

详解RabbitMQ集群原理,值得收藏原创 波波说运维 2019-05-30 00:02:00 概述 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用

【原创】波波说运维2019-05-30 00:02:00 概述 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 01 RabbitMQ集群方案的原理 RabbitMQ本身是...

u011277123的博客 709

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

windows 安装 RabbitMQ 并添加用户 – 畅玩Coding

windows 安装 RabbitMQ 并添加用户 – 畅玩Coding 原文:windows 安装 RabbitMQ 并添加用户 – 畅玩Coding 1、RabbitMQ 使用Eralng,所以需要先安装Eralng 下载: http://www.erlang.org/downloads。选择OTP *.* Win...

weixin_30267691的博客 151

RabbitMQ 安装配置与管理

RabbitMQ 安装配置与管理 分类: rabbitmq 2014-06-23 16:11 605人阅读 评论(0) 收藏 举报 目录(?)[+] 安装 1.      安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机 #wget  http://www.erlang.org/downl

可克技术 475

基于Centos7的RabbitMQ集群配置

基于Centos7的RabbitMQ集群配置 如果没有安装,请先参考安装文档。 这里以2台rabbitmq服务为例进行配置 rabbitmq01 192.168.1.100 rabbitmq02 192.168.1.101 注:以下操作,...

aa942719的博客 159

Elixir 入门

2014-01-01 16:34 2738人阅读 评论(0) 收藏 举报 目录(?)[+]   Erlang Resources里面关于Elixir的资料越来越多,加上Joe Armstrong的这篇文章,对Elixir的兴趣也越来越浓厚,投入零散时间学习了一下.零零散散,测试代码写了一些,Evernote中笔记更是混乱,还是逐步整理出来.    El

garfieldcatcat的专栏 2979

中间件(2)消息队列

中间件(2)消息队列 原文:中间件(2)消息队列  消息队列也是构建大型网站架构过程中非常重要的一个中间件。 消息队列 使用过消息队列的同学都知道,消息队列最常用的两个场景是: 1,解耦,一般用在大的网站进行业务拆分的时候,用于各应用之间进行消息通讯。 2,异步,针对那些不需要同步执行,可以晚点执行的操作都可以使用异步,比如发送邮件和短...

weixin_30333885的博客 85

服务器端的开发语言

服务器端的开发语言 1)前后端交互频繁或者各种吃资源的运算或操作使用C/C++ 2)否则使用java/php/c++ ×基于http的web服务  适用python/ruby ×基于tcp的服务     适用node.js/erlang posted on 2016-02...

weixin_30416497的博客 304

RabbitMQ 教程 | 第1章 RabbitMQ 简介

这篇 RabbitMQ 教程为学习者提供了全面的内容,帮助学习者充分掌握 RabbitMQ 的应用。整篇教程丰富内容详实,适合初学者和有经验的开发者参考学习。

编程洪同学 344

RabbitMQ环境配置,java实例

RabbitMQ消息队列入门篇(环境配置+Java实例+基础概念) 标签: javarabbitmq消息队列AMQPErlang 2016-01-09 10:23 17751人阅读 评论(10) 收藏 举报 分类: RabbitMQ Java基础(37) 作者同类文章X 版权声明:本文为博主原创文章,

i_wanna_rock的博客 2225

RabbitMQ 安装配置和简单实例

RabbitMQ 安装配置和简单实例 安装ErLang运行环境 配置运行环境变量 启动服务 地址在:complete-rabbitmq-bundle-1.7.0\rabbitmq-server-windows-1.7.0\rabbitmq_server-1.7.0\sbin 一段实例代码   using System; using S...

134

《RabbitMQ入门与精通》网易公开课

RabbitMQ入门与精通 -- 课程大纲 1、消息队列解决了什么问题 异步处理 应用解耦 流量削峰 日志处理........... 2、rabbitMQ安装与配置 http://www.rabbitmq.com/ 安装erlang和rabbitMQ 需要在C:\Users\Public删除rabbitmq生成的db rabbitmq-plugins enable rabbit...

sundaygeek的专栏 309
上一篇: SQL数据库命令讲解 收藏
下一篇: sql server sa 密码更改收藏
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值