无    2023-11-15 17:22:39    30    0    0

概述

环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))

单数据节点,非集群方式

准备

  1. yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-redhat11-11-2.noarch.rpm -y

安装

  1. yum install postgresql11 postgresql11-server
  2. #初始化
  3. /usr/pgsql-11/bin/postgresql-11-setup initdb

配置

/var/lib/pgsql/11/data/postgresql.conf

  1. # 修改
  2. listen_addresses = '*'

/var/lib/pgsql/11/data/pg_hba.conf

  1. # 底部加上
  2. # "local" is for Unix domain socket connections only
  3. local all all md5
  4. # IPv4 local connections:
  5. host all all 0.0.0.0/0 md5
  6. # IPv6 local connections:
  7. host all all ::1/128 ident
  8. # Allow replication connections from localhost, by a user with the
  9. # replica
无    2023-11-15 17:13:26    20    0    0

概述

环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))

单数据节点,非集群方式

准备

  1. #安装jdk1.8环境
  2. yum install -y java-1.8.0-openjdk-devel.x86_64
  3. #下载es rpm包
  4. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm

安装

  1. rpm -ivh elasticsearch-6.2.4.rpm

配置

/etc/elasticsearch/jvm.options

  1. #按需要更改这两项
  2. -Xms4g
  3. -Xmx4g

/etc/elasticsearch/elasticsearch.yml

  1. # ======================== Elasticsearch Configuration =========================
  2. #
  3. # NOTE: Elasticsearch comes with reasonable defaults for most settings.
  4. # Before you set out to tweak and tune the configuration, make sure you
  5. # understand what are you trying to accomplish and the consequences.
  6. #
  7. # The primary way of configuring a node is via this file. This template lists
  8. # the most important settings you may want to configur
无    2023-11-15 17:00:45    20    0    0

概述

环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))

单数据节点,非集群方式

准备

  1. #先看看有没有mysql的yum包
  2. yum repolist all | grep mysql
  3. #如果没有下载mysql8的rpm
  4. wget https://repo.mysql.com//mysql80-community-release-el7-11.noarch.rpm
  5. # 安装rpm包,此步骤在/etc/yum.repos.d 下生成mysql8相应的repo文件
  6. yum install mysql80-community-release-el7-11.noarch.rpm
  7. # 查看文件是否存在
  8. ls /etc/yum.repos.d/
  9. # 更新yum repo看看是否有mysql8的包
  10. # 此repo 默认mysql80是enable的,安装时默认会安装mysql80
  11. yum repolist all | grep mysql
  12. # 清理yum缓存并重新更新
  13. yum clean all && yum makecache
  14. yum repolist all | grep mysql

安装

  1. # 直接安装,安装时看看版本是不是mysq80
  2. yum install mysql-community-server

配置

/etc/my.cnf 默认配置,无更改

  1. # For advice on how to change settings please see
  2. # http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
  3. [mysqld]
  4. #
  5. # Remove leading # and set to the amount of RAM for the most important data
  6. # cache in MyS
无    2023-11-15 16:35:00    37    0    0

概述

环境:centos 7.x(实际是 Alibaba Cloud Linux (Aliyun Linux) 2.1903 LTS (Hunting Beagle))

单数据节点,非集群方式

  1. wget https://rpms.remirepo.net/enterprise/7/remi/x86_64/redis-5.0.14-1.el7.remi.x86_64.rpm

安装

  1. rpm -ivh redis-5.0.14-1.el7.remi.x86_64.rpm

配置

  1. vim /etc/redis.conf
  2. # 修改内容如下:
  3. 1. daemonized no 改为 daemonized yes 以后台静默进程启动
  4. 2. bind 127.0.0.1 注释掉
  5. 3. protected-mode yes yes改为no
  6. 4. 如果想要设置密码: requirepass 密码(可选)

启动

  1. # 重启redis服务
  2. systemctl restart redis.service
  3. # 设置redis服务为开机自启
  4. systemctl enable redis.service
  5. # 查看redis是否启动成功
  6. ps aux | grep redis
无    2023-08-16 17:06:33    37    0    0

概念

面向对象编程(Object-Oriented Programming,简称OOP)有以下几个核心概念:

1. 类(Class)

类是对一组具有相同属性和行为的对象进行抽象的模板。它定义了对象的属性和方法,是创建对象的蓝图。

2. 对象(Object)

对象是类的实例,具体化了类的抽象概念。每个对象都有自己独立的状态和行为,可以通过调用对象的方法来操作和访问其属性。

3. 封装(Encapsulation)

封装是将数据和操作数据的方法封装在一起,隐藏内部的实现细节,只暴露必要的接口给外部使用。通过封装可以保护数据的完整性和安全性,同时也提高了代码的可维护性和复用性。

4. 继承(Inheritance)

继承是指一个类可以继承另一个类的属性和方法,从而可以扩展或修改父类的功能。通过继承可以实现代码的复用,减少重复的代码编写,并且可以建立类之间的层次关系。

