首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

阿里云服务器 Centos 7 如何搭建Java Web开发环境?

首选要有一台云服务器,开始部署开发环境,还没有购买的同学,请移至阿里云官网购买(记得领取代金券礼包,希望对你有所帮助!) 准备工作 安装目录 我们创建如下路径/usr/develop,然后在develop目录下面创建java,tomcat和mysql三个目录即可。 配置JDK 理解wget命令 wget命令是一个从网络上下载文件的自由工具,它支持http协议,https协议和ftp协议。因此我们可以通过wget命令来下载JDK。wget的格式:wget 要下载的url。下载的目录为当前执行wget命令的目录。 一.安装 JDK 1.首先查看一下系统是32位的还是64位的 执行: uname -m 2.去Oracle官网下载对应版本的JDK JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 3.下载完后上传到云服务器,然后解压 tar -zxvf jdk-8u181-linux-x64.tar.gz4.将解压后的文件夹剪切到usr/local/jdk1.8 目录下 mv jdk1.8.0_181 /usr/local/jdk1.8/ 5.配置环境变量 vim /etc/profile 在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL下面添加如下代码: #jdk export JAVA_HOME=/usr/local/jdk1.8/jdk1.8.0_181 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar Java jdk环境变量配置 6.追加完成后更新配置 source /etc/profile 7.查看是否安装成功 java -version 查看是否安装成功 二、安装MySqlServer 1、下载 Mysql yum包 yum包文件在mysql官网里可以找到http://dev.mysql.com/downloads/repo/yum/ 一般默认是显示最新版mysql的noarch.rpm文件 下载到本地再上传到服务器,或者使用wget 直接下载 这里我们下载个5.7版的文件 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm2、安转yum软件源 执行如下命令安装 rpm -Uvh mysql57-community-release-el7-10.noarch.rpm安装yum软件源 3、安装mysql服务端 yum install -y mysql-community-server 安装mysql服务端 4、启动mysql service mysqld start 启动 5、检查mysql 的运行状态 service mysqld status 检查启动状态 6、修改临时密码 Mysql5.7默认安装之后root是有密码的。 7 、获取MySQL的临时密码 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,error log的位置,默认是 /var/log/mysqld.log。 只有启动过一次mysql才可以查看临时密码 grep 'temporary password' /var/log/mysqld.log (如果之前安装过MySQL则这里可能会有多个密码,用最后一个,注意这个密码输入时是可以粘贴的) 查看临时密码 这里的密码是:BjBqe67xid.l 8、 登陆并修改密码 使用默认的密码登陆 mysql -uroot -p(这是一个MySQL的以密码登录root用户的命令) mysql -uroot -p BjBqe67xid.l 用该密码登录到服务端后,必须马上修改密码再执行一些数据库操作,不然会报如下错误: mysql> select @@log_error; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 修改密码 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 修改密码 如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢? 按如下操作 必须修改两个全局参数:首先,修改validate_password_policy参数的值 mysql> set global validate_password_policy=0; 再修改密码的长度 mysql> set global validate_password_length=1; 修改长度 再次执行修改密码就可以了 mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 9、授权其他机器登陆 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root密码' WITH GRANT OPTION mysql> flush privileges; 另外需要登录阿里云控制台,配置一下安全组: 配置安全组 这样本机电脑就可以连接远程服务器的mysql数据库了。 至此安装结束! 另外常用配置,①取消大小写区分: vim /etc/my.cnf 在后面追加: lower_case_table_names=1 修改后需要重启一下 service mysqld restart 【参考】参考MySQL官网安装指引: https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 三、安装Tomcat 1、下载Tomcat9压缩包 http://tomcat.apache.org/download-90.cgi 下载tar.gz压缩包 2、解压以及新建目录 cd /home/ tar -zxvf apache-tomcat-9.0.14.tar.gz cd /usr/local/ mkdir tomcat mv /home/apache-tomcat-9.0.14/ /usr/local/tomcat/ 3、配置tomcat server.xml vim /usr/local/tomcat/apache-tomcat-9.0.14/conf/server.xml server.xml可以配置端口,编码以及配置项目等等,我们这里就配置一个端口,把默认的8080,修改成80 这里 我们把8080端口改成80,然后保存退出; 4、配置防火墙,开放80端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --reload 5、启动tomcat cd /usr/local/tomcat/apache-tomcat-9.0.14/bin/ ./startup.sh Using CATALINA_BASE: /usr/local/tomcat/apache-tomcat-9.0.14Using CATALINA_HOME: /usr/local/tomcat/apache-tomcat-9.0.14Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.14/tempUsing JRE_HOME: /usr/local/jdk1.8/jdk1.8.0_181Using CLASSPATH: /usr/local/tomcat/apache-tomcat-9.0.14/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.14/bin/tomcat-juli.jarTomcat started.说明启动成功

