搭建zookeeper集群

Zookeeper环境搭建 前期准备: 由于Zookeeper需要先安装java 机器: 三台测试机器 192.168.1.31 192.168.1.32 192.168.1.33 上传zookeeper的压缩包 三个节点都解压到usr/local下 [root@kaishun local]# tar zxvf zookeeper-3.4.5.tar.gz -C /usr/local 1 三台节点都重命名 zookeeper-3.4.5 为zookeeper [root@kaishun local]# mv zookeeper-3.4.5/ zookeeper 1 修改环境变量 path末尾增加一个zookeeper的bin目录 # zookeeper export ZOOKEEPER_HOME=/usr/local/zookeeper export PATH=$PATH:$ZOOKEEPER_HOME/bin 1 2 3 到zookeeper下修改配置文件 cd /usr/local/zookeeper/conf/ mv zoo_sample.cfg zoo.cfg 1 2 修改conf 1.修改 dataDir=/usr/local/zookeeper/data 2. 后面添加: 1 2 3 server.0=192.168.1.31:2888:3888 … Continue reading 搭建zookeeper集群

fluentd+mongodb构建分布式日志收集系统

转自:http://blog.csdn.net/T1DMzks/article/details/78916749 目录(?)[-] 一 mongodb单机安装 1 下载解压并安装 2 配置环境变量 二 fluentd安装 1 调整安装的Linux环境 2 在线或离线安装fluentd 3 运行fluentd服务 4 配置fluentd文件 5 重启fluentd然后查看fluentd的状态 6 fluent-plugin-mongo 插件安装 7 安装完后重启fluentd 8 测试 三扩展 1 fluentd安装过程问题解决 2 MongoDb web 用户界面 3 mongodb 34 集群搭建分片副本集 前言: 和同事合作安装过一次fluentd+mongodb,网上文档较少,走了好多弯路,幸亏同事比较给力,能成功应用,现将安装笔记记录一下 。(这里只安装了一台,分布式也是一样的,使用mongodb集群即可) 一、 mongodb单机安装 1.1 下载解压并安装 下载mongodb-linux-x86_64-3.4.6.tgz , 镜像地址 https://www.mongodb.org/dl/linux/x86_64 #解压 tar -xzvf mongodb-linux-x86_64-3.4.6.tgz -C /usr/local/ … Continue reading fluentd+mongodb构建分布式日志收集系统

Proxmox VE

Proxmox VE是一个系统,专门用作管理虚拟机 http://pve.proxmox.com/wiki/Downloads https://pve.proxmox.com/wiki/Category:HOWTO 安装 iso安装,就像安装ubuntu系统 1,install 2, 接下来是一个协议,选择我同意,然后下一步。 3, 填写root密码和管理员的联络邮箱 4, 填写主机名和本机网络,IP信息 (!!主机名开头不能相同,在做集群的时候会加不进去节点) 例:master.pev worker01.pev worker02.pev 系统启动后,系统会用第一个.之前作为主机名,如果相同,可能会发生冲突导致加不到集群节点 5, 安装完成reboot 访问: https://192.168.20.15:8006 到达登陆页面,使用root和密码登陆,可选择中文 也可以採用文字模式的 ssh 登入 proxmox 主機、 以 debian 的指令管理系統、 以 vzctl 指令管理 OpenVZ container 创建VM 就是普通的虚拟机,下载的ISO文件放入服务器/var/lib/vz/template/iso目录 创建CT ct就是利用openvz虚拟技术创建的虚拟机,系统模板可以到OpenVZ官网去下载,以tar.gz后缀,放入服务器/var/lib/vz/template/cache目录 opvenvz 是基于Linux内核的虚拟化技术 运行 pveversion -v 命令以检查各种软件包的版本 qm    虚拟机管理命令 https://pve.proxmox.com/wiki/Manual:_qm qm list 虚拟机列表 qm clone <vmid> … Continue reading Proxmox VE

《Java深入微服务原理改造房产销售平台》知识点梳理与问答总结