5. 多态(Polymorphism)

多态是指同一个方法在不同的对象上可以有不同的行为。通过多态可以实现方法的重写和重载,提高了代码的灵活性和可扩展性。多态可以通过父类引用指向子类对象来实现,使得代码更加通用和可复用。

6. 抽象(Abstraction)

抽象是指将对象的共同特征提取出来形成抽象类或接口,用来定义对象的行为和属性。抽象类和接口只定义方法的签名,不提供具体的实现,通过继承或实现来具体化抽象概念。

7. 接口(Interface)

接口是一种抽象类型,定义了一组方法的签名,用于规范类的行为。类可以实现一个或多个接口,通过实现接口来定义类的行为。接口提供了一种规范和约束,使得代码更加灵活和可扩展。

无    2023-08-16 17:06:29    29    0    0

准备

今天,我想谈一谈编程世界中类似的问题:

面向对象编程的主要原理是什么?
我一直在这个问题的两面。这是经常被问到的主题之一,以至于您无法让自己不知道。

初级和入门级开发人员通常必须回答。因为这是面试官说三件事的简单方法:

  1. 候选人是否准备了这次面试?
    如果您立即听到答案,将获得加分-这表示认真的做法。
  2. 候选人是否已超过辅导阶段?
    了解面向对象编程(OOP)的原理表明,您已经超越了教程中的复制和粘贴功能-您已经从更高的角度看到了事情。
  3. 候选人的理解是深还是浅?
    这个问题的能力水平通常等于其他大多数学科的能力水平。相信我。

面向对象程序设计的四个原则是封装,抽象,继承和多态性。

对于初级开发人员来说,这些话听起来很吓人。维基百科中复杂而冗长的解释有时会使混乱加倍。

这就是为什么我要对每个概念进行简单,简短和清晰的解释。听起来好像是您向孩子解释的事情,但实际上,当我进行面试时,我很想听听这些答案。

封装

说我们有一个程序。根据程序中定义的规则,它具有几个逻辑上不同的对象,可以彼此通信。

当每个对象在类中保持其状态为private时,就可以实现封装。其他对象没有直接访问此状态的权限。相反,他们只能调用公共函数列表(称为方法)。

因此,对象通过方法管理自己的状态-除非明确允许,否则其他任何类都不能接触它。如果要与对象通信,则应使用提供的方法。但是(默认情况下)您无法更改状态。

假设我们正在构建一个小型的《模拟人生》游戏。有人,有猫。他们彼此交流。我们要应用封装,因此我们将所有“ cat”逻辑封装到一个Cat 类中。它可能看起来像这样:
title

你可以喂猫。但是你不能直接改变猫的饥饿程度。
在这里,猫的“状态”是私有变量 mood,hungry而energy。它还具有私有方法meow()。它可以随时调用它,其他类则不能告诉猫何时叫声。

他们所能做的是在所定义的公共方法 sleep(),play()和feed()。它们每个都以某种方式修改内部状态并可以调用meow()。因此,在私有国家和公共方法之间建立了约束。

这是封装。

抽象

抽象可以被认为是封装的自然扩展。

docker    2023-06-20 18:02:23    265    0    0

说明

系统:centos7.x
docker版本:19.03.13

title

  1. + go version
  2. runtime/cgo: pthread_create failed: Operation not permitted
  3. SIGABRT: abort
  4. PC=0x7f664ca35ccc m=0 sigcode=18446744073709551610
  5. goroutine 0 [idle]:
  6. runtime: g 0: unknown pc 0x7f664ca35ccc
  7. stack: frame={sp:0x7fff3ee82550, fp:0x0} stack=[0x7fff3e6839d0,0x7fff3ee829e0)
  8. 0x00007fff3ee82450: 0x0000000000000000 0x0000000000000000
  9. 0x00007fff3ee82460: 0x0000000000000000 0x0000000000000000
  10. 0x00007fff3ee82470: 0x0000000000000000 0x0000000000000000
  11. 0x00007fff3ee82480: 0x0000000000000000 0x0000000000000000
  12. 0x00007fff3ee82490: 0x0000000000000000 0x0000000000000000
  13. 0x00007fff3ee824a0: 0x0000000000000000 0x0000000000000000
  14. 0x00007fff3ee824b0: 0x0000000000000000 0x0000000000000000
  15. 0x00007fff3ee824c0: 0x0000000000000000 0x00000000000
无    2023-06-15 15:34:16    448    0    0

移动光猫

移动宽带网络本就不够给力,移动光猫又默认工作在路由模式,NAT类型较差。自己动手改光猫工作模式为桥接是比较推荐的,改桥接后可能与IPTV有冲突的情况(不确定IPTV是否依赖PPPOE)

光猫工作模式

