zoukankan      html  css  js  c++  java
  • DBCacheServer服务升级

    前段时间完成了该服务的设计的功能,花了很多时间和经历,最终完成了一个版本,已经测试了;现在后期再次在以前的基础上,完成了一些扩展。

    1.扩展了内存存储

    最初版本只是采用了gauva cache进行存储,让其在内存中缓存。新的缓存做了这么几件事情。

    1,增加了配置,配置缓存的大小和时间。

    2.增加了参数化SQL的结果缓存,将参数序列化为json格式字符串,结合SQL做key缓存结果。

    3.gauva cache中过期数据转移到redis中存储,配置redis将扩展内存缓存存储,加快查询。redis客户端采用集群查询的方式,你可以任意部署。

    2.整体服务升级

    初版服务只是单个服务部署的模式,其实我感觉已经足够了,比较数据库查询是交给数据库的集群做查询的,单服务已经足够承担起查询使用了。但是考虑到服务器配置问题,所以还是提供了集群部署方案。

    具体:1.比较了几种方案,折腾了一周进行学习和简单研究,比较了consul和etcd。最后采用了etcd。

               etcd服务承担注册中心,根据配置,服务启动后向etcd节点注册,向etcd发送自己的IP及端口。etcd本身可以集群部署。

           这样实现服务的集群部署。

           2.客户端操作,客户端通过etcd获取服务的注册信息,然后调用服务。

          3.提供了代理,写了一个代理件,代理件提供etcd获取服务信息,客户端向客户端请求服务IP信息,然后调用服务查询。

         4.由于etcd的集群部署,服务提供了配置文件长传,主要配置文件长传后,其它服务节点会监测有没有配置文件需要更新,如果需要就更新文件,定时监测文件更新的服务会重新加载一次配置文件。还可以扩展其它功能,但是我没有提供了。

       更新文件的比较,我直接采用比较文件内容字符串的方法。如果文件内容不同就更新文件。

        下一篇我将简单介绍一下etcd。

    服务地址

    https://github.com/jinyuttt/DBCacheServer.git
  • 相关阅读:
    Dart Learn Notes 04
    Dart Learn Notes 03
    Dart Learn Notes 02
    一介书生,仅此而已
    计算机技术的演进及编程语言的多样
    C#方法(用法,参数)
    C#数组--(Array类的属性和方法)
    C#数组--(一维数组,二维数组的声明,使用及遍历)
    程序设计的编程方法
    C#流程控制语句--跳转语句(break,continue,goto,return,)
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/10312379.html
Copyright © 2011-2022 走看看