优秀的个人博客,低调大师

四、Kubernetes模拟生产环境搭建高可用集群之Etcd集群部署

本文我们首先要说到什么是etcd,为什么kubernetes要使用etcd ,然后实践下二进制安装部署etcd集群。 一、Etcd组件简介 Etcd是一个高可用的键值存储系统,快速地保存和提供对关键数据的访问。它通过分布式锁定,领导者选举和写入障碍实现可靠的分布式协调。etcd集群旨在实现高可用性和永久数据存储和检索。主要用于共享配置和服务发现,它通过Raft一致性算法处理日志复制以保证强一致性,我们可以理解它为一个高可用强一致性的服务发现存储仓库。Etcd主要解决的是分布式系统中数据一致性的问题,而分布式系统中的数据分为控制数据和应用数据,etcd处理的数据类型为控制数据,对于很少量的应用数据也可以进行处理。 Etcd和Zookeeper的比较: 1.zk相比部署维护复杂复杂,使用也复杂,学习成本较高。而etcd部署简单,使用HTTP作为接口使用简单,使用Raft算法保证强一致性让用户易于理解。 2.zk使用Java编写,需要jvm才能运行,会引入大量的依赖,相对偏于中性应用。 3.zk发展缓慢。而etcd被k8s作为默认存储系统,升级迭代迅速。 4.etcd更安全,支持SSL客户端安全认证。 二、K8S和ETCD的关系 kubernetes官方默认使用etcd组件作为自己的高可用强一致性的服务发现存储仓库,在kubernetes集群中etcd主要用于配置数据共享和服务发现,把关键数据都存放在etcd键值存储中,这使得kubernetes的整体结构变得非常简单。在kubernetes中由于数据是随时发生变化的,提交了新任务、增加了新的Node、Node宕机了、容器死掉了等,都会触发状态数据的变更。集群状态数据变更之后,Master上的kube-scheduler和kube-controller-manager,就会重新安排工作,它们的工作安排结果也是数据。由于集群内状态数据变化都需要及时地通知给每一个组件,刚好etcd有一个特别好的特性,可以调用它的api监听其中的数据,一旦数据发生变化了就会收到通知。有了这个特性之后kubernetes中的每个组件只需要监听etcd中数据,就可以知道自己应该做什么。kube-scheduler和kube-controller-manager也只需要把最新的工作安排写入到etcd中就可以了,不用自己去逐个通知了。还有就是etcd使用raft协议实现一致性,是一个分布式锁可以用来做选举。如果在kubernetes中部署了多个kube-schdeuler,那么同一时刻只能有一个kube-scheduler在工作,要保证只有一个kube-schduler在工作呢就通过etcd选举出一个leader来实现。 三、二进制部署etcd集群 官网地址:https://etcd.io/ 文档地址:https://etcd.io/docs/ 项目地址:https://github.com/etcd-io/etcd 下载地址:https://github.com/etcd-io/etcd/releases 1.下载etcd二进制安装包 本文使用最新版本3.4.3,下载适合自己硬件平台的,本文使用:etcd-v3.4.3-linux-amd64.tar.gz 2.解压etcd二进制安装包 tar -zxvf etcd-v3.4.3-linux-amd64.tar.gz 3.安装二进制程序 mkdir -p /work/etcd/{cfg,bin,dat,run,wal} 将etcd和etcdctl文件复制到/work/etcd/bin/目录下 创建软连接: ln -s /work/etcd/bin/etcd /usr/local/bin/etcd ln -s /work/etcd/bin/etcdctl /usr/local/bin/etcdctl 4.编写注册系统服务文件 vi /usr/lib/systemd/system/etcd.service 如下: [Unit] Description=etcd Documentation=https://github.com/etcd-io/etcd Conflicts=etcd.service After=network.target After=network-online.target Wants=network-online.target [Service] Type=notify Restart=always RestartSec=5s LimitNOFILE=40000 TimeoutStartSec=0 WorkingDirectory=/work/etcd/run/ ExecStart=/work/etcd/bin/etcd --config-file=/work/etcd/cfg/etcd.yml [Install] WantedBy=multi-user.target 5.生成Etcd服务需要的证书 准备证书生成工具 curl -L https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 -o ./cfssl curl -L https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 -o ./cfssljson curl -L https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 -o ./cfssl-certinfo 注意:本文在模拟内网环境下二进制安装,所以下载完成后传到机器上的/usr/local/bin 创建全局证书目录mkdir cert 创建认证中心(CA) cfssl print-defaults config > ca-etcd-config.json # 默认证书生产策略配置模板 cfssl print-defaults csr > ca-etcd-csr.json #默认csr请求模板 修改模板自定义内容vi ca-etcd-config.json 如下: { "signing": { "default": { "expiry": "87600h" }, "profiles": { "etcd": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } } 注意: ca-config.json:可以定义多个 profiles,分别指定不同的过期时间、使用场景等参数;后续在签名证书时可以指定使用某个 profile;此实例只有一个etcd。 signing:表示该证书可用于签名其它证书;生成的 ca-etcd.pem 证书中 CA=TRUE; server auth:表示client可以用该 CA 对server提供的证书进行验证; client auth:表示server可以用该CA对client提供的证书进行验证; 修改模板自定义内容ca-etcd-csr.json 如下: { "CN": "etcd", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "SH", "L": "BS", "O": "etcd", "OU": "System" } ] } 生成证书(ca-etcd-key.pem)和秘钥(ca-etcd.pem) cfssl gencert -initca ca-etcd-csr.json | cfssljson -bare ca-etcd 创建etcd证书签名请求, vi etcd-csr.json 如下: { "CN": "etcd", "hosts": [ "127.0.0.1", "192.168.100.111", "192.168.100.112", "192.168.100.113", "kube-cluster-master01", "kube-cluster-master02", "kube-cluster-master03" ], "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "ST": "SH", "L": "BS", "O": "etcd", "OU": "System" } ] } 生成etcd证书 cfssl gencert -ca=/work/cert/ca-etcd.pem \ -ca-key=/work/cert/ca-etcd-key.pem \ -config=/work/cert/ca-etcd-config.json \ -profile=etcd etcd-csr.json | cfssljson -bare etcd 生成的如下文件:etcd.csr etcd-key.pem etcd.pem 将三个证书拷贝到其他两个节点上 6.编写Etcd服务配置文件 节点1配置文件:vi /work/etcd/cfg/etcd.yml name: kube-etcd-node01 wal-dir: /work/etcd/wal data-dir: /work/etcd/dat/default.etcd listen-peer-urls: https://192.168.100.111:2380 listen-client-urls: https://192.168.100.111:2379,https://127.0.0.1:2379 advertise-client-urls: https://192.168.100.111:2379 initial-advertise-peer-urls: https://192.168.100.111:2380 initial-cluster: kube-etcd-node01=https://192.168.100.111:2380,kube-etcd-node02=https://192.168.100.112:2380,kube-etcd-node03=https://192.168.100.113:2380 initial-cluster-token: kube-etcd-cluster initial-cluster-state: new client-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false peer-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false debug: false logger: zap log-outputs: [stderr] 节点2配置文件:vim /work/etcd/cfg/etcd.yml name: kube-etcd-node02 wal-dir: /work/etcd/wal data-dir: /work/etcd/dat/default.etcd listen-peer-urls: https://192.168.100.112:2380 listen-client-urls: https://192.168.100.112:2379,https://127.0.0.1:2379 advertise-client-urls: https://192.168.100.112:2379 initial-advertise-peer-urls: https://192.168.100.112:2380 initial-cluster: kube-etcd-node01=https://192.168.100.111:2380,kube-etcd-node02=https://192.168.100.112:2380,kube-etcd-node03=https://192.168.100.113:2380 initial-cluster-token: kube-etcd-cluster initial-cluster-state: new client-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false peer-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false debug: false logger: zap log-outputs: [stderr] 节点3配置文件:vi /work/etcd/cfg/etcd.conf name: kube-etcd-node03 wal-dir: /work/etcd/wal data-dir: /work/etcd/dat/default.etcd listen-peer-urls: https://192.168.100.113:2380 listen-client-urls: https://192.168.100.113:2379,https://127.0.0.1:2379 advertise-client-urls: https://192.168.100.113:2379 initial-advertise-peer-urls: https://192.168.100.113:2380 initial-cluster: kube-etcd-node01=https://192.168.100.111:2380,kube-etcd-node02=https://192.168.100.112:2380,kube-etcd-node03=https://192.168.100.113:2380 initial-cluster-token: kube-etcd-cluster initial-cluster-state: new client-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false peer-transport-security: cert-file: /work/cert/etcd.pem key-file: /work/cert/etcd-key.pem client-cert-auth: false trusted-ca-file: /work/cert/ca-etcd.pem auto-tls: false debug: false logger: zap log-outputs: [stderr] 7.启动ETCD服务 以上步骤在三个节点上都操作完成后,分别在三个节点上执行以下操作: systemctl daemon-reload systemctl enable etcd systemctl start etcd 8.验证ETCD服务 etcdctl --cacert=/work/cert/ca-etcd.pem \ --cert=/work/cert/etcd.pem \ --key=/work/cert/etcd-key.pem \ --endpoints=https://192.168.100.111:2379,https://192.168.100.112:2379,https://192.168.100.113:2379 endpoint health etcdctl --write-out=table \ --cacert=/work/cert/ca-etcd.pem \ --cert=/work/cert/etcd.pem \ --key=/work/cert/etcd-key.pem \ --endpoints=https://192.168.100.111:2379,https://192.168.100.112:2379,https://192.168.100.113:2379 endpoint status etcdctl --write-out=table \ --cacert=/work/cert/ca-etcd.pem \ --cert=/work/cert/etcd.pem \ --key=/work/cert/etcd-key.pem \ --endpoints=https://192.168.100.111:2379,https://192.168.100.112:2379,https://192.168.100.113:2379 member list

