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协议。

HostSlim,双E5-2620v2/4x 1TB SATA大硬盘,荷兰服务器60美元月

hostslim美国独立日活动正在进行中,针对一款大硬盘荷兰专用服务器:双E5-2620v2/4x 1TB SATA硬盘,活动价60美元月。HostSlim荷兰服务器允许大人内容,不过只支持电汇、信用卡和比特币付款,商家支持7天内退款保证,有需要欧洲服务器的可以入手试试,记得注册的时候选择中国,这样不用交20%的税。hostslim怎么样?HostSlim是一家成立于2008年的荷兰托管服务器商,...

鲸云10美元,香港BGPRM 1核 1G 10Mbps峰值带宽 1TB流量,江西CN2-NAT 1核 512MB内存 100M带宽 ,

WHloud Official Notice(鲸云官方通知)(鲸落 梦之终章)]WHloud RouMu Cloud Hosting若木产品线云主机-香港节点上新预售本次线路均为电信CN2 GIA+移动联通BGP,此机型为正常常规机,建站推荐。本次预售定为国庆后开通,据销售状况决定,照以往经验或有咕咕的可能性,但是大多等待时间不长。均赠送2个快照 2个备份,1个默认ipv4官方网站:https:/...

Virmach($5.23/年)年付VPS闪购

每每进入第四季度,我们就可以看到各大云服务商的促销力度是一年中最大的。一来是年底的促销节日活动比较多,二来是商家希望最后一个季度冲刺业绩。这不还没有到第四季度,我们看到有些商家已经蠢蠢欲动的开始筹备活动。比如素有低价VPS收割机之称的Virmach商家居然还没有到黑色星期五就有发布黑五促销活动。Virmach 商家有十多个数据中心,价格是便宜的,但是机器稳定性和速度肯定我们也是有数的,要不这么低的...

leveldb为你推荐
财务系统软件2020年有什么好用的财务软件?动态图片格式动态图片什么格式webservice框架WebService新手,请教WebService需要什么包全局钩子delphi 键盘全局钩子云办公平台Gleasy云办公平台解决了哪些问题?医院排队系统请问医院采血排队的设备系统是独立的吗?淘码除了爱码,现在哪个验证码平台还能用怎么查微信注册时间怎么查看自己的微信号用了多久在线操作系统常见的电脑操作系统有哪些?各有什么优缺点手机在线客服怎样和oppo客服在线交流
腾讯云盘 web服务器架设软件 魔兽世界台湾服务器 丹弗 云鼎网络 500m空间 godaddy域名证书 hostloc 阿里校园 泉州移动 qq云端 服务器干什么用的 免费智能解析 东莞服务器 web服务器是什么 网站加速软件 免费的asp空间 我的世界服务器ip cxz 阿里云免费邮箱 更多