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

PhotonVPS:$4/月,KVM-2GB/30GB/2TB/洛杉矶&达拉斯&芝加哥等

很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...

JUSTG提供俄罗斯和南非CN2 GIA主机年$49.99美元JUSTGgia南非cn2南非CN2justG

JUSTG,这个主机商第二个接触到,之前是有介绍到有提供俄罗斯CN2 GIA VPS主机活动的,商家成立时间不久看信息是2020年,公司隶属于一家叫AFRICA CLOUD LIMITED的公司,提供的产品为基于KVM架构VPS主机,数据中心在非洲(南非)、俄罗斯(莫斯科),国内访问双向CN2,线路质量不错。有很多服务商实际上都是国人背景的,有的用英文、繁体搭建的冒充老外,这个服务商不清楚是不是真...

亚洲云-浙江高防BGP,至强铂金8270,提供自助防火墙管理,超大内存满足你各种需求

官方网站:点击访问亚洲云官网618活动方案:618特价活动(6.18-6.30)全站首月活动月底结束!地区:浙江高防BGPCPU:至强铂金8270主频7 默频3.61 睿频4.0核心:8核(最高支持64核)内存:8G(最高支持128G)DDR4 3200硬盘:40G系统盘+80G数据盘带宽:上行:20Mbps/下行:1000Mbps防御:100G(可加至300G)防火墙:提供自助 天机盾+金盾 管...

leveldb为你推荐
视频托管我想做一些游戏教学视频,放到网上收费该可以吗?excel大写金额EXCEL如何显示出汉字大写金额暴力破解rar暴力破解rar,一个15位左右的密码,得用多长时间。(双核。2g内存)pat是什么格式怎么能把常用格式的图片转换成PAT格式的呀~broadcast播哈尔滨哪里有卖broadcast播 这个服装品牌的5e5e5e如何更改bootstrap navbar的颜色 03 Topics 03 Ruby Chinanetbios协议现在怎么还有用NetBios协议的,这个协议和TCP/IP协议有什么关系,为什么获取网卡的信息还要qq管家官网腾讯手机管家官网防盗页面地址是什么?知识百科网络安全密钥网络安全密钥和wifi密码有什么区别防火墙技术应用常用防火墙技术有哪几种
已备案域名出售 香港vps99idc 亚洲小于500m ibox官网 gg广告 中国智能物流骨干网 linux空间 卡巴斯基官方免费版 网站cdn加速 cn3 广州服务器 服务器干什么用的 hkt 免费dns解析 空间首页登陆 1元域名 德隆中文网 阿里云邮箱登陆地址 主机返佣 学生服务器 更多