leveldb谁用过apache apollo,有个问题需要请教下

leveldb  时间:2021-06-22  阅读:()

LevelDB存储量对性能有多大影响?

可能很多人都不知道RedisStorage 和redis 之间的区别。

redis的存储是存储在里的, RedisStorage可以选择存储在磁盘里. 当redis崩溃的时候。

redis 会从rdb或者aof文件重新读取数据到内存里。

如果数据量很大的话。

这个初始化是相当的慢。

(这就是 redis的假数据持久)。

RedisStorage 是直接存储在 磁盘里。

所以不存在这个数据重加载问题。

还有redis 存储是受物理内存限制的,比如你有几千万或者几亿的数据。

如果存储在redis里。

那得需要多巨大的内存了。

使用RedisStorage 就没有物理内存限制这个问题。

最大可以存储十亿数据。

最后说一下淘宝的Tair ldb项目。

同样基于leveldb 存储引擎。

广泛的用在 登录淘宝、查看商品详情页面、在淘江湖和好友“捣浆糊”等。

说明leveldb 数据引擎的可靠性和海量数据存储。

但是开源版的Tair ldb 并不好用。

所以自己写了个基于 leveldb的 server端。

Apache apollo 怎么实现集群部署

1、下载Apollo服务器,下载后解压,然后运行apache-apollo-1.6inapollo.cmd,输入createmybroker(名字任意取,这里是根据官网介绍的来取的)创建服务器实例,服务器实例包含了所有的配置,运行时数据等,并且和一个服务器进程关联。

  2、createmybroker之后会在bin目录下生成mybroker文件夹,里面包含有很多信息,其中etcapollo.xml文件下是配置服务器信息的文件,etcusers.properties文件包含连接MQTT服务器时用到的用户名和密码,后面会介绍,可以修改原始的admin=password,可以接着换行添加新的用户名密码。

  3、打开cmd,运行…apache-apollo-1.6inmybrokerinapollo-broker.cmdrun开启服务器,可以在浏览器中输入查看是否安装成功,该界面展示ic,连接数等很多信息。

  经过上面的简单步骤,服务器基本上就已经完成,下一篇将介绍Android客户端的编写和注意事项。

  客户端使用的API,开始我使用的是mqtt-client,使用过后发现问题百出,不能很好的满足要求,后来使用了官方推荐的EclipsePaho,下面开始客户端代码的编写,为了方便测试这里有android和j2se两个工程:  1、新建android工程MQTTClient  2、MainActivity代码如下:  [java]viewplaincopyprint?packageldw.mqttclient;importjava.util.concurrent.Executors;importjava.util.concurrent.ScheduledExecutorService;importjava.util.concurrent.TimeUnit;3.IMqttDeliveryToken;3.MqttCallback;3.MqttClient;3.MqttConnectOptions;3.MqttException;3.MqttMessage;3.persist.MemoryPersistence;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;importandroid.os.Message;importandroid.view.KeyEvent;importandroid.widget.TextView;importandroid.widget.Toast;lassMainActivityextendsActivity{privateTextViewresultTv;privateStringhost="tcp://127.0.0.1:1883";privateStringuserName="admin";privateStringpassWord="password";privateHandlerhandler;privateMqttClientclient;privateStringmyTopic="ic";privateMqttConnectOptionsoptions;privateScheduledExecutorServicescheduler;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);resultTv=(TextView)findViewById(R.id.result);init();handler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){super.handleMessage(msg);if(msg.what==1){Toast.makeText(MainActivity.this,(String)msg.obj,Toast.LENGTH_SHORT).show();System.out.println("-----------------------------");}elseif(msg.what==2){Toast.makeText(MainActivity.this,"连接成功",Toast.LENGTH_SHORT).show();try{client.subscribe(myTopic,1);}catch(Exceptione){e.printStackTrace();}}elseif(msg.what==3){Toast.makeText(MainActivity.this,"连接失败,系统正在重连",Toast.LENGTH_SHORT).show();}}};startReconnect();}privatevoidstartReconnect(){scheduler=Executors.newSingleThreadScheduledExecutor();scheduler.scheduleAtFixedRate(newRunnable(){@Overridepublicvoidrun(){if(!client.isConnected()){connect();}}},0*1000,10*1000,TimeUnit.MILLISECONDS);}privatevoidinit(){try{//host为主机名,test为clientid即连接MQTT的客户端ID,一般以客户端唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存client=newMqttClient(host,"test",newMemoryPersistence());//MQTT的连接设置options=newMqttConnectOptions();//设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,这里设置为true表示每次连接到服务器都以新的身份连接options.setCleanSession(true);//设置连接的用户名options.setUserName(userName);//设置连接的密码options.setPassword(passWord.toCharArray());//设置超时时间单位为秒options.setConnectionTimeout(10);//设置会话心跳时间单位为秒服务器会每隔1.5*20秒的时间向客户端发送个消息判断客户端是否在线,但这个方法并没有重连的机制options.setKeepAliveInterval(20);//设置回调client.setCallback(newMqttCallback(){@OverridepublicvoidconnectionLost(Throwablecause){//连接丢失后,一般在这里面进行重连System.out.println("connectionLost----------");}@OverridepublicvoiddeliveryComplete(IMqttDeliveryTokentoken){//publish后会执行到这里System.out.println("deliveryComplete---------"+token.isComplete());}@OverridepublicvoidmessageArrived(icName,MqttMessagemessage)throwsException{//subscribe后得到的消息会执行到这里面System.out.println("messageArrived----------");Messagemsg=newMessage();msg.what=1;icName+"---"+message.toString();handler.sendMessage(msg);}});//connect();}catch(Exceptione){e.printStackTrace();}}privatevoidconnect(){newThread(newRunnable(){@Overridepublicvoidrun(){try{client.connect(options);Messagemsg=newMessage();msg.what=2;handler.sendMessage(msg);}catch(Exceptione){e.printStackTrace();Messagemsg=newMessage();msg.what=3;handler.sendMessage(msg);}}}).start();}@OverridepublicbooleanonKeyDown(intkeyCode,KeyEventevent){if(client!=null&&keyCode==KeyEvent.KEYCODE_BACK){try{client.disconnect();}catch(Exceptione){e.printStackTrace();}}returnsuper.onKeyDown(keyCode,event);}@OverrideprotectedvoidonDestroy(){super.onDestroy();try{scheduler.shutdown();client.disconnect();}catch(MqttExceptione){e.printStackTrace();}}}  由于项目需要,我用到了心跳重连。

根据这里的解释设置apollo.xml,主要有设置主机连接的地址。

另外,options还有个setWill方法,如果项目中需要知道客户端是否掉线可以调用该方法。

谁用过apache apollo,有个问题需要请教下

Apache Apollo是一个代理服务器,主要用于消息的请求转发,下面是其常用的一些配置文件的介绍 一、users.properties: 用来配置可以使用服务器的用户以及相应的密码。

其在文件中的存储方式是:用户名=密码,如: lily=123456 表示新增一个用户,用户名是:lily,密码是:123456 二、groups.properties: 持有群体的用户映射,可以通过组而不是单个用户简化访问控制列表。

可以为一个定义的组设置多个用户,用户之间用“|”隔开,如: admins=admin|lily 表示admins组中有admin和lily两个用户 三、black-list.txt: 用来存放不允许连接服务器的IP地址,相当于黑名单类似的东西。

例如: 10.20.9.147 表示上面IP不能够连接到服务器。

四、login.config: 是一个服务器认证的配置文件,为了安全apollo1.6版本提供了认证功能,只有相应的用户名和正确的密码才能够连接 服务器。

五、服务器主配置文件apollo.xml: 该配置文件用于控制打开的端口,队列,安全,虚拟主机设置等。

1、认证:可以使用来配置是否需要连接认证,如果将其属性enable设置为false表示不用认证,任何人都可以连接服务器,默认为true 2、ess_rule:可以在broker或者virtual_host中用于定义用户对服务器资源的各种行为。

如: 表示群组users里面的用户可以对服务器资源进行的操作有:connect 、create、 destroy、 send 、receive 、consume。

详细的操作说明见: 3、message stores:默认情况下apollo使用的是LevelDB store,但是推荐使用BDB store(跨平台的)只能够实用其中一种。

使用LevelDB store的配置是:默认有提供不用任何修改。

使用BDB store需要到网站下jar包支持 ,将jar包放在服务器的lib目录下面,然后将配置文件改成:即可。

4、connector:用于配置服务器支持的链接协议以及相应的端口。

如: 表示支持tcp链接,使用的端口是61613,链接限制是2000,自动侦听的协议是mqtt协议。

VinaHost,越南vps,国内延时100MS;不限流量100Mbps

vinahost怎么样?vinahost是一家越南的主机商家,至今已经成13年了,企业运营,老牌商家,销售VPS、虚拟主机、域名、邮箱、独立服务器等,机房全部在越南,有Viettle和VNPT两个机房,其中VNPT机房中三网直连国内的机房,他家的产品优势就是100Mbps不限流量。目前,VinaHost商家发布了新的优惠,购买虚拟主机、邮箱、云服务器、VPS超过三个月都有赠送相应的时长,最高送半年...

飞讯云E5-2678V3 64GB,湖北十堰100G高防物理机330元/月

飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...

白丝云-美国圣何塞4837/德国4837大带宽/美西9929,26元/月起

官方网站:点击访问白丝云官网活动方案:一、KVM虚拟化套餐A1核心 512MB内存 10G SSD硬盘 800G流量 2560Mbps带宽159.99一年 26一月套餐B1核心 512MB内存 10G SSD硬盘 2000G流量 2560Mbps带宽299.99一年 52一月套餐...

leveldb为你推荐
阶乘符号1~10的阶乘(!)分别是多少?avc是什么格式手机avc格式怎么剪辑flash实例FLASH中实例是个什么概念,真心期待着!!!期待好心人,感恩!希望大家多讨论怎么用电脑发短信怎样用电脑给别人的手机发短信?音乐代码在html中插入mp3音频的代码是什么腾讯合作伙伴大会从微信同程旅行买的机票怎么打印电子发票?腾讯合作伙伴大会腾讯位置服务是什么?za是哪个国家的IE是哪个国家的缩写防火墙技术应用在网络支付流程中,防火墙技术与数据加密技术应用则重点有什么不同?cc防火墙web防火墙有什么作用
国内vps 什么是二级域名 sugarhosts 鲨鱼机 警告本网站美国保护 e蜗 宁波服务器 hostloc 域名评估 免费申请网站 免费cdn 什么是web服务器 英雄联盟台服官网 个人免费邮箱 镇江高防 机柜尺寸 德国代理 遨游论坛 泥瓦工 天鹰抗ddos防火墙 更多