一再强调需要掌握的:五分钟学会使用gomodules
发布云原生技术资讯、汇集云原生技术详细内容,定期举办云原生活动、直播,阿里产品及用户实战发布。与你并肩探索云原生技术点滴,分享你需要的云原生内容。
导读:gomodules 是golang1.11新加的特性。如今1.13都已经发布了第7个小版本了,几乎所有大项目均已开始使用,这自然也包括Kubernetes生态中的众多项目。笔者在开发 OAM 相关项目的时候,却发现modules的各项功能看似简单,却并没有那么好用,于是便想给大家分享一下使用心得,希望大家也能在最短时间内学会modules的使用,避免踩坑。
modules是什么?
言归正传,本文的目标是希望能用5~10分钟时间带您学会使用gomodules,然后通过QA的形式,描述一些常见的问题。如果希望详细理解相关内容,也可以参考官方文档。
初始化
modules机制是go1.11才引入的,所以开始用之前先检查下自己的go版本goversion,建议使用最新的1.13版本,涵盖了module机制相关的较多更新和功能。
在保证go版本至少在1.11或以上之后,就要开启一下环境变量GO111MODULE,启用module机制。
日常包管理
FAQ
Gomodule加入了代理的机制,只要设置一个代理地址,就可以提供代理访问。阿里云就提供了这样一个go的代理,是完全免费的服务。公共代理仓库会代理并缓存go模块,你可以利用该代理来避免DNS污染或其他问题导致的模块拉取缓慢或失败的问题,加速你的项目构建。
方案一:上述方式通过修改gitconfig,却依赖你本地的 ~/.ssh/id_rsa,在构建时可以通过 multistage-build 把私钥add到stage0里面build,然后用后面新的stage生成镜像,这样构建的镜像就不会包含私钥;
gomod命令一览
最后
OAM(OpenApplicationModel)开放应用模型是阿里联合微软针对云原生应用的模型,第一次对“以应用为中心”的基础设施和构建规范进行了完整的阐述。应用管理者只要遵守这个规范,就可以编写出一个自包含、自描述的“应用定义文件”。
OAM相关内容在github 上完全开源,同时我们也为Go生态编写了oam-go-sd方便快速实现OAM。
推荐阅读
xxx
喜欢本文的朋友,欢迎关注“Go语言中文网”:
在BlogCore中,上传附件到MinIO分布式文件服务器
一、认识MinIO
在上篇文章中,我们说到了Seaweedfs,通过原理,安装以及使用,从0到1的了解了这个老牌的分布式文件存储服务,那无独有偶,这篇咱们说说另一个高性能的分布式文件服务器——MinIO,http://docs.minio.org.cn/。
它是一个基于ApacheLicensev2.0开源协议的高性能的 分布式 对象存储服务器, 也是使用Go语言开发, 整个系统都运行在操作系统的用户态空间。客户端与存储服务器之间采用http/https通信协议。专为大规模数据基础架构而设计,它 兼容亚马逊S3云存储服务接口 , 非常适合于存储大容量非结构化的数据 ,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从小到kb级别到最大5T不等,使用 纠删码(erasurecode) 和 校验(checksum) 技术来保护数据免受硬件故障,即便您丢失一半数量(N/2)的硬盘,您仍然可以恢复数据。
MinIO有一个核心概念,就是——存储桶buckets,是指存储文件的一个空间或容器。
二、架构原理
极简理念——采用尽可能简单可靠的集群管理方案,摒弃复杂的大规模集群调度管理,减少风险因素与性能瓶颈,聚焦产品的核心功能,打造高可靠的集群、灵活的扩展能力以及超高的性能;
积木式扩展——建立众多的中小规模、易管理的集群,支持跨数据中心将多个集群聚合成超大资源池,而非直接采用大规模、统一管理的分布式集群。
由于MinIO是非常轻量级的软件,所以架构上也没有这么复杂,他使用操作系统的文件系统作为存储介质,我们在向任意节点写数据的时候,MinIO会自动同步数据到另外的节点,这个机制叫做erasurecode(纠删码)来保证集群的稳定,保证数据可用,所以我们建议至少使用4个节点来构建集群。
如果一个N节点的分布式MinIO,只要有N/2节点在线,数据就是安全的。但是如果要创建新的对象,就需要保证至少有N/2+1个节点健康。比如:我们的集群有4个节点,每个节点上一块盘,就算有2两个节点宕机,这个集群仍然是可读的,但是,我们需要3个节点才能让集群写数据。这就是为什么我们要有4个节点来构建集群。
在早期版本中,每个租户至少有4个盘,最多有16个盘,这个是纠删码的限制,而新版本中去掉了这个限制。如果想要实现多租户,可以借助于k8s来构建多个MinIO实例,或者启动多个实例来实现多租户。也就是说,一个进程对应一个实例,一个实例对应一个租户。
对象存储系统把存储资源组织为租户-桶-对象的形式。数据结构组织见下图:
对象:类似于hash表中的表项:它的名字相当于关键字,它的内容相当于“值”。
桶:是若干个对象的逻辑抽象,是盛装对象的容器。
租户:用于隔离存储资源。在租户之下可以建立桶、存储对象。
用户:在租户下面创建的用于访问不同桶的账号。可以使用MinIO提供的mc命令设置不用用户访问各个桶的权限。
从官网和网上的资料中,我们可以了解到MinIO的一些架构方面的知识。
1、去中心化架构
MinIO采用去中心化的无共享架构,对象数据被打散存放在不同节点的多块硬盘,对外提供统一命名空间访问,并通过Web负载均衡器或DNS轮询(DNSround-robin)在各服务器之间实现负载均衡。
2、统一命名空间
MinIO对象存储系统主要有两种部署方式,一种是常见的本地分布式集群部署,另一种是联盟模式部署。
本地分布式集群部署方式即在多个本地服务器节点部署MinIO软件,并将其组成单套分布式存储集群,并提供统一命名空间和标准S3访问接口。
联盟部署模式即将多个MinIO集群在逻辑上组成了统一命名空间,实现近乎无限的扩展与海量的数据规模管理,这些集群可以都在本地,或分布在不同地域的数据中心。
3、分布式锁管理
与分布式数据库相类似,MinIO对象存储系统也面临数据一致性问题:
一个客户端程序在读取一个对象的同时,另一个客户端程序可能正在修改或者删除这个对象。为了避免出现数据不一致情况,MinIO相关开发人员为MinIO对象存储专门设计并实现了dsync分布式锁管理器。它采用如下分布式锁管理机制:
三、搭建MinIO环境(二进制方式)
1、单机安装
1、新建minio安装目录,执行如下命令:
2、官网下载minio二进制文件:
下载地址:http://dl.minio.org.cn/server/minio/release/darwin-amd64/minio
也可以在服务器中执行下载命令,过程可能比较慢。
3、开始安装
二进制文件上传到安装目录后,执行:
然后就可以通过上述简单步骤安装和启动minio服务后,minio已开启web客户端操作页面,可通过界面添加文件夹和上传文件等操作,也可通过minio官方提供的客户端,通过命令进行相关操作。
编写服务脚本,其中环境变量为默认账号密码,
开启服务
如果是集群部署的话,可以参考这篇文章操作,这里就不过多介绍了。
https://blog.csdn.net/water1209/article/details/124197957
四、搭建MinIO环境(docker方式)
docker在搭建环境的时候,还是比较简单的。
1、单节点的方式
直接运行实例,首先先安装docker
创建挂载文件夹,可以挂载多个Drives
可以通过以下命令运行minio,
这里是安装的单节点的,也可以搭建集群的方式,通过nginx做负载
访问ip地址:9090,
可以看到一些指标信息
2、部署集群的方式
1、前期准备
我特定买了两个服务器来搭建MinIO集群
创建文件夹
然后两个节点都执行命令
这样的话,集群就搭建完成,访问任意一个节点的9090端口,就可以看到
一共是两个server,每个server有4个Drives。
五、MinIO在BlogCore中的使用
六、MinIO的优缺点
1、安装部署(运维简单)
MinIO在安装过程是黑盒的,不用深入关注它的架构,也不需要进行零件组装,基本上可以做到开箱即用。普通的技术人员就能够参与后期的运维。
MinIO提供了两种部署方式:单机部署和分布式,两种部署方式都非常简单,其中分布式部署还提供了纠删码功能来降低数据丢失的风险。
2、丰富的管理UI界面
MinIO自带UI界面,且页面不需要你单独的部署,和服务端一并安装。开箱即用。
3、高性能与云原生
MinIO号称是世界上速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以达到183GB/s和171GB/s。对象存储可以充当主存储层,以处理Spark、Presto、TensorFlow、H2O.ai等各种复杂工作负载以及成为HadoopHDFS的替代品。MinIO用作云原生应用程序的主要存储,与传统对象存储相比,云原生应用程序需要更高的吞吐量和更低的延迟。而这些都是MinIO能够达成的性能指标。
4、容器化支持
MinIO符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。其中包括支持Kubernetes、Docker、微服和多租户的的容器技术。
5、MinIO的缺点
MinIO不支持动态增加节点,MinIO创始人的设计理念就是动态增加节点太复杂,后续会采用其它方案来支持扩容。目前只能是新增节点后手动重启系统才生效,系统会自动平衡数据,这种设计到底对系统后续有什么影响,我觉得使用者需要考虑清楚点。
这里有个方案可以参考下,就是事先准备好一套容量适中且是开启状态的MinIO集群,当业务量陡增、原MinIO集群容量告警时,应用自动启用备份MinIO集群,后续再整合两个集群的文件成一个更大的集群。否则不支持在线动态扩容,确实是个硬伤。
数据文件可以清除吗?
数据文件一般指的就是某个程序里面的数据文件,这种文件一般不要去删除,已删除就无法恢复。对于一个计算机软件程序而言,里面都是由数据文件构成的,也就是说里面都是各种运算数据,这些数据是这个软件的基础,如果把这些数据删除了,这个软件就会无法运行。
什么模拟炒股票的网好用
http://www1.cofool.com/stock/login.asp国泰君安的模拟炒股平台新浪注册个财富帐户,可以模拟炒股http://biz.sina.com.cn/account.shtmlwww.jinniu58.cn股市教学软件免费的也不错给你介绍一下模拟股市帮助文件1、买入功能点击关注股后面的“买入”或者点击栏目的“买入”都可以进行买入操作。买入股票,系统会参考卖一(二、三、四、五)价格进行交易。买入范围为沪深两市的A、B股和基金(目前暂时不支持权证)。(1)、买入沪深两市A股,先选择“市场”,再添入股票代码、买入价格和数量,买入前需要计算买入所需的手续费、印花税,如果资金额足够,则能够顺利买入。如果资金不够,系统提示资金不足。(2)、买入沪深两市基金,先选择“市场”,再添入基金代码、买入价格和数量,买入前需要计算买入所需的手续费,如果资金额足够,则能够顺利买入。如果资金不够,系统提示资金不足。(3)、买入沪深两市B股,先选择“市场”,再添入股票代码、买入价格和数量,买入前自动按照汇率换算为港币或美元(买深市B股换算为港币、买上海B股换算为美元),然后扣除相应的手续费和印花税,如果资金足够,则顺利买入。如果资金不够,系统提示资金不足。如果输入的买入价格高于现价,系统按照现价进行成交,扣除买入所需的手续费、印花税。如果输入的买入价格低于现价,系统自动切换入“当日委托”,等待股价到达挂单的价格,再进行撮合成交。如果该股票处在涨、跌停板的位置(普通股票、基金的涨、跌停区间是10%,ST个股的范围是5%,新股和特殊情况个股没有涨跌停区间限制),系统会有提示。如果股票涨停,系统提示“该股已经涨(跌)停,或者没有卖(买)盘,现在无法买入(卖出)”;如果股票跌停,系统提示“该股已经跌停,或者没有买盘,现在无法卖出”。输入的数量超过账户内实际可买入的数量,系统提示“账户内资金余额不足”。2、卖出功能在所持有的股票后面有“卖出”连接,直接点击可以进行卖出操作。卖出股票,系统会参考买一(二、三、四、五)价格;当天买入的股票无法卖出。卖出价格低于现价,按照现价卖出,并且扣除手续费和印花税。卖出数量不能超过账号内符合卖出规定的数量。卖出操作:选择“市场”、输入“股票代码”、委托价格、股票数目。如果该股票处在跌停板的位置(普通股票、基金的涨、跌停区间是10%,ST个股的范围是5%,新股和特殊情况个股没有涨跌停区间限制),系统会有提示。如果股票跌停,系统提示“该股已经跌停,或者没有买盘,现在无法卖出”。3、当日委托系统记录当日的成交委托,当股价到达了合理的价位,系统能够按照预设价位撮合成交。下午三点收盘之后,系统数据处理期间会检查委托记录,达不到成交要求的委托,系统自动撤单。4、历史交易系统记录账户内历史交易数据。如果数据较多,分页显示。5、排行榜默认页面为“我的排名”,每个交易日下午17点以后生成当天排行。如果该账号参加炒股大赛排名,同时显示炒股大赛排名。排行榜显示前20名;点击ID名称,可以看该帐号的历史交易。模拟股市排名是模拟股市中所有ID的排行榜。炒股大赛排名,是举办的炒股比赛的参赛ID的排名,显示顺序为:炒股大赛中自己的排名、炒股大赛排行榜。参加比赛的会员,在个人形象的下边,红字提示"您正在参加第二届模拟股市大赛",如果没有提示,证明没有参加比赛或者已经退出比赛,请重新参加(点参加比赛的连接)点击排行榜中名字,显示交易记录。6、关注的股票输入股票代码,选择市场,点击添加就可以加入。同一市场的股票,可以一次添加多个,用空格隔开股票代码就可以。如果想删除关注的股票,点选股票前面的方框(可多选),点击删除就可以。建议:退出系统的时候,选择安全退出。※规则说明1、交易时间每个正常开盘交易日的上午9:30-11:30和下午13:00-15:00都可以进行交易和下单委托;下午15:00-17:00为系统数据处理时间,此间拒绝接受委托,其余非开盘时间可以接受下单委托。2、交易规则成交按照价格优先、时间优先、大单优先规则进行交易;买入股票时,系统会参考卖一的委托单,如果没有会参考卖二、三、四直至五;卖出则反之。每个正常交易日下午15:00-17:00系统数据处理,处理内容包括:撤消当天未成交的委托;个股的分红、送股;生成各种排名文件。对于有配股的个股,请用户在配股除权之前卖出股票,以免造成损失。3、分红送配系统将直接读取数据库的分红送股数据。具体分红送股的记录在“历史记录”中可以查询。如果是派现则会用下面的形式显示。交易价就是发到帐户中的金额。
为什么打开天天基金网老是加载失败?
是程序文件出现错误,解决办法是卸载后,再通过文件管理,找到eastmoney和eastmoneyjj这两个东方财富的文件夹,删除掉,再安装天天基金就行了。1.搜索“天天基金网”。2.在搜索到得列表中选择并打开。3.点击页面左上角“请登录”后输入用户名、密码。4.进入之后点击界面右上角“基金导购”。5.在“基金类型”列表中选择“货币型”。6.此时,天天基金网中所有货币型基金都将出现在页面中。7.这时候我们就可以挑选中意的基金点击页面右侧的“买入”。
c盘eastmoney文件来自夹是什么可以删除么
eastmoney是东方财富网的,可以删除的。
抄底王系列软件使用特殊技巧有哪些?
抄底王技巧和说明抄底王技巧1、跳空缺口提示功能登陆软件后,在“查看(Ctrl+D)”菜单里面的“系统设置”——“设置4”——“提示分析图中的最新缺口”前面打上勾就可以了。根据缺口理论:缺口一般是要回补的。对于下面这张图,这个跳空缺口会向上补好。2、利用标记功能找到上升中的股票67排名,第一屏的股票一般已经涨得差不多了,机会一般在第二屏和第三屏的股票.看盘过程中,如果第二屏和第三屏的股票进入了第一屏,这种股票值得关注.利用抄底王的股票标记功能,可以很方便的关注到这类股票.操作如下:再按67,再按PageDown,进入涨幅排名的第二屏,点右键,批量操作,将本屏的所有股票批量标记为"标记1"湖南抄底王下载:http://www.cr173.com/soft/29773.html这样如果在第一屏中出现了带有标记1的股票,则表示这只股票从第二屏进入了第一屏.如果需要重新检测这种变化,可以在右键的批量操作中批量"取消标记"3、盘中分析(买卖意愿,大单情况,价量分布)分时图中右键选择区间统计(Ctrl+W)也支持多日分时图(Alt+1,2,...)功能在历史分时图中也支持4、EXPMA-非常有效的均线选股方法MA之类的都滞后,EXPMA是比较理想的均线指标。EXPMA的使用很简单,EXP1上穿EXP2是买入点,准确率很高。5、最近哪些板块涨得最凶,哪些涨得少报价->热门板块排序->右键中选择"区间热门板块"(不要忘了要先下载数据)6、如何让你的日K线数据非常顺畅抄底王支持设置成全部使用下载的本地日K线数据,这样在进入日K线以上周期的分析图中,直接从本地取数据,效果非常顺畅.前提是你要坚持下载或补全日K线数据(推荐按系统提示的方式进行)在系统设置的设置4中选中相应的选项:7、个股相关网站链接可以外挂股票关联网页,在"系统设置"->"外挂"->"个股相关网站链接"比如,增加链接描述:股吧讨论链接地址:http://guba5.eastmoney.com/guba_topiclist.asp?stockcode=xxxxxx8、废代码的使用用这些废代码来分隔我的自选股将自选股分为大盘及大盘股区、关注股票区、买的股票区及买过的股票区等4个部分首先将582xxx这些股票加入到自选股,再用Shift+上下箭头来上移下移这些代码9、标记证券右键->标记当前证券->标记文字(或直接按Ctrl+Q),在弹出的对话框中填入文字在股票名的后面会出现一个"T"字标记,鼠标移上去,可以提示出你的文字内容,按Ctrl+Q可以修改或删除标记10、查看历史上任何一天的分时图和成交明细进入日线分析图后,双击出现十字光标后(或者使用左右箭头移动,Home,End键等出现光标),用键盘或鼠标移动十字光标到某天K线,按回车即可弹出"历史同步回忆"功能。通过抄底王系统,你可以查看到2000年以来任一天的历史分时和成交明细数据。进入历史同步回忆后,按PageUP或PageDown可以切换到这一天上一交易日或下一交易日的分时和分笔成交信息。按加号键"+"可以切换右边的信息区。这个"历史同步回忆"窗口可以全屏放大。11、在定制版面中加入网页信息定制版面是抄底王系列软件的独有的特色功能,各种看盘组件可以自由组合,功能非常强大注:抄底王比较新的版本才有些功能12、虚拟成交量是更换副图的指标,将原来默认的成交量指标换成“VOL-TDX成交量(盘中虚拟)”。这个指标是抄底王软件自带的。具体操作是:在副图的成交量指标上右键——选择指标——成交量型——VOL-TDX成交量(盘中虚拟)——确定就可以了。盘后此公式和传统的成交量没有区别,但在开市期间就完全不一样了,自己在开市期间用用就知道了13、看指数贡献值:进入深圳指数或者上海指数(按F3或者F4)后,可以看到右上角的指数名称左边有个“G”字母,按一下它就可以看到指数贡献了。把任务栏上的cdw图标“藏”起来:系统设置里,或按ctrl+D,设置三里面.快速隐藏,可以自己设置快捷键。14、抄底王L2功能之龙虎看盘(比大智慧的龙虎看盘好!)在分时图中按Ctrl+W,大小买卖单尽收眼底15、如何把自定义综合选股设置为预警条件预警器使用的是条件选股公式,按Ctrl+F键公式管理器,点击:条件选股公式,在右上角点击:新建,自编所需的条件选股公式,编好后就可放在预警器使用了。16、用技术指标选股。1、功能—选股器——综合选股——开启“选股方案”对话设置框;2、在条件组中点开到需要的指标;3、根据自己的要求设置相关选项(这里要根据自己对相对指标中各项的要求来具体设置——关键就是以指标中哪条线上穿哪条线或者是在什么位置,如“买点”,下面选“上涨”,就可选出是买点的股票了),然后点“加入条件”;4、选择选股范围(是所有A股或者是只在自选股或其他板块中选);5、如果同时有两个以上的选股条件,还必须选择是相与(同时满足以上条件的才选出来)、相或(分别满足各个条件的都选出);6、点“执行选股”……OK17、按照技术指标对股票进行排序的方法。系统主面板上面找到:报价--历史行情报价--右键选择指标--确定。就可以排序了,这个方法也有一定的选股作用,用得好还是有参考的。18、如何将“自选股”从我的抄底王复制到另外安装的一个抄底王?方法一:菜单:系统->数据维护工具->数据备份设置一备份路径,将你的自定板块备份到这个目录下,然后将此目录拷贝回家,在家里,也进入数据维护工具,使用数据恢复方法二:按Ctrl+D进入系统设置->板块->选中自选股,再选择右边的导出按钮将导出后的文件拷贝回家,在家里,也进入系统设置中的板块,选中自选股,再选择右边的导入按钮方法三:将整个T0002拷贝回家,覆盖家里运行目录下面的T0002方法四:将T0002目录下的block.cfg文件和blocknew拷贝回家,放到家中电脑集成版运行目录下的T0002中19、如何在抄底王软件中使用导入下载的公式(下载后的公式打不开,用记事本打开公式吧又是乱码咋办?)步骤:功能--专家系统-公式管理器-导入公式-找到下载的公式就ok!20、如何设置分时指标点功能—定制版面-新建空白版面-上插-走势图-普通走势图。下面设置成k线图-普通k现图。退出设计版面。在下面点分析周期-1分钟图。点主图类型-收盘线。然后把k线图拉小,k线图下可以加各种指标,就好了。21、分时图买卖大盘指标叠加和多空指标叠加方法:进入主页面-->点"分析"-->点"分时势"(或直接用快捷键进入)-->点"右键"-->点"叠加股票"-->点"叠加指定股票"-->点"上证指数"-->重复操作"点深圳指数"-->重复操作"点B股"(B股趋势有时提示作用,如前期0530股--灾,B股已大跌数日)-->点"分析"-->点"买卖力道和涨跌率"指标-->OK!(当然了也可以添加其它指数甚至行业龙头的股票走势)。22、如何自选股文件T0002locknew自选股目录,有ZXG.blk等文件23、抄底王中自由画线的工具方法如下:1、下载一个随意画线工具安装到抄底王的安装文件夹内的任意一个次级文件夹中,当然最好是新建一个文件夹比如叫:tool;2、用笔记本工具打开抄底王安装文件夹内的connect.cfg文件,在[OTHER]后面找到如下两个字节:HelpWebStr=HelpWebURL=在第一个字节中填入:随意画线在第二个字节中填入:. ool随意画线.EXE变为:HelpWebStr=随意画线HelpWebURL=. ool随意画线.EXE关闭文件,再打开抄底王在帮助的下拉菜单中就多了一个“随意画线”的命令,打开就可以随意再任意位置画线了。方法二:如果你不想这样改动就打开抄底王在添加其他交易程序中添加上随意画线程序,在路径中填入:. ool随意画线.EXE。使用时打开交易命令选取“随意画线”同样可以使用这个工具。当然添加的方法还有好几种。不过这两个一般就可以满足大部分朋友了。
Kamailio新手指南
Kamailio典型的仅支持Linux操作系统,直接在操作系统上安装也很方便。当然,最方便的是直接使用Docker启动Kamailio。Docker可以在Windows、macOS和Linux等宿主机操作系统上运行,所以,不管你使用何种操作系统,都可以很方便地运行Kamailio。
下面,我们使用kamailio/kamailio-ci:5.5.2-alpine这个Docker镜象,来自 https://hub.docker.com/r/kamailio/kamailio-ci 。以下命令可以启动Docker镜像:
启动后,可以看到类似如下输出:
Listeningon udp:127.0.0.1:5060 udp:172.17.0.4:5060 tcp:127.0.0.1:5060 tcp:172.17.0.4:5060Aliases: tcp:3ea18bb32dc7:5060 tcp:localhost:5060 udp:3ea18bb32dc7:5060 udp:localhost:5060
表示Kamailio已经运行并监听了上面的IP地址和端口,但这时Kamailio是无法正常使用的。因为Docker容器本身运行在NAT网络环境。不过,这时候可以进入容器内部查看相关的配置文件,如:
如果你的宿主机是Linux,可以以host模式启动:
这时候,就可以尝试用SIP客户端1注册了。随便注册两个不同的账号(Kamailio默认脚本没有鉴权),还可以互打。
在Mac和Windows上host模式可能不适用,可以继续以NAT模式启动,并将端口映射出来,如:
但使用NAT模式时,需要修改Kamailio的配置文件,这时候,我们可以先进入Shell,修改完配置文件后,再启动Kamailio。以下命令启动容器并进入Shell(由于使用了--entrypoint参数覆盖了自启动入口,不会启动Kamailio):
在容器Shell内执行ipad可以看到网卡eth0的IP地址,记下来(如笔者的是172.17.0.4),然后执行如下命令启动Kamailio:
默认Kamailio将会启动到后台。可以安装个ngrep2方便抓包查看SIP消息:
apk是AlpineLinux上的软件包管理工具。如果你在国内,安装可能比较慢。可以尝试使用国内镜像,比如我们下面使用阿里云的镜象站:
先停掉Kamailio:killallkamailio。
修改配置文件:vi/etc/kamailio/kamailio.cfg,找到#listen=udp:10.0.0.10:5060一行,在后面增加如下两行:
重新启动Kamailio可以看到监听地址变了:
小技巧:
kamailio默认会启动到后台,如果在配置文件中增加fork=false,则会启动到前台,可以直接用Ctrl+C退出,而无需killall。这在学习时比较方便。
启动到前台时,建议修改配置文件,增加Kamailio的日志级别(如debug=3)以查看更多日志。
如果启动容器时有同名的容器存在,或映射端口冲突,则不能启动。可以换一个名字启动或端口,或者用dockerps查看所有运行的容器,用dockerstop停止及dockerrm删掉不需要的容器。
在上面的例子中,我们直接在容器内修改Kamailio的配置文件,在容器重建时会丢失修改。为了能长期保存劳动成果,可以将宿主机上的文件或文件夹映射到容器里面。不过,前提我们得先有个文件夹,下面,我们先启动个临时容器,从里面复制一个出来。
重新启动容器,并通过-v参数将宿主机的目录映射到容器里面。如果想让Kamailio自动启动,可以去掉--entrypoint参数一行,否则,需要手动启动。
这样,就可以随时在宿主机上用你喜欢的编辑器编辑配置文件并在容器内部重启Kamailio了。其中,/tmp/是你宿主机上的文件夹路径,在此只为了说明方便,在真正用的时候也不要使用这个路径,因为它本质上也是“临时的”。
祝贺你成功运行了Kamailio。如果你还觉得不过瘾,下面是Kamailio的一些资源列表:
Kamailio网站:https://www.kamailio.org/
Kamailio源代码仓库:https://github.com/kamailio/kamailio
Kamailio工单:https://github.com/kamailio/kamailio/issues
KamailioGithub:https://github.com/kamailio
KamailioWiki:https://www.kamailio.org/wikidocs/
Kamailio模块文档:https://www.kamailio.org/docs/modules/devel/
Kamailio文档:https://www.kamailio.org/w/documentation/
Kamailio动态:https://www.kamailio.org/w/news/
关于Kamailio:https://www.kamailio.org/w/info/
KamailioSIP兼容性:https://www.kamailio.org/w/interoperability/
OpenSER改名为Kamailio:https://www.kamailio.org/w/openser-renamed-to-kamailio/
Kamailio的历史:https://www.kamailio.org/w/history/
Kamailio管理小组:https://www.kamailio.org/w/management/
Kamailio开发指南:http://www.asipto.com/pub/kamailio-devel-guide/
KamailioWorld:https://www.kamailioworld.com/
Kamailio商业目录:https://www.kamailio.org/w/business-directory/
目前,该Kamailio镜象仅有X86_64版的,在M1芯片(ARM芯片)的Mac上可以正常运行,但是ngrep之类的抓包工具不好用。
有什么比较好的股票交流网站?
1、东方财富网
stock.eastmoney.com
2、和讯网
stock.hexun.com
3、新浪股票
finance.sina.com.cn/stock
4、巨潮资讯网
www.cninfo.com.cn
用完Gradle之后,有点嫌弃Maven了!
code小生 一个专注大前端领域的技术平台
“工作之前,Guide也是一直使用Maven。别人向我安利Gradle的时候,我总是不屑一顾,觉得这东西肯定没有Maven好,毕竟Maven这么多人用对吧!后面,在工作中真正用到它之后,才真正感受到它的好用。
推荐阅读
新版任你发,我用Java8
进阶必备!35个Java代码优化细节
14张思维导图构建Python核心知识体系
怼你没商量!Linux之父手删AWS工程师提交的补丁,表示这是愚蠢的行为,网友:我的快乐又回来了