《Java深入微服务原理改造房产销售平台》单体知识点 一图胜千言 《Java深入微服务原理改造房产销售平台》微服务知识点 一图胜千言 《Java深入微服务原理改造房产销售平台》日常答疑 既然已经在session有了,直接session取就行了,为什么要再放threadlocal,之后再从threadlocal清掉,一直从session拿不就行了? 答: 放在Threadlocal里面,是为了后面的Controller、Service、Dao任何地方只要是当前业务处理的线程都能 直接并且方便的 获取到用户对象. 如果我们不做这种处理,那只能从Session中获取,当Service里面要获取user的时候,Controller在调用service方法时就必须传递HttpServletRequest这种容器相关参数,增加了业务与底层实现的耦合,造成业务处理关注点的增多;而且每个Controller都需要接收HttpServletRequest参数,因为不能预估未来是否要获取user对象来逻辑处理。 2 nginx的配置中root和alias的区别? 答: root和alias的区别是酱紫的: 配置root需要访问路径要叠加目录路径,比如配置了 location /images { root /path/to/img; } 那么有张图/path/to/img/a.jpg,那么浏览器中访问到这张图片就需要http://localhost:8081/images/path/to/img/a.jpg 而alias就简单多了,url中不需要关心本地目录路径 location /images { alias /path/to/img; } http://localhost:8081/images/a.jpg 这样就能访问,所以建议使用alias,尤其是windows下 ; 如果非要使用root配置的话,那只能使用相对路径了,相对nginx的安装路径,比如 你将nginx安装在D:\nginx下 你可以将图片放在D:\nginx\img,比如你想访问D:\nginx\img\1.jpg,配置好: location /images { root img; } 就可以通过http://localhost/images/1.jpg就可以了, 否则可以使用alias,就可以使用windows绝对路径了 3.freemarker的那些文件哪里可以下载?静态文件在哪里 答: freemarker文件在单体工程house-web/src/main/resources/templates目录下,是以.ftl结尾的文件 图片文件在单体工程house-web/src/main/resources/static目录下 4.datasource 加载失败,空指针异常 答: 确保mysql驱动及Mybatis-Starter已经依赖,house-web已经依赖上了house-biz,并且配置文件中包含有spring.druid的配置 5.发现我的spring-boot 的配置文件不支持 的druid的 spring.druid.xx的属性格式,只能用spring.datasource.xx的格式,这是为什么? … Continue reading 《Java深入微服务原理改造房产销售平台》知识点梳理与问答总结

Maven-maven多模块项目搭建+Dubbo分布式服务框架

maven多模块项目搭建 最近呢学校校企合作培训,老师给我们出了一道题让做一个秒杀系统。要求前后端分离,要有独立的商品服务,独立的库存服务,独立的交易服务。经过团队的协商我们决定使用maven多模块,来将这些服务进行整合,到最后统一一键暴露接口服务,而不用再一个个启动服务了。 1.新建maven项目 2.选择项目存放的路径后,选择创建一个简单的maven项目 3.填写Group Id和Artifact Id,也可以自定义版本号 4.项目的目录结构很简单 5.这里我们要看一下pom.xml,这里Packaging需要改为pom 接下来我们构建里面的子模块(seckill_interface) 1.在已经建成的项目上右键新建project此时选择创建Maven Module 2.此时项目类型选择为maven-archetype-quickstart 3.建成之后的项目结构为 接下创建提供服务的模块儿(user_backService,business_backService,commodity_backService,stock_backService) 这四个独立的服务项目构建过程与seckill_interface构建过程一样 最终结构如下图 为了使这些服务能跑起来需要我们去创建一个如下类型的maven子项目(web) 然后填写Group Id和Artifact Id,也可以自定义版本号 到现在为止,整个项目的架子是搭好了。(搭建webApp类型的maven子项目其实是依赖前面的接口的4个服务的。) 最终open_backService是被打成war包进行发布的,其他的依赖都会被打成jar被Open_backService引用。 接下来我们配置相关接口服务整个项目结构如下图 最主要的在于包【top.softzztiedu.service】中。 我们将服务写成接口通过Dubbo进行服务治理 我们的服务如何暴露呢,当然是在open_backService中了(见下图) 【1】配置remote-provider.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <!-- 声明需要暴露的服务接口 --> <dubbo:service interface="top.softzztiedu.service.UserService" ref="UserService" timeout="100000"/> <dubbo:service interface="top.softzztiedu.service.BusinessService" ref="BusinessService" timeout="100000"/> <dubbo:service interface="top.softzztiedu.service.CommodityService" ref="CommodityService" timeout="100000"/> <dubbo:service … Continue reading Maven-maven多模块项目搭建+Dubbo分布式服务框架