光猫默认有两种工作模式,一种是路由模式,光猫内进行PPPoE拨号,光猫兼路由器功能;另一种是桥接模式,光猫只负责光电转换,所接的无线路由器进行PPPoE拨号。
路由模式下,光猫负载重,再接无线路由器,后面的网络设备上网时,多一级NAT转换,网络不够通畅。桥接模式,少一次NAT转换,网络更通畅,BT下载、游戏等更给力。

光猫改桥接模式

其实是问题比较多 老家里给老人开通了移动宽带,寻思上个网心云跑跑带宽,谁知上来就是端口映射型,按照目前自己的经验,先是路由器设置upnp,dmz 其实都不行,因为没有桥接,再加上开通了iptv 如果说改了桥接 ,很大可能电视看不成,因为电视iptv都是运营商自己内部协议,获取到的ip都是内网,桥接肯定不行

目前,需要修改的东西顺序

1.获取了光猫的超级密码才能修改猫内的upnp及dmz设置,看过下面的破解教程,很大概率会遇到各种问题,加上过年回家短短几天,一旦变砖搞坏,维修师傅都无法上门,风险较大,成功率较低,放弃

2.修改了桥接才能获取公网ip,用路由器的upnp功能及dmz设置,较大概率改了桥接,电视iptv无法使用,这个方案也只能放弃,通过找了几篇文章,大都是说移动无公网ip,需要买一个公网包才行,这方案也大概率要放弃。

这两种方案都放弃基本上就搞不了了,那些网心云里移动高收益要么是专线要么极客改的比较好,过年时间太短了,家里老人能看个电视就行了 ,不折腾了 下面是教程 供参考

综上所述 ,这是一篇标题党 压根解决不了任何问题,正是如此,我吧折腾了大半天的成果在这里记录,供需要的人参考,其实还有一种解决办法,就是改桥接,然后自己去买个电视盒子,申请移动公网ip,这样既能挂网心云 又能看电视 就完美了 就这样本文完完全手打原创

移动贝尔G-140W-MD破解超级密

无    2023-06-15 15:12:10    80    0    0

说明

droneci中的原始报错如下:

  1. test/test-project/controller imports
  2. gogs.test.com/test/go-lib/excelize imports
  3. golang.org/x/crypto/md4: zip: not a valid zip file
  4. test/test-project/controller imports
  5. gogs.test.com/test/go-lib/excelize imports
  6. golang.org/x/crypto/ripemd160: zip: not a valid zip file
  7. test/test-project/controller imports
  8. github.com/kataras/iris/v12 imports
  9. github.com/kataras/iris/v12/core/host imports
  10. golang.org/x/crypto/acme/autocert: zip: not a valid zip file
  11. test/test-project/common imports
  12. gogs.test.com/test/go-lib/kafka imports
  13. github.com/Shopify/sarama imports
  14. github.com/jcmturner/gokrb5/v8/client imports
  15. github.com/jcmturner/gokrb5/v8/crypto imports
  16. github.com/jcmturner/gokrb5/v8/crypto/rfc8009 imports
  17. 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,编译

etcd    2023-06-15 15:04:17    27    0    0

什么是etcd

官方原话:
A highly-available key value store for shared configuration and service discovery.

etcd的特点

  • 简单:基于HTTP+JSON的API让你用curl就可以轻松使用。
  • 安全:可选SSL客户认证机制。
  • 快速:每个实例每秒支持一千次写操作。
  • 可信:使用Raft算法充分实现了分布式。

etcd概念词汇表

  • Raft:etcd所采用的保证分布式系统强一致性的算法。
  • Node:一个Raft状态机实例。
  • Member: 一个etcd实例。它管理着一个Node,并且可以为客户端请求提供服务。
  • Cluster:由多个Member构成可以协同工作的etcd集群。
  • Peer:对同一个etcd集群中另外一个Member的称呼。
  • Client: 向etcd集群发送HTTP请求的客户端。
  • WAL:预写式日志,etcd用于持久化存储的日志格式。
  • snapshot:etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
  • Proxy:etcd的一种模式,为etcd集群提供反向代理服务。
  • Leader:Raft算法中通过竞选而产生的处理所有数据提交的节点。
  • Follower:竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证。
  • Candidate:当Follower超过一定时间接收不到Leader的心跳时转变为Candidate开始竞选。
  • Term:某个节点成为Leader到下一次竞选时间,称为一个Term。
  • Index:数据项编号。Raft中通过Term和Index来定位数据。

etcd部署要求

etcd作为一个高可用键值存储系统,天生就是为集群化而设计的。

由于Raft算法在做决策时需要多数节点的投票,所以etcd一般部署集群推荐奇数个节点,推荐的数量为3、5或者7个节点构成一个集群。

etcd集群启动方式

etcd有三种集群化启动的配置方案,分别为:

  • 静态配置启动
  • etcd自身服务发现
  • 通过DNS进行服务发现

etcd相关命令

相看集群是否健康

  1. #!/bin/b
6/14