环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))
单数据节点,非集群方式
yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat11-11-2.noarch.rpm -y
yum install postgresql11 postgresql11-server
#初始化
/usr/pgsql-11/bin/postgresql-11-setup initdb
# 修改
listen_addresses = '*'
# 底部加上
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replica
环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))
单数据节点,非集群方式
#安装jdk1.8环境
yum install -y java-1.8.0-openjdk-devel.x86_64
#下载es rpm包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
rpm -ivh elasticsearch-6.2.4.rpm
#按需要更改这两项
-Xms4g
-Xmx4g
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configur
环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))
单数据节点,非集群方式
#先看看有没有mysql的yum包
yum repolist all | grep mysql
#如果没有下载mysql8的rpm
wget https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm
# 安装rpm包,此步骤在/etc/yum.repos.d 下生成mysql8相应的repo文件
yum install mysql80-community-release-el7-11.noarch.rpm
# 查看文件是否存在
ls /etc/yum.repos.d/
# 更新yum repo看看是否有mysql8的包
# 此repo 默认mysql80是enable的,安装时默认会安装mysql80
yum repolist all | grep mysql
# 清理yum缓存并重新更新
yum clean all && yum makecache
yum repolist all | grep mysql
# 直接安装,安装时看看版本是不是mysq80
yum install mysql-community-server
/etc/my.cnf 默认配置,无更改
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MyS
环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))
单数据节点,非集群方式
wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/redis-5.0.14-1.el7.remi.x86_64.rpm
rpm -ivh redis-5.0.14-1.el7.remi.x86_64.rpm
vim /etc/redis.conf
# 修改内容如下:
1. daemonized no 改为 daemonized yes 以后台静默进程启动
2. 把 bind 127.0.0.1 注释掉
3. protected-mode yes 把yes改为no
4. 如果想要设置密码: requirepass 密码(可选)
# 重启redis服务
systemctl restart redis.service
# 设置redis服务为开机自启
systemctl enable redis.service
# 查看redis是否启动成功
ps aux | grep redis
面向对象编程(Object-Oriented Programming,简称OOP)有以下几个核心概念:
类是对一组具有相同属性和行为的对象进行抽象的模板。它定义了对象的属性和方法,是创建对象的蓝图。
对象是类的实例,具体化了类的抽象概念。每个对象都有自己独立的状态和行为,可以通过调用对象的方法来操作和访问其属性。
封装是将数据和操作数据的方法封装在一起,隐藏内部的实现细节,只暴露必要的接口给外部使用。通过封装可以保护数据的完整性和安全性,同时也提高了代码的可维护性和复用性。
继承是指一个类可以继承另一个类的属性和方法,从而可以扩展或修改父类的功能。通过继承可以实现代码的复用,减少重复的代码编写,并且可以建立类之间的层次关系。
多态是指同一个方法在不同的对象上可以有不同的行为。通过多态可以实现方法的重写和重载,提高了代码的灵活性和可扩展性。多态可以通过父类引用指向子类对象来实现,使得代码更加通用和可复用。
抽象是指将对象的共同特征提取出来形成抽象类或接口,用来定义对象的行为和属性。抽象类和接口只定义方法的签名,不提供具体的实现,通过继承或实现来具体化抽象概念。
接口是一种抽象类型,定义了一组方法的签名,用于规范类的行为。类可以实现一个或多个接口,通过实现接口来定义类的行为。接口提供了一种规范和约束,使得代码更加灵活和可扩展。
今天,我想谈一谈编程世界中类似的问题:
面向对象编程的主要原理是什么?
我一直在这个问题的两面。这是经常被问到的主题之一,以至于您无法让自己不知道。
初级和入门级开发人员通常必须回答。因为这是面试官说三件事的简单方法:
面向对象程序设计的四个原则是封装,抽象,继承和多态性。
对于初级开发人员来说,这些话听起来很吓人。维基百科中复杂而冗长的解释有时会使混乱加倍。
这就是为什么我要对每个概念进行简单,简短和清晰的解释。听起来好像是您向孩子解释的事情,但实际上,当我进行面试时,我很想听听这些答案。
说我们有一个程序。根据程序中定义的规则,它具有几个逻辑上不同的对象,可以彼此通信。
当每个对象在类中保持其状态为private时,就可以实现封装。其他对象没有直接访问此状态的权限。相反,他们只能调用公共函数列表(称为方法)。
因此,对象通过方法管理自己的状态-除非明确允许,否则其他任何类都不能接触它。如果要与对象通信,则应使用提供的方法。但是(默认情况下)您无法更改状态。
假设我们正在构建一个小型的《模拟人生》游戏。有人,有猫。他们彼此交流。我们要应用封装,因此我们将所有“ cat”逻辑封装到一个Cat 类中。它可能看起来像这样:
你可以喂猫。但是你不能直接改变猫的饥饿程度。
在这里,猫的“状态”是私有变量 mood,hungry而energy。它还具有私有方法meow()。它可以随时调用它,其他类则不能告诉猫何时叫声。
他们所能做的是在所定义的公共方法 sleep(),play()和feed()。它们每个都以某种方式修改内部状态并可以调用meow()。因此,在私有国家和公共方法之间建立了约束。
这是封装。
抽象可以被认为是封装的自然扩展。
系统:centos7.x
docker版本:19.03.13
+ go version
runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort
PC=0x7f664ca35ccc m=0 sigcode=18446744073709551610
goroutine 0 [idle]:
runtime: g 0: unknown pc 0x7f664ca35ccc
stack: frame={sp:0x7fff3ee82550, fp:0x0} stack=[0x7fff3e6839d0,0x7fff3ee829e0)
0x00007fff3ee82450: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82460: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82470: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82480: 0x0000000000000000 0x0000000000000000
0x00007fff3ee82490: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824a0: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824b0: 0x0000000000000000 0x0000000000000000
0x00007fff3ee824c0: 0x0000000000000000 0x00000000000
移动宽带网络本就不够给力,移动光猫又默认工作在路由模式,NAT类型较差。自己动手改光猫工作模式为桥接是比较推荐的,改桥接后可能与IPTV有冲突的情况(不确定IPTV是否依赖PPPOE)
光猫默认有两种工作模式,一种是路由模式,光猫内进行PPPoE拨号,光猫兼路由器功能;另一种是桥接模式,光猫只负责光电转换,所接的无线路由器进行PPPoE拨号。
路由模式下,光猫负载重,再接无线路由器,后面的网络设备上网时,多一级NAT转换,网络不够通畅。桥接模式,少一次NAT转换,网络更通畅,BT下载、游戏等更给力。
其实是问题比较多 老家里给老人开通了移动宽带,寻思上个网心云跑跑带宽,谁知上来就是端口映射型,按照目前自己的经验,先是路由器设置upnp,dmz 其实都不行,因为没有桥接,再加上开通了iptv 如果说改了桥接 ,很大可能电视看不成,因为电视iptv都是运营商自己内部协议,获取到的ip都是内网,桥接肯定不行
目前,需要修改的东西顺序
1.获取了光猫的超级密码才能修改猫内的upnp及dmz设置,看过下面的破解教程,很大概率会遇到各种问题,加上过年回家短短几天,一旦变砖搞坏,维修师傅都无法上门,风险较大,成功率较低,放弃
2.修改了桥接才能获取公网ip,用路由器的upnp功能及dmz设置,较大概率改了桥接,电视iptv无法使用,这个方案也只能放弃,通过找了几篇文章,大都是说移动无公网ip,需要买一个公网包才行,这方案也大概率要放弃。
这两种方案都放弃基本上就搞不了了,那些网心云里移动高收益要么是专线要么极客改的比较好,过年时间太短了,家里老人能看个电视就行了 ,不折腾了 下面是教程 供参考
综上所述 ,这是一篇标题党 压根解决不了任何问题,正是如此,我吧折腾了大半天的成果在这里记录,供需要的人参考,其实还有一种解决办法,就是改桥接,然后自己去买个电视盒子,申请移动公网ip,这样既能挂网心云 又能看电视 就完美了 就这样本文完完全手打原创
droneci中的原始报错如下:
test/test-project/controller imports
gogs.test.com/test/go-lib/excelize imports
golang.org/x/crypto/md4: zip: not a valid zip file
test/test-project/controller imports
gogs.test.com/test/go-lib/excelize imports
golang.org/x/crypto/ripemd160: zip: not a valid zip file
test/test-project/controller imports
github.com/kataras/iris/v12 imports
github.com/kataras/iris/v12/core/host imports
golang.org/x/crypto/acme/autocert: zip: not a valid zip file
test/test-project/common imports
gogs.test.com/test/go-lib/kafka imports
github.com/Shopify/sarama imports
github.com/jcmturner/gokrb5/v8/client imports
github.com/jcmturner/gokrb5/v8/crypto imports
github.com/jcmturner/gokrb5/v8/crypto/rfc8009 imports
golang.org/x/crypto/pbkdf2: zip: not a valid zip file
nexus上的 golang.org/x/crypto/v0.7.0 包有问题
通过管理员登录到nexus,删除 golang.org/x/crypto/v0.7.0 包,重新跑droneci,编译
官方原话:
A highly-available key value store for shared configuration and service discovery.
etcd作为一个高可用键值存储系统,天生就是为集群化而设计的。
由于Raft算法在做决策时需要多数节点的投票,所以etcd一般部署集群推荐奇数个节点,推荐的数量为3、5或者7个节点构成一个集群。
etcd有三种集群化启动的配置方案,分别为:
#!/bin/b