优秀的个人博客,低调大师

2018-04-27 搭建Python官方文档翻译环境-汉化示例代码

通过官方i18n流程, 实现文档中的代码段的汉化, 效果如下(4. More Control Flow Tools): 步骤 基于python官方3.6版文档cpython/Doc生成pot文件. 参考The build configuration file, 需要在Doc/conf.py中添加配置: gettext_compact = False gettext_additional_targets = ['literal-block'] 如下命令在_build文件夹中生成pot文件, 如果不设置gettext_compact就不能生成对应路径结构(所有tutorial中文档的可翻译字段都在一个pot文件) $ sphinx-build -M gettext . _build 如下命令生成对应po文件(参考Internationalization - Sphinx 1.8.0+ documentation): $ sphinx-intl update -p _build/gettext -l zh 修改构建脚本: 实现代码段翻译. use gettext_additional_targets to translate code samples in … · nobodxbodon/docsbuild-scripts@68e7578) 按照README运行后, 即在www文件夹中生成汉化后的文档 相关代码库 文档构建脚本库: nobodxbodon/docsbuild-scripts po文件库: nobodxbodon/python-docs-zh 生成的HTML演示库: nobodxbodon/py36zh 其他参考 Getting Started: Overview & Introduction to Concepts

优秀的个人博客,低调大师