【极力推荐】—安装阿里代码规约检查插件

前言 从阿里2月9日首次公布《阿里巴巴Java开发规约》后整个java世界都沸腾了,想起来以前写的代码真的是【完全没有规律可循】 在10月14日,杭州云栖大会,阿里巴巴对外开放了Java代码规约插件及源码 对于我们职场新人或是java初学者来说的确是一个不小的福利,从我们自己去检查到自动化检查处理,的确是方便了很多 如何安装IDEA插件? 最低支持版本14.1.7,JDK1.7+ 打开 File>>Settings >> Plugins >> Browse repositories 输入 Alibaba 搜索 找到:Alibaba Java Coding Guidelines 下载安装,重启IDEA即可生效 对我之前写的代码测试测试一把,如下图 很清晰明了的中文提示 另一个系统测试时的提示【好人性化】 一键帮你搞定 如何安装Eclipse插件 Eclipse版插件支持4.2 JDK1.8+ 通过 Help >> Install New Software 然后输入https://p3c.alibaba.com/plugin/eclipse/update 即可看到安装列表。 可以通过 Help >> Check for Udates 进行插件新版检测。 赶快去探索java代码规范后的新世界吧 作者: 宋鎏鑫 链接:https://www.imooc.com/article/20746 来源:慕课网

Linux——CentOS7之screen安装与命令详解

前言 这几天在摆置服务器时犹豫网络问题导致SSH远程登录linux时总是非正常中断,登录上后无法继续刚刚的任务,所以【崩溃中】。未解决这个问题我找到了它screen。 简介 使用telnet或SSH远程登录linux时,如果连接非正常中断,重新连接时,系统将开一个新的session,无法恢复原来的session.screen命令可以解决这个问题。Screen工具是一个终端多路转接器,在本质上,这意味着你能够使用一个单一的终端窗口运行多终端的应用。 会话恢复 只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。 多窗口 在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。Screen实现了基本的文本操作,如复制粘贴等;还提供了类似滚动条的功能,可以查看窗口状况的历史记录。窗口还可以被分区和命名,还可以监视后台窗口的活动。 会话共享 Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。 GNU's Screen 官方站点:http://www.gnu.org/software/screen/ 语法 screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>] 参数说明 -A  将所有的视窗都调整为目前终端机的大小。 -d <作业名称>  将指定的screen作业离线。 -h <行数>  指定视窗的缓冲区行数。 -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。 -r <作业名称>  恢复离线的screen作业。 -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。 -s  指定建立新视窗时,所要执行的shell。 -S <作业名称>  指定screen作业的名称。 -v  显示版本信息。 -x  恢复之前离线的screen作业。 -ls或--list  显示目前所有的screen作业。 -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。 常用screen参数 screen … Continue reading Linux——CentOS7之screen安装与命令详解

今晚吃什么:咖喱鸡肉饭

