1.1 redis

1.1.1 作用

redis是内存数据库,有存储查询快,支持分布式的好处。使用redis一方面是为了解决web访问session共享的问题。另一方面是为了存放热点数据,目前主要是存放一些经常使用的核心配置,供多机使用,减少mysql的并发查询压力。

用户上网的session

1.1.2 服务管理

redis路径:*/redis

启动redis服务:

su - redis -c "cd */redis/bin && ./redis-server */redis/conf/redis.conf >/dev/null 2>&1 &"

关闭redis服务:

1.1.3 操作方法

redis的操作有多种,主要是客户端工具操作,或者控制台直接命令操作。

客户端工具目前可以使用RedisDesktopManger,直接下载,配置源信息使用。

控制台命令主要是使用redis自带的redis-cli客户端工具操作redis

cd */redis/bin/

./redis-cli -a passwd -p 16379

进入控制台后,具体的操作命令大家可以在http://www.runoob.com/redis/redis-tutorial.html上面学习了

建议大家还是使用控制台的方式操作,http://try.redis.io/ 这个网站可以直接在上面操作学习。

1.1.4 注意要点

l 配置改了怎么没生效?

因为配置我们是从redis获取的,如果你是手动修改数据库的方式,或者执行sql的方式,那么redis里面是没有更新的。新使用界面配置菜单修改,或者重启tomcat即可。界面修改和tomcat重启,我们都会刷新redis的数据。

1.2 zookeeper

1.2.1 作用

zookeeper是服务注册与调度协调的一个分布式组件。目前我们使用它主要是解决两方面的事情,一个是我们策略模块各个服务的注册和调度。另一方面是我们使用它实现平台和各个子系统的配置订阅与发布。平台上会维护一些公共配置,比如redis的源信息,es的源信息等,各个子系统假如也需要这部分信息,就可以订阅,订阅完毕后,平台假如修改了,就能发布给各个子系统,各个子系统收到后,修改自己的本地库即可。

1.2.2 服务管理

zookeeper路径:*/zookeeper

启动zookeeper服务

cd * /zookeeper/zookeeper-3.4.5/bin && nohup ./zkServer.sh start  2>&1 &

关闭zookeeper服务

 

多节点配置

zk多节点部署时,每个节点都需要增加如下配置:

 vim */zookeeper/zookeeper-3.4.5/conf/zoo.cfg如下图,增加配置

 

 

每个节点服务器运行echo "1" > */zookeeper/data/myid。其中1需要按照上图中的递增数填写

1.2.3 操作方法

zookeeper可以使用其自带的客户端工具zkCli.sh,在控制台使用命令行操作。

cd */zookeeper/zookeeper-3.4.5/bin/

./zkCli.sh –server 127.0.0.1:48889

1.2.4 注意要点

l 暂无

zookeeper可能在运维过程中很少涉及到,目前针对zookeeper唯一要注意的就是我们目前为了自动化升级,只安装了一个zk服务,假如这一台挂了,那么我们的策略下发等等服务,将会存在问题,如果我们按照1.2.2章节中介绍,实现度多节点配置,那么挂一台也是没问题的。

1.3 elasticsearch6.1.0

1.3.1 作用

ES是文档类型的搜索引擎。提供亿级数据秒级检索的解决方案。

1.3.2 服务管理

ES路径:/*/es

启动ES服务:

su - elasticsearch -c "cd * /es/elasticsearch-6.1.0/bin/ && ./elasticsearch -d"

关闭ES服务:

 

多节点扩容配置

假如es集群节点数大于或等于3,则需要我们手动修改各个ES节点的一个配置文件,修改的目的是在集群网络不稳定的情况下,防止ES产生脑裂问题,步骤如下:

  • vim */es/elasticsearch-6.1.0/config/elasticsearch.yml
  • 将discovery.zen.minimum_master_nodes: 1中的1修改为(N/2)+1其中N为节点数,比如我们节点数为3,则修改成2即可。
  • 重启各个ES节点,直接kill掉即可,dog会自动拉起服务

1.3.3 操作方法

es目前我们提供了两个插件来支持我们现网运维。

一个是http://数据库IP:9100/

一个是http://数据库IP:9101/

其中9100端口提供的是eselasticsearch-head插件,提供es整站的管理。包括集群状态,集群信息,索引信息与操作,数据浏览与操作等等功能。但是其查询及操作数据,需要熟悉他复杂的json格式的api,对于不熟悉的人,门槛很高,所以我们提供了9101elasticsearch-sql插件,可以通过大家都熟知的sql方式,查询数据浏览数据,简单的统计数据,只有select功能。

1.3.4 注意要点

l es上索引都有数据,怎么界面查询不出来

首先很多类型的日志,是按天分表的,但是我们界面想整体是查看数据,es提供了别名的方式,所以目前我们界面都是通过别名的方式查询的,假如这个索引的别名丢失,或者没有创建,那么界面确实无法查看,可以通过9100端口界面,手动添加。

l CU底层一直在解析文件,为啥es里面日志数量没有变化?界面上的数据咋没有增加?

ES本身是懒加载的,就是说数据进来了,并不是实时为其创建索引的,而是根据你的设置,来建立索引的,这样德目的也是为了提高入数据的性能,目前我们控制的是入完一个文件,30秒后,建立索引,所以存在一定的延后。

怎么ps查看es的进程不存在呢?

新版ES启动做了很多验证,不能root启动,同时对linux的内核参数也有要求,比如open files的大小,vm.max_map_count进程拥有的内存区域大小等有限制。当es的进程不再时可以查看/*/es/elasticsearch-6.1.0/logs/idc_es.log 日志,具体分析。特别主要open files的限制,升级版本加大了这个数,但是有的地方会在profile中,把这个参数给覆盖了,导致无法启动。

1.4 dubbo

1.4.1 作用

dubbo是一套微服务提供框架,配合zookeeper使用。在我们产品中,一方面在管理平台上,提供登录,认证,账号列表等公共服务。另一方面提供策略下发,配置下发等等下发服务。选用他的好处是一站式远程RPC的解决方案,同时支持服务容灾,支持横向扩充等等。

1.4.2 服务管理

dubbo是集成在tomcat项目里面的,不是单独的进程。启动我们项目的tomcat,该服务伴随启动。

1.4.3 操作方法

dubbo我们提供了管理界面https://webIP:8443/dubbo-admin

在该界面上我们可以查看服务列表,消费者列表,服务状态等等

1.5 tomcat

1.4.1 作用

tomcat需要有一个web应用服务器来承载系统的正常运行

web应用服务器是用于接受和处理的,是一款servlet容器,8.5x版本是市场主流版本