企业级 SpringBoot 教程-sprinboot整合elk,搭建实时日志平台

elk 简介 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。 Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。 elk下载安装 elk下载地址:https: //www. elastic. co/downloads/ 建议在 linux上运行,elk在windows上支持得不好,另外需要jdk1.8 的支持,需要提前安装好jdk. 下载完之后: 安装,以logstash为例子: cd /usr/local/ mkdir logstash tar -zxvf logstash-5.3.2.tar.gz mv logstash-5.3.2 /usr/local/logstash 配置、启动 Elasticsearch 打开Elasticsearch的配置文件: vim config/elasticsearch.yml 修改配置: network.host=localhost network.port=9200 它默认就是这个配置,没有特殊要求,在本地不需要修改。 启动Elasticsearch ./bin/elasticsearch 启动成功,访问localhost:9200,网页显示: { "name" : "56IrTCM", "cluster_name" : "elasticsearch", "cluster_uuid" : "e4ja7vS2TIKI1BsggEAa6Q", "version" : { "number" : "5.2.2", "build_hash" : "f9d9b74", "build_date" : "2017-02-24T17:26:45.835Z", "build_snapshot" : false, "lucene_version" : "6.4.1" }, "tagline" : "You Know, for Search" } 配置、启动 logstash 在 logstash的主目录下: vim config/log4j_to_es.conf 修改 log4j_to_es.conf 如下: input { log4j { mode => "server" host => "localhost" port => 4560 } } filter { #Only matched data are send to output. } output { elasticsearch { action => "index" #The operation on ES hosts => "localhost:9200" #ElasticSearch host, can be array. index => "applog" #The index to write data to. } }Spring Cloud大型企业分布式微服务云架构源码一七九一七四三三八零哦 修改完配置后启动: ./bin/logstash -f config/log4j_to_es.conf

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册