用料:   鸡胸肉、土豆、胡萝卜、好侍百梦多咖喱、洋葱、番茄、生姜、生抽、黄酒、食用油、食盐   (按用餐人数准备食材分量。我们家4个人吃,用料见下图,实际操作时多加了一个土豆,胡萝卜去掉一半。供大家参考!)     做法(4人份): 1.鸡胸肉洗净切块放入碗中,加入生姜、黄酒、生抽、食盐腌渍40分钟,后入炒锅煸炒至变色,起锅待用。 2.土豆和胡萝卜洗净去皮后切块,洋葱和西红柿洗净后切碎。 3.炒锅倒入适量食用油,烧热,放入洋葱西红柿碎翻炒出香气,倒入5碗清水,大火烧开后转小火慢炖直至洋葱西红柿成糊状。 (成品图完全看不出有放西红柿和洋葱,好吃的重点就在这里!洋葱西红柿糊和咖喱融合后特别美味,它们起到提味的作用!) 4.糊中加入土豆、胡萝卜和煸炒好的鸡肉一起焖煮,煮一会试出土豆熟透后加入咖喱块,不断用锅铲搅拌,以免糊底。 (如果喜欢胡萝卜软烂一些,可以把它放到第三个步骤里去) 5.待汤汁变浓稠后尝一尝味道,根据个人口味选择是否再加盐。 6.完美出锅!

MariaDB Galera Cluster 部署

如何快速部署MariaDB集群 陈亮— July 02, 2015   MariaDB作为Mysql的一个分支,在开源项目中已经广泛使用,例如大热的openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。 MariaDB Galera Cluster 介绍 MariaDB集群是MariaDB同步多主机集群。它仅支持XtraDB/ InnoDB存储引擎(虽然有对MyISAM实验支持 - 看wsrep_replicate_myisam系统变量)。 主要功能: 同步复制 真正的multi-master,即所有节点可以同时读写数据库 自动的节点成员控制,失效节点自动被清除 新节点加入数据自动复制 真正的并行复制,行级 用户可以直接连接集群,使用感受上与MySQL完全一致 优势: 因为是多主,所以不存在Slavelag(延迟) 不存在丢失事务的情况 同时具有读和写的扩展能力 更小的客户端延迟 节点间数据是同步的,而Master/Slave模式是异步的,不同slave上的binlog可能是不同的 技术: Galera集群的复制功能基于Galeralibrary实现,为了让MySQL与Galera library通讯,特别针对MySQL开发了wsrep API。 Galera插件保证集群同步数据,保持数据的一致性,靠的就是可认证的复制,工作原理如下图: 当客户端发出一个commit的指令,在事务被提交之前,所有对数据库的更改都会被 write-set 收集起来,并且将 write-set 纪录的内容发送给其他节点。 write-set 将在每个节点进行认证测试,测试结果决定着节点是否应用write-set更改数据。 如果认证测试失败,节点将丢弃 write-set ;如果认证测试成功,则事务提交。 1 安装环境准备 安装MariaDB集群至少需要3台服务器(如果只有两台的话需要特殊配置,请参照官方文档) 在这里,我列出试验机器的配置: 操作系统版本:centos7 node4:10.128.20.16 node5:10.128.20.17 node6:10.128.20.18 以第一行为例,node4为 hostname ,10.128.20.16为 ip … Continue reading MariaDB Galera Cluster 部署

学会用各种姿势备份MySQL数据库

  前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY LOG备份 使用lvm2快照备份数据 使用Xtrabackup备份 总结 前言 我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失、或者丢失后可以快速恢复呢?只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解。 为什么需要备份数据? 其实在前言中也大概说明了为什么要备份数据, 但是我们还是应该具体了解一下为什么要备份数据 在生产环境中我们数据库可能会遭遇各种各样的不测从而导致数据丢失, 大概分为以下几种. 硬件故障 软件故障 自然灾害 黑客攻击 误操作 (占比最大) 所以, 为了在数据丢失之后能够恢复数据, 我们就需要定期的备份数据, 备份数据的策略要根据不同的应用场景进行定制, 大致有几个参考数值, 我们可以根据这些数值从而定制符合特定环境中的数据备份策略 能够容忍丢失多少数据 恢复数据需要多长时间 需要恢复哪一些数据 数据的备份类型 数据的备份类型根据其自身的特性主要分为以下几组 完全备份 部分备份 完全备份指的是备份整个数据集( 即整个数据库 )、部分备份指的是备份部分数据集(例如: 只备份一个表) 而部分备份又分为以下两种 增量备份 差异备份 增量备份指的是备份自上一次备份以来(增量或完全)以来变化的数据; 特点: … Continue reading 学会用各种姿势备份MySQL数据库