如何查看tiagse 查看docker是否运行行

查看: 1063|回复: 0
人气0 技术0 资源0 推广0 帮助0 威望0 最后登录精华0UID阅读权限10帖子积分1金币2 注册时间
, 积分 1, 距离下一级还需 49 积分
积分1金币2 注册时间
这套IM系统是我个人自主开发 完全基于Tiagse ,主要功能为:Android、iOS和服务端,可以支持包括文字 图片,语音等任何消息形式,系统采用的成熟的XMPP协议+CentOS 6.5+Jdk1.8+mysql5.6+mongodb3.0.1+Tigase7.0.2+Redis3.03+Nginx1.7.9。
& && && & 现在市面上有很多 xmpp协议的即时通讯方案,OpenFire androidpn,等等。它们都是使用了Java mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过很多作者的作品,发现代码结构不太理想,耦合的情况太多,实在不好扩展。OpenFire推出较早,我的第一版本也是基于OpenFire的,但由于网络框架比较落后,不稳定,服务经常要重启,且并发性能差,没有一款巨量用户的APP是用它的,研究良久后面选定了Tigase服务器(有巨量用户测试),Tigase推出晚,克服了Openfire好多缺点,性能优越,我们所有的修改都做成了插件,这样当Tigase升级时,插件能照常使用。
软件功能:
<font color="#、用户系统:用户注册、登录、添加好友、删除好友、好友列表、支持上传头像、可以修改个人信息、名称、性别、地区、签名、黑名单功能、拉入黑名单将无法收到对方的信息、查看好友当前地理位置。
<font color="#、聊天系统:发送文字、图片、语音、表情。语音聊天可以显示时长、未读状态,自动轮播未读语音;
<font color="#、群聊系统:建立、加入、删除、群聊列表、群聊、屏蔽群消息功能、邀请、踢出好友(只有群主才有这个功能)。并有操作日志实时显示在房间中
<font color="#、附近人功能:根据筛选条件查看附近的人,查看用户时能显示位置
<font color="#、朋友圈:支持发送文本、图片、语音、视频或以上混合消息,支持好友进行赞、评论、转发等操作
<font color="#、实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口
<font color="#、提供如何和现有用户系统整合的方案,使IM只是成为其中的一个模块,方案简单易用。
<font color="#、单台服务器能适应超10w以上并发,并支持服务器集群,理论上可以支持巨量用户。
扣扣:&&备注:即时通讯咨询
系统特性:
支持单聊群聊& &
离线推送&&
消息回执&&
离线/在线聊天记录&&
NoSQL存储,支持并已实现MongoDB存储&&
同步/异步朋友圈&&
服务器扩展和集群
安卓论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、管理员和版主有权不事先通知发贴者而删除本文
Powered by天气开始慢慢转凉,是时候多去室外走动走动了。不管是秋游,还是逛街难免会无聊无事做...
邀请函一经公布,各种有趣的猜想联翩,有些似乎合理,有些却能让人笑cry。我们在趣说...
这款手游为何可以如此顺利地系列化?并且在5年之后推出的新品依旧能得到市场的青睐。
发布会将于当地时间9月7日上午10点正式开幕,北京时间为9月8日(周四)凌晨1点。准备好...
既然以“Pro”为名,机能的进步是至关重要的,尤其是它的 GPU 将要迎来的变化。
对于有线耳机用户来说,苹果即将在 9 月 7 日发布的 iPhone 7 中取消传统的 3.5mm 耳...
由于规模成本很难把控,所以苹果一直都没有大规模采用液态金属技术去打造零部件~
仔细考虑下来,苹果似乎不太可能将爱尔兰的运营中心迁到土耳其。
躲避类游戏在移动平台上算是出镜率比较高的,不过现在的躲避游戏同质化程度越来越高,...
如果你在一座城市久居,却因整日的忙碌而忽略了它的内在之美;如果你想去一个地方旅行...
就在上周四,独立游戏工作室“正义之锤(Righteous Hammer Games)”在 App Store 上...
Tales & Dice AB 推出的《汉娜&亨利-生日会(Hanna & Henri - The Party)》是一款深...
很多爱电子音乐爱到疯狂的朋友们都或多或少的想要制作一首属于自己的乐曲,但纵观如今...
《夜之门》的开发团队是曾经推出过《Last Voyage(最后的航程)》、《Kotoro(探索色...
Wall West 早些时候曾推出过 3 部作品,但是综合质量和可玩性都不高,于是 Wall West ...
苹果推出的无线键盘 Magic Keyboard 有着非常不错的表现,但是并非每个人都准备花上 1...
Privoro 公司表示,有了这款产品,监听 iPhone 是一件不可能完成的事情。
论数量,Android一直都是第一,但这能说明这个平台统治了移动市场吗?
在Cydia中搜索插件,似乎并不是那么容易让越狱用户感到舒心。
三星也是拼了,不过对Apple Watch的影响好像不会很大。
看起来还不错,这点电量还是可以作为应急用的。
它内置4000mAh锂离子电池,可完整充满Apple Watch多达6次。
小小的一根U8,却可以解决许许多多烦恼,让你的 iPhone,iPad 不再因为“瘦身”而烦恼...
全新定义基于Tiagse的社交聊天系统,即时通讯源代码,类似whats/微信/陌陌
注册时间 最后登录
在线时间155 小时 UID
主题帖子人气
小苹果, 积分 45, 距离下一级还需 5 积分
这套IM系统是我个人自主开发 完全基于Tiagse ,主要功能为:Android、iOS和服务端,可以支持包括文字 图片,语音等任何消息形式,系统采用的成熟的XMPP协议+CentOS 6.5+Jdk1.8+mysql5.6+mongodb3.0.1+Tigase7.0.2+Redis3.03+Nginx1.7.9。
& && && & 现在市面上有很多 xmpp协议的即时通讯方案,OpenFire androidpn,等等。它们都是使用了Java mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过很多作者的作品,发现代码结构不太理想,耦合的情况太多,实在不好扩展。OpenFire推出较早,我的第一版本也是基于OpenFire的,但由于网络框架比较落后,不稳定,服务经常要重启,且并发性能差,没有一款巨量用户的APP是用它的,研究良久后面选定了Tigase服务器(有巨量用户测试),Tigase推出晚,克服了Openfire好多缺点,性能优越,我们所有的修改都做成了插件,这样当Tigase升级时,插件能照常使用。
软件功能:
<font color="#、用户系统:用户注册、登录、添加好友、删除好友、好友列表、支持上传头像、可以修改个人信息、名称、性别、地区、签名、黑名单功能、拉入黑名单将无法收到对方的信息、查看好友当前地理位置。
<font color="#、聊天系统:发送文字、图片、语音、表情。语音聊天可以显示时长、未读状态,自动轮播未读语音;
<font color="#、群聊系统:建立、加入、删除、群聊列表、群聊、屏蔽群消息功能、邀请、踢出好友(只有群主才有这个功能)。并有操作日志实时显示在房间中
<font color="#、附近人功能:根据筛选条件查看附近的人,查看用户时能显示位置
<font color="#、朋友圈:支持发送文本、图片、语音、视频或以上混合消息,支持好友进行赞、评论、转发等操作
<font color="#、实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口
<font color="#、提供如何和现有用户系统整合的方案,使IM只是成为其中的一个模块,方案简单易用。
<font color="#、单台服务器能适应超10w以上并发,并支持服务器集群,理论上可以支持巨量用户。
扣扣:&&备注:即时通讯咨询
系统特性:
支持单聊群聊& &
离线推送&&
消息回执&&
离线/在线聊天记录&&
NoSQL存储,支持并已实现MongoDB存储&&
同步/异步朋友圈&&
服务器扩展和集群
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!天气开始慢慢转凉,是时候多去室外走动走动了。不管是秋游,还是逛街难免会无聊无事做...
邀请函一经公布,各种有趣的猜想联翩,有些似乎合理,有些却能让人笑cry。我们在趣说...
这款手游为何可以如此顺利地系列化?并且在5年之后推出的新品依旧能得到市场的青睐。
发布会将于当地时间9月7日上午10点正式开幕,北京时间为9月8日(周四)凌晨1点。准备好...
既然以“Pro”为名,机能的进步是至关重要的,尤其是它的 GPU 将要迎来的变化。
对于有线耳机用户来说,苹果即将在 9 月 7 日发布的 iPhone 7 中取消传统的 3.5mm 耳...
由于规模成本很难把控,所以苹果一直都没有大规模采用液态金属技术去打造零部件~
仔细考虑下来,苹果似乎不太可能将爱尔兰的运营中心迁到土耳其。
躲避类游戏在移动平台上算是出镜率比较高的,不过现在的躲避游戏同质化程度越来越高,...
如果你在一座城市久居,却因整日的忙碌而忽略了它的内在之美;如果你想去一个地方旅行...
就在上周四,独立游戏工作室“正义之锤(Righteous Hammer Games)”在 App Store 上...
Tales & Dice AB 推出的《汉娜&亨利-生日会(Hanna & Henri - The Party)》是一款深...
很多爱电子音乐爱到疯狂的朋友们都或多或少的想要制作一首属于自己的乐曲,但纵观如今...
《夜之门》的开发团队是曾经推出过《Last Voyage(最后的航程)》、《Kotoro(探索色...
Wall West 早些时候曾推出过 3 部作品,但是综合质量和可玩性都不高,于是 Wall West ...
苹果推出的无线键盘 Magic Keyboard 有着非常不错的表现,但是并非每个人都准备花上 1...
Privoro 公司表示,有了这款产品,监听 iPhone 是一件不可能完成的事情。
论数量,Android一直都是第一,但这能说明这个平台统治了移动市场吗?
在Cydia中搜索插件,似乎并不是那么容易让越狱用户感到舒心。
三星也是拼了,不过对Apple Watch的影响好像不会很大。
看起来还不错,这点电量还是可以作为应急用的。
它内置4000mAh锂离子电池,可完整充满Apple Watch多达6次。
小小的一根U8,却可以解决许许多多烦恼,让你的 iPhone,iPad 不再因为“瘦身”而烦恼...
全新定义基于Tiagse的社交聊天系统,即时通讯源代码,类似whats/微信/陌陌
注册时间 最后登录
在线时间155 小时 UID
主题帖子人气
小苹果, 积分 45, 距离下一级还需 5 积分
这套IM系统是我个人自主开发 完全基于Tiagse ,主要功能为:Android、iOS和服务端,可以支持包括文字 图片,语音等任何消息形式,系统采用的成熟的XMPP协议+CentOS 6.5+Jdk1.8+mysql5.6+mongodb3.0.1+Tigase7.0.2+Redis3.03+Nginx1.7.9。
& && && & 现在市面上有很多 xmpp协议的即时通讯方案,OpenFire androidpn,等等。它们都是使用了Java mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过很多作者的作品,发现代码结构不太理想,耦合的情况太多,实在不好扩展。OpenFire推出较早,我的第一版本也是基于OpenFire的,但由于网络框架比较落后,不稳定,服务经常要重启,且并发性能差,没有一款巨量用户的APP是用它的,研究良久后面选定了Tigase服务器(有巨量用户测试),Tigase推出晚,克服了Openfire好多缺点,性能优越,我们所有的修改都做成了插件,这样当Tigase升级时,插件能照常使用。
软件功能:
<font color="#、用户系统:用户注册、登录、添加好友、删除好友、好友列表、支持上传头像、可以修改个人信息、名称、性别、地区、签名、黑名单功能、拉入黑名单将无法收到对方的信息、查看好友当前地理位置。
<font color="#、聊天系统:发送文字、图片、语音、表情。语音聊天可以显示时长、未读状态,自动轮播未读语音;
<font color="#、群聊系统:建立、加入、删除、群聊列表、群聊、屏蔽群消息功能、邀请、踢出好友(只有群主才有这个功能)。并有操作日志实时显示在房间中
<font color="#、附近人功能:根据筛选条件查看附近的人,查看用户时能显示位置
<font color="#、朋友圈:支持发送文本、图片、语音、视频或以上混合消息,支持好友进行赞、评论、转发等操作
<font color="#、实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口
<font color="#、提供如何和现有用户系统整合的方案,使IM只是成为其中的一个模块,方案简单易用。
<font color="#、单台服务器能适应超10w以上并发,并支持服务器集群,理论上可以支持巨量用户。
扣扣:&&备注:即时通讯咨询
系统特性:
支持单聊群聊& &
离线推送&&
消息回执&&
离线/在线聊天记录&&
NoSQL存储,支持并已实现MongoDB存储&&
同步/异步朋友圈&&
服务器扩展和集群
威锋旗下产品
Hi~我是威威!
沪公网安备 29号 | 沪ICP备号-1
新三板上市公司威锋科技(836555)
增值电信业务经营许可证:
Powered by Discuz!这套IM系统是我个人自主开发
完全基于Tiagse&,主要功能为:Android、iOS和服务端,可以支持包括文字
图片,语音等任何消息形式,系统采用的成熟的XMPP协议&#43;CentOS 6.5&#43;Jdk1.8&#43;mysql5.6&#43;mongodb3.0.1&#43;Tigase7.0.2&#43;Redis3.03&#43;Nginx1.7.9。
& && && & 现在市面上有很多 xmpp协议的即时通讯方案,OpenFire androidpn,等等。它们都是使用了Java mina开发,但是这些东西基本都需要二次改造开发。而且改动还很大,我也看过很多作者的作品,发现代码结构不太理想,耦合的情况太多,实在不好扩展。OpenFire推出较早,我的第一版本也是基于OpenFire的,但由于网络框架比较落后,不稳定,服务经常要重启,且并发性能差,没有一款巨量用户的APP是用它的,研究良久后面选定了Tigase服务器(有巨量用户测试),Tigase推出晚,克服了Openfire好多缺点,性能优越,我们所有的修改都做成了插件,这样当Tigase升级时,插件能照常使用。
软件功能:
1、用户系统:用户注册、登录、添加好友、删除好友、好友列表、支持上传头像、可以修改个人信息、名称、性别、地区、签名、黑名单功能、拉入黑名单将无法收到对方的信息、查看好友当前地理位置。
2、聊天系统:发送文字、图片、语音、表情。语音聊天可以显示时长、未读状态,自动轮播未读语音;
3、群聊系统:建立、加入、删除、群聊列表、群聊、屏蔽群消息功能、邀请、踢出好友(只有群主才有这个功能)。并有操作日志实时显示在房间中
4、附近人功能:根据筛选条件查看附近的人,查看用户时能显示位置
5、朋友圈:支持发送文本、图片、语音、视频或以上混合消息,支持好友进行赞、评论、转发等操作
6、实现了发消息后,如接收方不在线,除了离线消息外,会自动推送通知,留了推送接口
7、提供如何和现有用户系统整合的方案,使IM只是成为其中的一个模块,方案简单易用。
8、单台服务器能适应超10w以上并发,并支持服务器集群,理论上可以支持巨量用户。
扣扣:&&备注:即时通讯咨询
系统特性:
支持单聊群聊& &
离线推送&&
消息回执&&
离线/在线聊天记录&&
NoSQL存储,支持并已实现MongoDB存储&&
同步/异步朋友圈&&
服务器扩展和集群
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:177次
排名:千里之外17607人阅读
消息中间件(41)
深入认识Tigase XMPP Server(上)作者:chszs,转载需注明。博客主页:本文的目的是深入认识Tigase XMPP Server的特性。1、Tigase HTTP API实现XMPP和HTTP之间的桥梁,可通过REST调用实现对Tigase安装的管理和维护,可通过脚本API在运行时进行扩展。使用HTTP API组件,可以:1)下载Tigase XMPP服务器运行时的统计,它包含了1000种不同的性能度量。可以做到轻松、快速的监控和早期预警等功能。2)通过REST API管理Tigase XMPP服务器,实现Tigase服务器与第三方维护、管理系统的集成。3)灵活的脚本框架,可以在运行时添加管理任务,可以在扩展管理和维护功能时无需重启服务。4)灵活的HTTP API框架,可以添加更多的服务并托管到XMPP引擎上。2、Tigase XMPP Server全球大约有1亿的设备连接到Tigase服务器上,全球大约有1100台服务器部署运行着Tigase服务器。业界有很多优秀的开源XMPP服务器,比如eJabberd、Openfire、Jabberd2、Prosody,还有一些优秀的商业XMPP服务器,比如lsode、Jabber XCP等。在XMPP.ORG网站上可以看到完整的列表。Tigase XMPP服务器是相当独特的,它完全支持最新的规范(如RFC6120-XMPP CORE、RFC6121-XMPP IM和其它扩展)。1)高度优化的。主二进制文件小于1MB,可运行于10MB内存的设备上。2)高度模块化。每个部件或组件都可以通过配置加载或替代。3)非常灵活。集成到系统中很方便,支持开箱即用的集群,无需寻找附加软件或扩展库。4)为低、中、高档服务器而设计。还在Amazon的EC2云上广泛测试过。5)良好的测试。有专门的工具来运行自动化测试,还可以手动运行兼容性测试,以及大量的负载测试。所有的测试结果都是公开的,所有测试使用的工具和配置细节都是公开的。6)支持脚本。支持Groovy、Python、Ruby、Scala等脚本语言编写扩展。7)易于监控。可以通过HTTP、SNMP、JMX、XMPP等方式监控服务器。8)支持SSL。Tigase从设计上就保证了安全,保护用户的隐私。API不允许从一用户访问另一用户的数据,在服务器端实现了强隔离。3、Tigase ACSTigase单个安装(One Installation)可以支撑1400万在线用户;单个安装美妙可以处理50万条消息;单个安装可以实现40台服务器集群。即Tigase ACS。Tigase ACS是Tigase XMPP服务器的商业级的集群实现。它专注于某些目标,如联系人列表超过10个,以及大规模XMPP系统工作在集群模式:1)在安装时解决网络流量的问题2)允许扩展到上百万的在线用户或设备3)允许把负载分配到多种机器上4)实现系统的高可用,预防服务的中断5)支持超大群聊6)提供消息推送服务使用ACS可以达到:1)降低集群节点间的网络流量10倍以上2)减少CPU利用率至少5倍3)在高负载情况下也能提供可靠服务4)支持大量的连接在设计上可处理500万以上的在线用户。我们测试过产品状态,支持150万在线用户。5)支持多服务器设计上可以在50台以上服务器上有效工作。测试过10个集群节点,产品系统运行在40台机器的情况。6)部署极其简单只需修改一点配置,数据库层不变。4、Tigase发布订阅(PubSub)Tigase支持完整的发布/订阅(PubSub)扩展规范。可以把消息推送到上百万的频道中,每个频道可以有上百万的订阅用户。集群模式下提供了近乎线性的可扩展性和负载分配。发布订阅扩展允许你创建频道供用户订阅,你可以把内容推送到频道并发布。然后全部内容或者只是更新的内容会被发送给所有的订阅者。这种基于角色的系统,与群聊类似,但订阅者不必在线,离线也能把消息推送给用户(只要用户一上线就能收到)。发布订阅功能可以做什么?1)可以根据兴趣分组内容,如体育、科学、天气、新闻等,并把内容推送给感兴趣的人。2)可以用于灾害预警,居民可以根据地理位置进行分组。3)可以提供基于位置的服务。4)业务流程可以使用此方式来发送警告。Tigase的发布订阅可以提供:1)交付近乎实时的通知给订阅频道的用户2)基于角色的订阅系统,决定哪些用户只能接收/读取内容,哪些用户可以发布内容到频道,以及频道级管理员、全局管理员。3)自定义内容和通知元数据可以很好地匹配各种需求。4)灵活的基于用户的交付系统,可以决定是否只把通知交付给在线订阅的用户;是否把通知交付给所有订阅的用户;还可以指定通知的过期时间,以及其他很多选项。5)支持数百万的发布订阅频道交付通知给订阅者。6)发布订阅频道支持上百万的订阅者。5、消息归档(Message Archiving)Tigase提供了对消息归档的完整支持(XEP-0136扩展),支持数据库分片(开箱即用),还能作为外部组建部署到多种服务器上。用户往往希望保存聊天记录以便以后检索,基本上目前大多数聊天客户端都在本地保存了聊天记录,但是,用户往往不止一个设备,用户希望聊天记录在每个设备上都能查到。那么这些聊天记录如何在各种设备的客户端之间进行同步呢?最佳的解决方法就是把聊天记录存储在服务器端,并运行用户的所有设备都能访问聊天历史记录。消息归档组件允许把用户的聊天历史记录存储到服务器的单个库中,并能按需搜索。Tigase服务器提供了对消息归档扩展的完整支持。对终端用户而言,他的工作完全透明,自动存储消息。消息归档提供了聊天文档的大量特征:1)可以在任意时间打开/关闭聊天记录2)支持OTR(Off-The-Record,即聊后即焚)聊天3)自动把群聊分到不同线程以便逻辑区分不同的对话4)根据不同的条件,可以灵活地检索聊天历史记录5)管理员可强制查看所有用户的聊天记录,而不管用户的设置6)支持开箱即用的数据库分配,允许数据和负载进行分配6、JaXMPP库提供Android移动设备、GWT Web客户端、独立的Java应用程序等库,完全支持XMPP/Jabber规范及其所有主要的扩展。JaXMPP代表Java XMPP,但它不仅是Java库,它还兼容GWT,因此可以用于开发Web客户端,它还兼容Android Java,因此可以用于开发带XMPP支持的Android移动应用,以及常规的Java应用程序。此客户端库的功能完整,而且代码开源并免费。JaXMPP库网站:&JaXMPP库文档:&7、Web客户端全功能的Web客户端,支持基本的聊天、MUC、发布/订阅和许多扩展管理接口,通过CORS,经BOSH或WebSocket连接到任意XMPP服务器实现跨站点支持。CORS:Cross-Origin Resource Sharing,跨域资源共享功能非常全,支持:1)完整的XMPP规范2)Web优化(更快的重连和聊天状态恢复)3)消息归档支持(从服务器查看历史聊天记录)4)良好的MUC群聊协议(访问Web浏览器时可以群聊)5)发布订阅(直接从Web浏览器发布消息到发布订阅节点)
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3614261次
积分:39979
积分:39979
排名:第66名
原创:752篇
转载:23篇
译文:24篇
评论:988条
大家好,我是黑客,专门盗账号的。现在这个人的帐号被我盗了,但看这个人平时的博客空间,一直过着艰苦努力、持之以恒的技术研究生活,勤奋刻苦,积极分享,无私奉献,我被深深的感动了,这是一个纯粹的人,人品这样的高尚,希望大家看到我这条消息后,可以私聊他,多鼓励他,不缺钱的就多给他一些经济上的资助,让他再接再厉!就这样吧,我下线了,眼框湿湿的难受。
(2)(7)(6)(5)(11)(11)(11)(11)(10)(10)(10)(10)(4)(10)(10)(1)(1)(5)(10)(3)(11)(5)(5)(5)(6)(3)(6)(7)(9)(5)(5)(5)(9)(6)(2)(6)(8)(5)(15)(9)(13)(5)(6)(11)(15)(23)(16)(10)(1)(3)(1)(3)(1)(1)(1)(3)(11)(4)(1)(1)(1)(3)(2)(1)(3)(2)(2)(1)(2)(3)(4)(4)(4)(1)(2)(5)(11)(20)(18)(13)(19)(20)(15)(10)(2)(4)(7)(4)(1)(4)(5)(4)(5)(12)(3)(12)(13)(10)(21)(29)(14)(11)(26)(8)(16)(9)(3)

我要回帖

更多关于 查看redis是否运行 的文章

 

随机推荐